Login | Register
My pages Projects Community openCollabNet
Project highlights:

Project Home Project Members Announcements Planning Process Projects

PS: The process and artifacts are still in portuguese.

Este documento descreve como é o processo usado pela fábrica USINA para o desenvolvimento de um projeto. De forma que os clientes e todos membros da fábrica possam unificar seus conhecimentos sobre as atividades desempenhadas dentro da fábrica.

1. Conceitos do processo

Nesta seção mostraremos os conceitos empregados no processo. Suas características referenciais, visão geral, papéis e responsabilidades e o organograma da fábrica.

Características

Para elaboração do processo foram observadas as seguintes características:

  1. O processo desenvolvimento deve ser leve: com o mínimo de artefatos possíveis, apenas o suficiente para permitir o entendimento do sistema pelo cliente e facilitar o processo de agregação de novos colaboradores;
  2. Iterativo e incremental: realizar diversas iterações para permitir uma maior conformidade com requisitos do cliente através de sua validação dos artefatos já produzidos. Disponibilizando versões do software freqüentemente, permitindo um melhor retorno do usuário sobre as funcionalidades implementadas;
  3. Ambiente colaborativo: possibilidade de receber auxílio de colaboradores externos. Isso implica na utilização de ferramentas de suporte mais elaboradas e, se possível, com alta disponibilidade e acessibilidade;
  4. Desenvolvimento orientado a arquitetura: de forma a apontar viabilidade técnica para as soluções e identificar riscos associados ao projeto o mais breve possível;
  5. Disseminação de responsabilidades entre os colaboradores, conceito de core groups: mais de um colaborador divide a mesma responsabilidade de um papel. Minimizando assim gargalos no processo quando da ausência de um colaborador e permitindo a distribuição de atividades de forma colaborativa;
  6. Distribuição colaborativa de atividades : uma vez terminado o trabalho de uma etapa, seus responsáveis irão delegar tarefas para os colaboradores responsáveis das etapas seguintes. Através do controle das atividades via uma ferramenta como um 'Issue Tracker' é possível rastrear o trabalho distribuído;
  7. Requisitos são re-priorizados a cada iteração: devido à inerente necessidade de alterações de requisitos durante o desenvolvimento do processo os requisitos serão re-priorizados a cada interação;
  8. Estimativas e riscos reavaliadas a cada iteração: assim como os requisitos, as estimativas os riscos também podem ser reavaliados;
  9. Gerenciamento baseado em marcos: o desenvolvimento é guiado por marcos, a finalização de um ciclo deve culminar em algum marco cujos artefatos produzidos sejam concretos;
  10. Geração de relatórios por iteração: a cada iteração o cliente deve ser informado do status do projeto;
  11. Testes automáticos de código: para a garantira a funcionalidade do código produzido um conjunto de testes deve ser executado contemplando os principais fluxos de execução do sistema desenvolvido.
Visão geral

A Figura 1 mostra a macro-visão do processo. Nele observamos módulos distintos responsáveis por cada uma das etapas de desenvolvimento do software desde a sua fase de pré-venda, até a pós-venda. A seguir descrevemos cada um destas etapas e seus relacionamentos.


Figura 1.Visão geral do processo.

As etapas do processo são:

  1. Suporte comercial (Pré-venda): O suporte comercial inicial define o processo de pré-venda do software. Nesta etapa a fábrica apresenta sua forma de ser contratada, recebe e responde às requisições de propostas (RFPs) e define os níveis de serviços prestados (SLAs);
  2. Planejamento: Esta fase define a infra-estrutura necessária à realização projeto de acordo com o que foi definido na RFP e na SLA. As atividades desta fase podem ser antecipadas de forma a tornar as RFPs e SLA mais completas. Uma parte do planejamento é sempre realizada no início de uma nova iteração, que é a atualização ou reajuste do plano de iteração;
  3. Desenvolvimento: Esta etapa é dividida em três sub-partes que se repentem até o release final do software:
    • Inicialização: onde definimos o plano para cada uma das iterações realizadas. Nesta fase também fechamos, ou ajustamos, acordos sobre os requisitos e a arquitetura do software, permitindo a criação do plano de testes. Os marcos finais desta fase são os documentos de requisitos, arquitetura e plano de testes disponíveis;
    • Execução: nesta etapa realizamos a implementação do software de acordo com o que foi definido nos documentos de requisitos e arquitetura. Ao término desta fase deveremos ter implementado o código do sistema relativo ao que foi planejado na iteração, bem como os testes unitários e o documento de testes que será usado na etapa seguinte;
    • Transição: nesta etapa realizamos os testes e tomamos as medidas corretivas necessárias para a correção dos erros detectados nos testes de forma que possamos realizar o release. No final desta etapa devemos ter um release para o cliente, bem como um relatório indicando o acompanhamento do andamento do projeto.
  4. Suporte comercial (Pós-venda): Após a geração de cada release do sistema a fábrica pode fornecer uma série de serviços associados como: a instalação do software, treinamentos para a utilização da ferramenta, e a confecção de livros e tutoriais do software;
  5. Acompanhamento: Durante a execução de um projeto executamos atividades de acompanhamento, como reuniões e atualização do site. Este módulo determina que este acompanhamento deve ser feito durante todo o ciclo de vida de um projeto.
    Estas etapas abrangem todo o processo comercial, ignorado pelo RUP, e o processo de desenvolvimento. Para cada uma das estapas são disponibilizados modelos dos documentos que devem ser preenchidos para que a fase seguinte possa ter início. Nas próximas sub-seções descrevemos os papéis associados à fábrica e na seção 2 listamos detalhadamente o processo relacionando etapas, papéis e artefatos.
Papéis e responsabilidades

A seguir definimos todos os papéis presentes nosso processo de desenvolvimento, e também o conceito de core groups necessário para permitir um ambiente de desenvolvimento colaborativos com menos gargalos para a execução de tarefas.

Papéis Responsabilidades Responsabilidade dos membros do core group
User
  • Submeter RFPs;
  • Propor requisitos.
  • Aprovar SLAs;
  • Aprovar requisitos;
  • Aprovar mudanças nos requisitos.
Business Analyst
  • Coletar requisitos;
  • Fornecer retorno ao usuário (User);
  • Realizar uma análise inicial de riscos;
  • Analisar e responder RFPs;
  • Criar SLAs;
  • Definir e aprovar requisitos;
  • Aprovar mudanças de requisitos;
  • Elaborar apresentações, treinamentos e livros sobre o projeto desenvolvido.
Project Manager
  • Escrever o plano de projeto;
  • Estimar esforço;
  • Estimar custo;
  • Resolver conflitos;
  • Gerenciar riscos;
  • Fornecer feedback ao usuário;
  • Distribuir o projeto no prazo e custo estimados.
  • Definição de papéis.
Developer
  • Escrever código;
  • Escrever testes.
  • Auxiliar nas estimativas de esforço;
  • Atribuir tarefas de implementação e teste;
  • Definir arquitetura e plano de persistência.
Tester
  • Criar/Atualizar testes de sistema;
  • Criar plano de testes;
  • Planejar execução de testes;
  • Executar os testes de unidade, integração e sistema;
  • Gerar relatórios de execução dos testes;
  • Notificar os erros encontrados.
  • Criar e aprovar os planos de teste;
  • Aprovar código de testes;
  • Aprovar testes de sistema.
Quality & Process Engineer
  • Garantir a adequação ao processo e consistências dos artefatos produzidos;
  • Definir e auditar métricas para os projetos;
  • Propor mudanças na metodologia.
  • Aprovar mudanças na metodologia.
Designer
  • Manter o web site da fábrica e de seus projetos;
  • Criar projeto gráfico para os projetos da fábrica.
  • Aprovar os design gráficos.
Configuration Manager
  • Fornecer um controle de versão para todos os projetos da fábrica;
  • Realizar backup de todos os artefatos produzidos pela fábrica.
  • Preparar o ambiente de testes.

