Postagens

Sequência de Fibonacci no Agile: Por que usamos 1, 2, 3, 5, 8, 13 para Story Points

Cartas de planning poker mostrando números de Fibonacci espalhadas em uma mesa com mãos de desenvolvedores alcançando-asCartas de planning poker mostrando números de Fibonacci espalhadas em uma mesa com mãos de desenvolvedores alcançando-as
Matt Lewandowski

Matt Lewandowski

Última atualização 16/02/20268 min de leitura

Você se senta para sua primeira sessão de planning poker. O líder do time puxa um item do backlog e pede a todos que votem. Você olha suas opções de cartas: 1, 2, 3, 5, 8, 13. Onde foi o 4? Por que ele salta de 5 para 8? Por que não usar 1 a 10? É a pergunta que todo novo membro da equipe faz. E a resposta revela algo fundamental sobre como os humanos estimam trabalho complexo.

O que a sequência de Fibonacci realmente é

A sequência de Fibonacci é uma série de números onde cada número é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, e assim por diante. Foi descrita pelo matemático italiano Leonardo de Pisa (conhecido como Fibonacci) em 1202, embora o padrão apareça na natureza em todos os lugares, desde a espiral de uma concha de náutilo até a ramificação das árvores. As equipes agile não usam a sequência de Fibonacci por causa de qualquer conexão com a natureza. Elas usam porque os intervalos entre números crescem conforme os números ficam maiores, e isso reflete como a incerteza funciona na estimativa de software.

Por que as escalas lineares falham na estimativa

Imagine que sua equipe usa uma escala simples de 1-10. Alguém puxa uma história e dois desenvolvedores votam diferente. Um diz 6, o outro diz 7. Esse desacordo é significativo? Provavelmente não. A diferença entre um 6 e um 7 é tão pequena que é ruído. Mas agora o time gasta cinco minutos debatendo se realmente é um 6 ou um 7, tentando justificar uma distinção que não existe. Isso são cinco minutos desperdiçados em precisão falsa. Uma escala linear implica que você pode distinguir entre níveis de esforço com precisão uniforme. Você não pode. E quanto maior o item, pior é sua precisão. Comparação em quadro branco mostrando uma escala linear com números espaçados uniformemente versus uma escala de Fibonacci com intervalos crescentes entre valoresComparação em quadro branco mostrando uma escala linear com números espaçados uniformemente versus uma escala de Fibonacci com intervalos crescentes entre valores

Por que os intervalos importam

A sequência de Fibonacci funciona para estimativa por causa de três princípios convergentes.

O cone de incerteza

Tarefas pequenas são previsíveis. "Mudar a cor do botão de azul para verde" tem mínimas incógnitas. Você pode estimá-la com confiança. Tarefas grandes carregam exponencialmente mais incógnitas. "Construir a integração de pagamento" soa como um único item, mas contém autenticação, tratamento de erros, lógica de repetição, requisitos de conformidade e casos extremos que você ainda não considerou. Quanto maior o trabalho, maior sua incerteza, e sua escala de estimativa deveria refletir isso. Os intervalos de Fibonacci se ampliam conforme a complexidade aumenta, refletindo a realidade de que uma história de 13 pontos tem muito mais incerteza do que uma história de 3 pontos. Oferecer uma escolha entre 12 e 13 para algo tão grande seria precisão sem sentido.

Forçando desacordos significativos

Com uma escala de Fibonacci, quando dois desenvolvedores discordam, o desacordo é significativo. O salto de 5 para 8 é um aumento de 60%. Este tipo de intervalo reflete uma diferença genuína de entendimento: uma pessoa vê uma implementação direta, a outra vê complexidade oculta. Esse desacordo dispara exatamente a conversa que você quer no planning poker. "Por que você acha que é um 8?" "Porque precisaremos lidar com o caso de sincronização offline." "Ah, eu não tinha considerado isso." A escala força discussões que realmente trazem à tona riscos e mal-entendidos. Com uma escala linear, um desacordo 6 vs. 7 não dispara a mesma urgência de discutir. O intervalo é muito pequeno para parecer importante, mesmo quando os pressupostos subjacentes são completamente diferentes.

Lei de Weber

Há um princípio em psicofísica chamado Lei de Weber: os humanos percebem diferenças como proporções, não valores absolutos. Você pode facilmente notar a diferença entre 1 quilograma e 2 quilogramas. Mas notar a diferença entre 50 e 51 quilogramas? Muito mais difícil. O mesmo se aplica à estimativa. Você pode dizer com confiança se algo é um 2 ou um 3 (um salto de 50%). Você não pode dizer com confiança se algo é um 14 ou um 15 (um salto de 7%). A sequência de Fibonacci respeita isso mantendo a diferença proporcional entre opções adjacentes aproximadamente consistente, o que significa que cada escolha na escala representa um nível genuinamente distinguível de esforço.

A sequência de Fibonacci modificada

Se você usou diferentes escalas de estimativa, notará que a maioria das ferramentas agile não usa a sequência de Fibonacci pura. Elas usam uma versão modificada: 1, 2, 3, 5, 8, 13, 20, 40, 100 A modificação começa após 13. Fibonacci puro lhe daria 21, 34, 55, 89. Em vez disso, os times arredondam para números mais limpos: 20, 40, 100. Por quê? Porque nessa escala, a precisão de Fibonacci não importa. Algo estimado em 40 pontos tem tanta incerteza que a diferença entre 34 e 40 é irrelevante. Números redondos comunicam a mensagem certa: "Isso é muito grande, e estamos adivinhando." A maioria dos times usando essa escala trata qualquer coisa acima de 13 como um sinal de que o item precisa ser dividido em histórias menores antes de poder ser trabalhado.

