Um Processo Típico de Desenvolvimento

Advertência ao leitor. Infelizmente, não tive tempo (ainda) de produzir uma descrição completa de um processo de desenvolvimento. Produzi apenas uma descrição resumida de um processo típico. Falta falar de ferramentas, condições de entrada e saída, melhorar as descrições, dar mais exemplos, definir melhor os artefatos e fornecer exemplos dos mesmos, etc. Um dia ...

Outra advertência ao leitor. Este processo é relativamente "light". Muitas pessoas usam processos mais pesados com muito mais artefatos permanentes. Não estou dizendo que este é o melhor. É apenas um exemplo (mas que funciona).

Lembre que temos que definir quem faz o quê, quando e como.

Quem: Os Papeis

A descrição de papeis segue. Claro que alguns papeis poderão ser assumidos pela mesma pessoa, dependendo do tamanho do time.

Papel Responsabilidades Pessoas alocadas
Board de Mudança
  • Aprova mudanças nos requisitos e mudanças arquiteturais
 
Cliente
  • Fornece Use Cases e requisitos não funcionais
    • É um usuário final direto do produto
  • Fornece Testes de Aceitação
  • Toma decisões de business, isto é, mudanças nos requisitos
 
Customer Liaison
  • Comunica regularmente com o cliente para obter requisitos, mudanças de curso, etc.
 
Documentador
  • Cria documentação ou organiza a documentação produzida pelos outros
  • Cuida de controle de mudanças de artefatos com a ferramenta de Controle de Versão
    • Check-in e check-out
  • Mantém a home page do projeto atualizada
 
Programador (ou Desenvolvedor ou Engenheiro de Software)
  • Design, Interface HM, Programação e Testes de Unidade
    • Deve ser bom para comunicar, programar e descobrir formas simples de resolver problemas
    • Deve programar bem, refatorar e testar bem
  • Responsável por parte da documentação (aquela referente ao código sob sua responsabilidade)
 
Project Manager
  • Dedica pelo menos 2 ou 3 horas por semana pensando na gerência do projeto, mesmo que   tenha outras atribuições de programador
    • As horas que se "perdem" fazendo isso se compensam facilmente pelo controle que se obtem sobre o desenvolvimento
    • Se não fizer isso, o projeto se torna frouxo e vai demorar mais tempo para ser terminado
  • Organiza, rastreia e informa sobre projeto
  • Gerencia documentos
  • Comunica com sponsor
  • Assegura a continuidade do projeto
  • Assegura que cada pessoa do time tenha tarefas alocadas e esteja fazendo seu papel
  • Conversa com cada membro do time, pelo menos 1 vez por dia sobre o andamento das tarefas. Bastam alguns minutos
  • Lidera a reunião semanal de acompanhamento (1 hora)
  • Trata de aspectos como recursos, RH, treinamento, responsabilidades para o resto da empresa, verifica métricas e as mostra para pessoas interessadas, etc.
 
Sponsor
  • Aprova e suporta o projeto
  • Fornece os Business Requirements
  • Fornece algumas restrições de projeto (tempo, orçamento, datas especiais, ...)
 
Tester
  • Transforma testes de aceitação especificados pelo Cliente em código
  • Lembre que testes de unidade são feitos pelos Programadores e não pelo Tester
 
(Tiger Teams)
Membros de Equipes de Emergência
  • Investigam problemas urgentes rapidamente
 
Tracker
  • Acompanhar e prover feedback sobre
    • Métricas
    • Qualidade das estimativas
    • Big picture
    • Riscos
  • Deve coletar informação de métricas sem ser um constante intruso
  • Divulga métricas de alguma forma visível
  • Atualiza o cronograma, usando alguma ferramenta apropriada
  • Como ele assume o papel de Avaliador de Riscos, ele:
    • Identifica e avalia riscos
    • Ajuda a bolar planos de recuperação
 

Quem decide o quê?

O Quê, Como: As Atividades do Processo

Idéia Geral do Processo

As atividades

[Depois, devo melhorar essa descrição e incluir: Fase, atividade, descrição, como fazer (sub-atividades ou WBS), artefatos (deliverables), artefatos sob controle de mudança, quem aprova e como, responsáveis, condição de entrada, etc.]

A Fase de Planejamento e Elaboração

Obtenção de Requisitos

Elaboração do Projeto Arquitetural

Priorização da Funcionalidade

A Fase de Construção

Construção do próximo release

A Fase de Implantação

Controle de Mudança