Tabela 1. Papéis e responsabilidades.

Todo colaborador deve se enquadrar em um destes perfis.

Core groups

Um core group é um grupo de pessoas que tem poder e responsabilidade de aprovar decisões sobre o processo. Um grupo core deve ser definido para cada um dos papéis existentes. Os primeiros core groups de um projeto precisam ser criados logo no seu início. No decorrer de um projeto o grupo pode ser dinâmico. De acordo com o seguinte regulamento:

  1. Candidatos a membros de core são propostos pelo grupo corrente;
  2. A qualquer momento, qualquer membro dos core groups podem iniciar o processo de adicionar ou remover outros membros do core group;
  3. Participar de um core group é parte do modelo de meritocracia e comprometimento de um membro dentro de um ciclo de um projeto.
Organograma

De acordo com os papéis apresentados, o organograma da fábrica será o seguinte:

Figura 2.Organograma da fábrica.

Cada um dos papéis pode, e sempre que possível deve, ser desempenhando por mais de um colaborador.

Artefatos

Para cada uma das etapas fornecemos modelos que descrevem os artefatos. Para uma completa descrição, e obter instâncias dos artefatos produzidos no processo vide os modelos referenciados no detalhamento do processo completo mostrado na próxima seção.

2. O processo

Nas próximas tabelas apresentamos as etapas do processo, seus responsáveis e artefatos associados. As atividades que apresentam repetição 1, normalmente são executados apenas uma única vez. As demais podem ser executadas diversas vezes no decorrer do desenvolvimento de um projeto. Os 'NA' identificam condições onde os valores das tabelas não se aplicam.

Suporte Comercial (Pré-venda)
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
1 Apresentação comercial da fábrica, contemplando o processo para a contratação da fábrica Business Analyst NA Apresentação da fábrica NA
1 Definir escopo Project Manager RFP Declaração do Escopo, WBS Project Manager, Business Analyst
1 Definir cronograma Project Manager RFP Cronograma do Projeto Project Manager, Business Analyst
1 Calcular estimativas de custo Project Manager RFP Estimativas de Custos Project Manager, Business Analyst
1 Analisar riscos Project Manager RFP Plano de Gerenciamento de Riscos Project Manager, Business Analyst
N Responder RFP Business Analyst RFP, Declaração do Escopo, WBS, Cronograma do  Projeto, Estimativas de Custos, Plano de Gerenciamento de Riscos. Resposta da RFP User, Project Manager, Business Analyst, Developer
N Criar SLA Business Analyst Resposta da RFP, Estimativas de Custos, Plano de Gerenciamento de Riscos. SLA User, Project Manager, Business Analyst, Developer

Detalhamento da etapa de Suporte Comercial (Pré-venda).

    Essa fase começa com o recebimento da RFP enviada pelo cliente, e termina quando o cliente aprova a proposta técnica (resposta da RFP) e proposta comercial (SLA) fornecidas pela fábrica.

    Na pré-venda, a fábrica analizada cuidadosamente a RFP do cliente e identifica o escopo da solução oferecida, um cronograma inicial em alto nível dos produtos a serem entregues, os custos relacionados ao projeto, os principais riscos envolvidos na execução do projeto, entre outras informações de interesse do contratante. Detalhes técnicos também são analizados e documentados, para demonstrar de que maneira serão atendidas as necessidades do cliente, e quais benefícios serão obtidos adquirindo os produtos da fábrica.

    Para responder a necessidades específicas de cada cliente, e melhorar a comunicação, é(são) preparada(s) uma(s) apresentação(ões) das capacidades de atendimento da fábrica e a instância do processo que será seguido para alcançar os objetivos do contrato com o cliente. A apresentação, direcionada para os representantes do cliente que vão tomar as decisões, é uma parte da própria resposta da RFP, foca principalmente em aspectos organizacionais e operacionais da fábrica, mostrando os diferenciais da fábrica para atender as necessidades do cliente. Dependendo do público envolvido nas apresentações, a apresentação pode incluir de maneira mais profunda aspectos técnicos da solução proposta.

    Por último, fazendo a compilação de todos as atividades descritas nessa fase, é produzida a reposta da RFP acompanhada da SLA. Outros documentos complementares que contenham informações tais como: cronogramas, riscos, estimativas, custos, detalhes técnico, etc; que foram utilizados para produzir a resposta da RFP e SLA devem ser referênciados por esses últimos. É comum que a resposta da RFP e SLA sejam várias vezes ajustadas de acordo com negociações entre a fábrica e o cliente, portanto várias versões desses documentos são produzidas até que seja assinado um contrato definitivo e seja iniciado o projeto. Fechado o contrato a próxima fase do processo é o planejamento.