As cartas de infinito e ponto de interrogação

Desenvolvedor segurando uma carta de infinito e uma carta de ponto de interrogação durante uma sessão de planning pokerDesenvolvedor segurando uma carta de infinito e uma carta de ponto de interrogação durante uma sessão de planning poker Além dos números, a maioria dos baralhos de planning poker incluem duas cartas especiais: Infinito significa "isso é muito grande para estimar." É a forma do time dizer que uma história precisa ser decomposta antes que a estimativa seja significativa. Se alguém jogar infinito, a resposta correta não é negociar para um 40. É parar de estimar e começar a dividir. Ponto de interrogação significa "Eu não tenho informações suficientes para estimar isso absolutamente." Talvez os requisitos não sejam claros. Talvez o desenvolvedor não tenha trabalhado com esta parte da base de código. Talvez a história dependa de uma decisão que ainda não foi tomada. O ponto de interrogação traz essas lacunas à tona para que possam ser resolvidas durante o refinement do backlog antes que o trabalho entre em um sprint. Ambas as cartas servem ao mesmo propósito: elas impedem que o time atribua um número a algo que ainda não merece. Uma adivinhação apresentada como número é tratada como um plano. Um ponto de interrogação é tratado como um item de ação.

Quando Fibonacci não é a escolha certa

A sequência de Fibonacci é a escala de estimativa mais comum, mas nem sempre é a melhor opção. Dimensionamento por tamanho de camiseta (XS, S, M, L, XL) funciona melhor quando você precisa de estimativas rápidas e aproximadas e não quer entrar em debates numéricos. É especialmente útil para planejamento a nível de roadmap onde pontos exatos não importam. Leia nosso guia sobre técnicas de estimativa agile para ver como o dimensionamento por tamanho de camiseta e outros métodos se comparam. Potência de 2 (1, 2, 4, 8, 16, 32) atrai times que querem intervalos ainda mais agressivos entre opções. Cada passo dobra o esforço, o que torna os desacordos ainda mais óbvios. Escalas lineares podem funcionar para times fazendo trabalho altamente previsível e uniforme onde itens genuinamente se agrupam em torno de tamanhos similares. Mas esses times geralmente não precisam de estimativa de jeito nenhum. Contar itens lhe dá a mesma precisão de previsão. O movimento #NoEstimates faz um argumento convincente para quando omitir completamente a estimativa. A escala certa depende do contexto do seu time, mas para a maioria dos times agile fazendo trabalho variado com alguma incerteza, Fibonacci permanece o padrão por boa razão.

Colocando Fibonacci em prática

Entender por que Fibonacci funciona é útil. Mas o valor real vem de usá-lo em sessões de estimativa estruturadas onde todo o time participa. Se você está executando planning poker pela primeira vez, comece com a escala de Fibonacci padrão (1, 2, 3, 5, 8, 13). Estabeleça uma história de referência cedo ("todos concordam que esta mudança de formulário de login é um 3") e estime tudo o mais relativo a esse âncora. Se um item gera estimativas muito diferentes, não as calcule a média. Discuta o desacordo. É aí que a escala faz seu trabalho. Você pode tentar isso com seu time usando a ferramenta de planning poker do Kollabe. Escolha Fibonacci como sua escala, convide seu time e comece a estimar. Você também pode querer executar itens através do analisador de complexidade de estimativa antes da sessão para identificar histórias que provavelmente vão gerar desacordo.

Horas medem duração, que varia por pessoa. Um desenvolvedor sênior pode terminar uma tarefa em 2 horas que leva um desenvolvedor junior 8 horas. Story points medem complexidade relativa a outro trabalho, em que todo o time pode concordar independentemente de quem pega a tarefa. Pontos também evitam a armadilha de tratar estimativas como prazos.

Um story point representa esforço relativo e complexidade comparado a outras histórias que seu time estimou. Uma história de 5 pontos deveria ser aproximadamente o dobro tão complexa quanto uma história de 3 pontos e aproximadamente metade tão complexa quanto uma história de 8 pontos. Os números específicos são sem sentido em isolamento. Eles só têm significado relativo uns aos outros dentro do seu time.

Alguns times incluem 0 em sua escala de Fibonacci para representar trabalho que é trivialmente pequeno, como um erro de digitação ou uma mudança de configuração. Isso sinaliza "isso leva quase nenhum esforço mas devemos rastreá-lo." Outros times pulam 0 e usam 1 como seu valor menor. Ambas as abordagens funcionam, apenas seja consistente.

Se a maioria de suas estimativas se agrupam em torno de dois valores, suas histórias podem estar muito similarmente dimensionadas (o que é na verdade bem para previsão de throughput) ou seu time pode não estar diferenciando o suficiente. Tente recalibrar suas histórias de referência. Certifique-se de que seu âncora "3" é genuinamente pequeno e seu âncora "13" é genuinamente grande. Se tudo ainda se agrupa, suas histórias podem precisar ser divididas diferentemente. Veja nosso guia sobredividir epicspara padrões.