sexta-feira, 26 de fevereiro de 2010

Estimativas Absolutas X Estimativas Relativas

Qual a extensão da muralha da China ?
Qual a temperatura do Sol ?
Qual a altura da Empire State Building ?


Se fizermos essas perguntas a 10 pessoas diferentes provavelmente receberemos 10 respostas completamente diferentes. Mas o que isso tem haver com software ? O processo de estimar esses valores não é muito diferente do que fazemos quando alguém nos pede para estimar quanto tempo vai levar para desenvolver a função X. Prever todos os fatores que possam impactar o processo de desenvolvimento é impossível, resumindo, acertar quanto vai levar para implementar um funcionalidade não difere muito de acertar a altura do Empire State ou a temperatura do Sol.

Esse tipo de estimativa pode ser chamado de absoluta, porque tentamos estimar diretamente o tempo de cada funcionalidade sem levar em conta as outras. Esse tipo de estratégia tem diversos problemas. As estimativas ficam totalmente desprotegidas em relação a mudanças na equipe já que as estimativas de tempo têm relação direta com a quantidade de pessoas que formam a equipe e a grau de experiência e conhecimento de cada uma delas, qualquer tipo de mudança nos membros da equipe invalidarão todas as estimativas já realizadas.

Quando passamos a estimar relativamente, não nos preocupamos inicialmente com o tempo, pode parecer estranho a primeira vista, mas o que precisamos estimar inicialmente é o tamanho de cada funcionalidade, o quão complexo será desenvolver o item, mas não só isso, o valor de complexidade atribuído a cada item deve ser definido em relação a outros. Exemplificando: Se atribuirmos um valor de complexidade 10 para o item A e estimarmos que o item B é três vezes mais complexo então atribuiremos o valor 30 para o item B e assim por diante até que todos os itens estejam estimados. Qual a vantagem disso? Primeiro iniciamos as estimativas com uma referência, para isso escolhemos um item que pareça ser simples e atribuímos nosso valor de referência (2,10,N,etc.) e a partir daí passamos a estimar o outros itens em relação a essa referência. O importante aí não é a precisão da referência, mas sim a consistência entre as estimativas. Outra vantagem é que as estimativas estão blindadas em relação a mudanças na equipe, mesmo que a equipe mude completamente o tamanho dos itens é o mesmo.

Mas precisamos ter uma idéia de quando o item estará pronto, precisamos planejar nossas entregas, etc. Para isso aplicamos nas nossas estimativas relativas a métrica da velocidade da equipe, ou seja quantos pontos de complexidade a equipe consegue resolver a cada iteração, como isso podemos derivar toda a agenda do projeto, se a equipe mudar a velocidade muda e a agenda muda, mas todo trabalho em estimar não é perdido.

Quando aplicamos a velocidade estamos injetando realidade nas nossas estimativas, estamos de fato usando uma métrica de quanto à equipe pode se comprometer e estamos entregando uma agenda muito mais confiável.

Vamos apronfundar esse assunto no futuro.

Fonte: http://lucianofelix.wordpress.com/2008/05/15/estimativas-absolutas-x-estimativas-relativas/

Nenhum comentário:

Postar um comentário