Planejamento
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
1 Criar plano de projeto que contemple:
- Estimativa de esforço (equipe e custo);
- Cronograma do projeto;
- Mecanismo p/acompanhamento dos: riscos, equipe e cronograma.
Project Manager RFP, SLA, Declaração do Escopo, WBS, Cronograma do  Projeto, Estimativas de Custos, Plano de Gerenciamento de Riscos. SPMP, Documento de Gerenciamento Riscos User, Project Manager
1 Criar plano de configuração com:
- Descrição de infra-estrutura;
- Regras de nomenclatura dos artefatos;
- Procedimento de documentação de falhas;
- Regras para geração de releases;
- Política de backups.
Configuration Manager Plano do Projeto SCMP Project Manager, Configuration Manager, Quality & Process Engineer
1 Criar plano de qualidade com:
- Métricas para indicar conformidade com processo;
- Mecanismos para medir grau satisfação do cliente.
Quality & Process Engineer Plano do Projeto, Plano de Configuração SQAP Project Manager, Configuration Manager, Quality & Process Engineer
Planejar iteração
N Avaliação da Iteração Project Manager Plano da Iteração,  Plano do Projeto, Plano de Gerenciamento de Riscos. Relatório de Status Project Manager
N Criar Plano da Iteração Project Manager Plano de Projeto, Plano de Gerenciamento de Riscos Plano da Iteração Project Manager

Detalhamento da etapa de planejamento.

Desenvolvimento
Esta etapa é dividida em três partes que são executadas sequencialmente: Inicialização, Execução e Transição
Desenvolvimento - Inicialização
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
1 Elicitar requisitos User, Business Analyst RFP, SLA Documento de Requisitos User, Project Manager, Business Analyst, Developer
N Gerenciar requisitos User, Project Manager, Business Analyst Documento de gerenciamento de requisitos Documento de Requisitos atualizado User, Project Manager, Business Analyst, Developer
1 Definir arquitetura Developer Documento de Requisitos Documento de Arquitetura (e plano de persistência - opcional) Developer
N Reavaliar arquitetura Developer Documento de Requisitos, Documento de Arquitetura Documento de Arquitetura atualizado Developer
N Criar plano de testes Tester Plano da Iteração, SQAP, Documento de Requisitos, Documento de Arquitetura Plano de Teste Tester, Developer

Detalhamento da etapa de inicialização.

    O procedimento de oficialização de alteração de requisitos será feito através de e-mail pelo cliente do projeto, contendo claramente quais requisitos serão adicionados, removidos ou modificados. Uma descrição mais detalhada pode ser necessária para facilitar o entendimento. Após esta solicitação, o gerente de projeto, em conjunto com o analista de negócios e o arquiteto do sistema, irão avaliar qual é o impacto da alteração dos requisitos solicitados pelo cliente na iteração em andamento. Caso as mudanças não afetem os requisitos que estão sendo tratados na iteração, a interação continua normalmente e essa solicitação do cliente será atendida apenas na próxima iteração.

    Caso as mudanças afetem os requisitos que estão sendo desenvolvidos, a iteração deverá ser reavaliada pelo gerente do projeto. Com isso, a iteração é reinicializada para que os documentos de requisitos e de arquitetura sejam redefinidos para melhor atender os "novos" requisitos do cliente. Quando houver uma mudança de requisitos, o cronograma e os riscos associados conseqüentemente deverão ser reavaliados.

    Ainda, pode haver alteração nos custos relativos ao projeto. No caso da fábrica de software USINA, poderá haver um bônus de dias ou horas para o cumprimento deste requisito, de acordo com o esforço de cada membro da equipe.

