Planning Poker: estimativas em processo ágeis.

Pessoal, muitos alunos e profissionais que atuam no mercado de desenvolvimento de software me questionam sobre as estimativas nos processo ágeis (XP, scrum … ).

Um processo ágil é alicerçado pelo modelo evolucionário presente na engenharia de software. Neste modelo de processo o projeto parte de um núcleo de desenvolvimento, algumas funcionalidades básicas são implementadas e apresentadas ao usuário, este, por sua vez, acrescenta novas funcionalidades ao projeto, caracterizando assim a evolução do projeto de software. Os processos ágeis partem do referido modelo e implementa aquilo que eles chamam de feedback constante.

As estimativas em qualquer projeto são de extrema importância, é a partir delas que uma equipe define o tempo e esforço necessários para a execução de uma atividade determinada pelo processo. É importante salientar que em qualquer processo de software estimar não é uma tarefa fácil.

1) Dificuldades técnicas, como por exemplo, o surgimento de uma nova tecnologia e o desconhecimento da equipe frete a este fato;

2) freqüentes mudanças na equipe;

3) a falta de conhecimento sobre o que será desenvolvido e;

4 – freqüentes mudanças no escopo do projeto…

São problemas eminentes na execução das estimativas.

Toda e qualquer estimativa direciona o tamanho (volume de trabalho) e a duração (tempo necessário para execução do trabalho). Lembrando que a duração é uma medida ligada ao tamanho e a capacidade técnica (velocidade) da equipe.

Uma alternativa para estimar dentro dos processo ágeis, dentre muitas, é utilizar a planning poker (planejando a partir das cartas). O planning poker é uma forma de estimar que envolve todos os envolvidos com o desenvolvimento de uma determinada funcionalidade. Para executá-lo:

1 – Defina uma unidade de medida para a sua equipe de software: por exemplo, hora de trabalho.

2 – Reúna todos os envolvidos da equipe que irão trabalhar em uma determinada funcionalidade.

3 – Cada envolvido possui um conjunto de cartas nas mãos, cada carta contém um número. As cartas são as mesmas para todos os membros da equipe.

4 – Faça a leitura da especificação da funcionalidade.

5 – Solicite que cada membro da equipe escolha uma carta, ela irá representar a quantidade de horas necessárias para o desenvolvimento da funcionalidade.

6 – Se todas as cartas forem iguais, por exemplo: 3,  o tempo para o desenvolvimento, segundo os desenvolvedores, será de 3 horas. Fim do jogo.

7 – Se existirem divergência nas cartas solicite que os desenvolvedores que apresentaram os menores e maiores números justifiquem suas decisões.

8 – Retorne ao passo 4.

Por fim, desenvolva uma base de estimativas, armazene nela:

1) a especificação da funcionalidade;

2) o tempo e esforço (quantidade de pessoas) necessários para o desenvolvimento (lembrando que estes números foram definidos segundo a experiência da sua equipe) e;

3) o tempo e o esforço real, medida capturada após o desenvolvimento da funcionalidade. Consulte constantemente esta base, ela pode nortear a definição de novas estimativas.

José Augusto Fabri – Universidade Tecnológica Federal do Paraná (fabri@utfpr.edu.br)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: