Fibonacci sequence | Sequência de Fibonacci

A Fibonacci sequence ou sequência de fibonacci é muito usada em scrum para estimar em story points. Mas o que é que as equipas scrum têm de estimar e o que são story points?

As equipas ágeis têm de estimar os product backlog items. Muitas equipas ágeis recorrem a story points como unidade de medida usada para estimar estes registos do product backlog. Story points correspondem ao esforço relativo necessário para completar um product backlog item em relação aos restantes. Dessa maneira, quanto maior o número de pontos de um requisito, maior será o esforço necessário para completar as tarefas necessárias para desenvolver esse requisito. A estimativa de story points de um requisito não tem significado por si, mas pode ser comparado com a estimativa de story points de outro requisito.

Existem várias sequências usadas como escalas de pontuação. Contudo, a sequência mais popular é a Fibonacci sequence. A sequência de fibonacci é obtida começando com os números 0 e 1,  somando os dois números anteriores. Desta forma, a sequência é: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89… No entanto, a sequência de Fibonacci pode dar uma falsa ilusão de exactidão que é indesejável. Muitas equipas ágeis usam uma sequência de Fibonacci ajustada: 0, 1, 2, 3, 5,8, 13, 20, 40, 100.

Fibonacci sequence | Sequência de Fibonacci

Quiz Agile

Cursos Agile

Mas porque usamos a Fibonacci sequence (sequência de fibonacci) para estimar em Agile?

Imagine que lhe colocam numa mão um saco com 1 kg de batatas, e na outra mão um saco com 2 kg de batatas. Se lhe perguntarem qual é mais pesada, certamente conseguirá facilmente identificar que o saco de 2kg é mais pesado. Mas imagine que lhe colocam um saco de batatas com 25kg numa mão e na outra mão um saco com 26kg de batatas. Será assim tão fácil perceber qual o mais pesado? Em ambos os casos, a diferença dos dois sacos é de 1kg. No entanto, à medida que o peso aumenta, é preciso que a diferença entre os dois sacos aumente para conseguirmos distinguir o saco mais pesado.

É por esta razão que usar a sequência de fibonacci faz sentido para estimar em agile. Assim, à medida que a sequência avança, os números que a equipa pode escolher vão dando saltos cada vez maiores. Desta forma, o nosso cérebro consegue perceber que um requisito com um valor de 13, por exemplo, requer mais trabalho que um requisito de 8.

Como funciona a Fibonacci sequence (sequência de fibonacci) na prática?

Imagine que a equipa se reuniu para estimar o esforço para desenvolver uma nova funcionalidade da máquina de café que estão a desenvolver. Todos concordam que, por ser, dessa maneira, uma uma funcionalidade inovadora e complexa, requer um esforço bastante elevado.

A equipa tentou usar uma escala de estimativa linear em que os valores sobem, dessa forma, a um valor constante (e.g., 1, 2, 3, 4, 5, 6, …). No entanto, não conseguiu chegar a um consenso relativamente à estimativa. Diferentes elementos de equipa avançaram, desse modo, com diferentes estimativas (e.g., 95, 97, 102, 107, 109) sem conseguir tomar uma decisão de qual o valor a estimar. Será que a equipa consegue distinguir, dessa maneira, uma estimativa de 95 de uma estimativa de 97? Dificilmente o nosso cérebro consegue, desse modo, distinguir estimativas com valores tão altos e tão próximos entre si. Por outro lado, o mesmo já não acontece se usarmos a Fibonacci sequence. Neste caso, teríamos que distinguir, por exemplo, entre os valore 55 e 89. Dessa forma, o nosso cérebro já consegue perceber que um requisito com um score de 89 requer muito mais esforço que um requisito com um score de 55.

Em suma, usar a fibonacci sequence ajuda a equipa a estimar o esforço que um product backlog item (PBI) poderá exigir. Contudo, não nos podemos esquecer que este valor é meramente um indicador para perceber qual os PBIs que requerem mais esforço. Estas estimativas não correspondem, dessa maneira, a unidades de tempo. Ou seja, um requisito que tem um score de 13 não significa que demore, por exemplo, 13 horas.