Desenvolvimento - Execução
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
N Criar código (documentado) seguindo um padrão de codificação e com cabeçalhos da licensa final do software Developer Documento de Requisitos, Documento de Arquitetura Código Developer
N Criar código de testes unitários (documentado) com padrão de codificação e cabeçalhos. Developer Código Código dos testes Tester, Developer
N Criar/Atualizar testes de sistema Tester Documento de Requisitos, Documento de Arquitetura Documento de Casos de Teste Tester, Developer

Detalhamento da etapa de execução.

Desenvolvimento - Transição
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
N Planejar execução de testes Tester Plano de Testes, Documento de Casos de Teste, Código dos testes Plano de Testes (Atualizado para iteração) Tester, Quality & Process Engineer
N Executar testes(relatório da execução) Tester Código, Código dos testes Relatório de execução dos testes Quality & Process Engineer
N Notificar erros Tester Relatório de execução dos testes Notificações de erros no gerenciador de mudanças. NA
N Corrigir erros Developer Notificações de erros no gerenciador de mudanças. Código modificado pronto para ser retestado Tester
N Re-planejar Testes Tester Notificações de erros no gerenciador de mudanças, Código, Código dos testes, Plano de Testes, Documento de Casos de Teste Plano de Testes (Atualizado para re-teste) Tester, Quality & Process Engineer
N Auditar artefatos do projeto. Configuration Manager, Quality & Process Engineer Validar artefatos do processo Relatório de conformidade com o processo User, Project Manager, Configuration Manager, Quality & Process Engineer
N Coletar métricas do projeto Quality & Process Engineer Consolidar métricas do projeto Relatório final de métricas Quality & Process Engineer
N Disponibilizar release Configuration Manager Relatórios de conformidade Release do sistema (baseline e release notes) Project Manager

    Na transição é atualizado o planejamento dos testes para incluir detalhes da execução dos testes da iteração corrente. Em seguida são executados os testes automáticos/manuais de acordo com o planejado, os defeitos encontrados são armazenados no sistema de bug tracker para que os responsáveis pelas correções possam removê-los do sistema, e seja produzida uma nova versão do software corrigida totalmente/parcialmente de acordo com os defeitos encontrados para que seja retestada.

    Ainda na transição, são realizadas auditorias de qualidade e de gerência de configuração para validar os artefatos do processo e identificar não conformidades nos produtos entregues de acordo com o que foi definido. Também é realizada a coleta das métricas relativas à execução de testes e aos bugs encontrados, antes que o release do software seja liberado, para que por fim seja produzido um novo release do software.

Suporte Comercial (Pós-venda)
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
N Instalação do sistema Developer Release mais recente. NA Developer
N Treinamento dos usuários Business Analyst Release mais recente. Apresentações Business Analyst
N Livros e tutoriais Business Analyst Release mais recente. NA Business Analyst

Detalhamento da etapa de pós-venda.

Acompanhamento
Repetição Atividade Responsáveis Entradas Saídas Aprovadores
N Reunião semanal:
- acompanhamento das atividades;
- relatório de status para o cliente.
Project Manager NA Relatório de status para o cliente Project Manager
N Resolução dos conflitos Project Manager NA Conflitos solucionados NA
N Ajuste do processo Quality & Process Engineer Todos os artefatos do processo Artefatos atualizados, caso necessário Donos dos artefatos alterados
N Realização de backups Configuration Manager SCMP Backups do projeto NA
N Modelagem gráfica da fábrica e seus projetos. Designer Todos os artefatos que requeiram projeto gráfico Modelos dos artefatos com um projeto gráfico definido Designer

Detalhamento das atividades de acompanhamento.

4.Referências

...