PROJETOS

Story Points e por que elas são necessárias

Story Points e por que elas são necessárias
Story Points e por que elas são necessárias

Em projetos ágeis uma das melhores maneiras que podemos encontrar para estimar esforço é utilizando Story Points ou pontos de estórias. Se pegarmos uma definição emprestada da XP (extreme programming), podemos dizer Story Points são uma forma relativa que utilizamos para medir o tempo necessário para se implementar uma estória de usuário. Uma pergunta que muitas pessoas me fazem é: Por que usar pontos de estórias se podemos utilizar horas ou dias para estimar o tempo (esforço) envolvido para fazer alguma coisa?

Eu vou responder essa pergunta agora e para isso vou te contar duas histórias, acredito que elas serão suficientemente convincente para você. Vamos à elas!

#história1 – Filho, vá ao mercado para a mamãe

Era normal, quando mais novo, que eu fosse sempre ao mercado comprar algumas coisas para minha mãe. Ela nem sempre tinha tempo e por isso pedia que eu fosse para à ajudar. Em um desses dias ela me pediu para comprar alguns ingredientes para um bolo que ela queria fazer, o problema é que o mercado que tinha esses ingredientes ficava longe e por conta disso eu também não conhecia a sua localização. Minha mãe me passou as coordenadas para chegar até lá e disse que em 10 minutos eu já estaria lá, ela mesmo precisou ir até lá naquela mesma semana e não demorou mais que isso.

No caminho não demorou muito e acabei me perdendo, acabei confundindo a rua em que deveria entrar e isso fez com que eu me perdesse. Perguntei para algumas pessoas em uma lanchonete em que passava e eles me entregaram a localização correta a partir do ponto que eu estava, segui as coordenadas e, enfim, cheguei ao mercado. Contando do momento em que eu sai de casa até chegar ao mercado foram 27 minutos (andei cerca de 1,5 KM), mais que o dobro do que minha mãe havia salientado.

#história2 – Que tal uma corrida?

Eu gosto de correr, mas ultimamente não estou o fazendo com a devida frequência e por conta disso estou fora de forma. Por outro lado, um amigo meu está treinando para uma corrida que só será realizada no final desse ano, porém, desde já o treinamento acontece. Ele me falou que todas as manhãs de sábado faz uma trilha pela avenida principal e demora 35 minutos para ir e voltar. Eu estou familiarizado com a trilha, mas certamente irei demorar 50 minutos para ir e voltar. Então digo que 50 minutos é o tempo que a trilha levará para ser feita. Ele me diz que é bobagem, 30 minutos é o suficiente. E assim ficamos entre 35 e 50, 35 e 50, 35 e 50.

Não está existindo acordo entre nós, talvez se definirmos 40 minutos para percorrer a trilha possamos encontrar um acordo, mas seria a pior opção para nós dois. De repente meu amigo diz: “Kleber, são 7 KM, 30 minutos é o suficiente”. Eu respondo: “Sim, são 7 KM, 50 minutos é o suficiente. :)”. Decidimos então que essa é a melhor opção, percorreremos 7 KM, e cada um no seu tempo.

Mas, o que isso tem haver com Story Points?

O que há de comum entre as duas histórias? O tempo! Na primeira história minha mãe me passou um tempo estimado para chegar até o mercado, porém, de uma pessoa que já conhecia o lugar. Na segunda história meu amigo me passou o tempo estimado para percorrer a trilha, porém, de alguém que já vinha correndo e estava em forma. Perceba que em ambas histórias usamos uma unidade abstrata para medir o esforço, neste caso KM, pois cada um tinha um tempo diferente para percorrer o caminho até o mercado e a trilha da corrida.

Substitua os KM das histórias que citei e verá que Story Points se enquadram facilmente a elas. As Story Points permitem que pessoas com diferentes velocidades e habilidades consigam entrar em concordância, assim como concordei com meu amigo que faríamos não 30 minutos de corrida, mas sim 7 KM de corrida. Considere dois programadores de diferentes velocidades e habilidades, assim como eu e meu amigo na corrida eles podem decidir atribuir 7 pontos (7 KM) em uma estória de usuário e não um ou dois dias.

O programador mais veloz e habilidoso pode pensar que a estória será fácil e que um dia de trabalho será suficiente. Já o programador mais lento e menos habilidoso imagina dois dias para concluir a mesma estória. Mas, eles podem concordar que 7 pontos é o número mais coerente para aquele trabalho. O mais importante é que ambos concordem na atribuição de pontos dada a cada estória, assim a estimativa será feita de maneira segura e correta.

Pessoas são diferentes, pensam diferente, aprendem em velocidades diferentes, enfrentam problemas diferentes, enfim, possuem maneiras diferentes para atuar em cada coisa. A definição de tempo também será diferente para cada um, mas escolhendo Story Points (pontos de estórias) será mais fácil encontrar um acordo entre pessoas com diferentes taxas de produtividade. É isso pessoal, espero que tenham entendido por que usamos pontos e não horas ou dias para estimar esforço. Um grande abraço e até a próxima!

Gostou? Então deixe seu comentário e compartilhe com seus amigos. :)

Você pode gostar também