Reflexões sobre desenvolvimento de software (only in Portuguese)

segunda-feira, 2 de fevereiro de 2015

Estimativa de histórias usando t-shirt sizes (tamanhos de camiseta)

Estimar histórias é sempre algo difícil de fazer, pois muitos dos desafios de cada história só são descobertos durante o desenvolvimento dela. Ainda que eu preferisse não precisar estimar, quando existem stakeholders e clientes investindo tempo e dinheiro, é necessária uma métrica de quanto tempo as funcionalidades levarão para ficarem prontas para ajustar expectativas.

Além desse motivo, estimativas aliadas a boas retrospectivas podem ajudar a descobrir partes de um sistema que precisam de refatorações. Por exemplo, caso histórias atrasem ou sejam sempre rotuladas como difíceis, pode-se investigar o que essas histórias tem em comum e procurar soluções que possam mitigar esses problemas.

Existem diversas maneiras de estimar histórias, dentre elas, a que mais me agrada é usando t-shirt sizes. Nesse tipo de estimativa, história podem ser pequenas, médias ou grandes (assim como tamanhos de camisetas). O que significa exatamente esses tamanhos depende do time. Além de ser uma terminologia fácil de usar mesmo por pessoas não técnicas, esse modo funciona bem em equipes com iterações bem curtas.

Nesse caso, acho bastante efetivo quando o tamanho médio significa um história que pode ser terminada em uma iteração. Consequentemente uma história pequena em menos que uma iteração e uma grande em mais de uma.

Funcionalidades que o cliente deseja adicionar ao produto normalmente são escritas pelo analista de negócios como épicos. Esses épicos devem ser quebrados em histórias menores que adicionem valor o mais rápido possível. Deve-se tentar quebrar épicos em várias histórias médias, mas inevitavelmente existirão histórias que seja pela arquitetura da aplicação ou mesmo por dificuldades para testá-la adequadamente, terão que ser rotuladas como uma história grande (isto é, finalizada em mais de uma iteração). Assim como às vezes existem funcionalidades pequenas demais que já agregam valor, que podem ser rapidamente finalizadas em menos de uma iteração.

Existem outras maneiras de estimar, usando por exemplo a sequência de Fibonacci, mas dado que estimativas nunca são precisas, se o time consegue fazer iterações bem curtas como de uma semana, não vejo tanto valor em dar mais precisão do que pequeno, médio ou grande na maior parte dos casos.