Story Points: A culpa não é do Fibonacci
- Wagner Borba
- Jan 10, 2024
- 4 min read
No mundo da agilidade há uma relação de amor e ódio com um método de estimativas chamado Story Points. Eu trabalho em times ágeis desde 2011 e, desde lá, nos deparamos com pessoas que rejeitam completamente o método, afirmando que ele é falho e superestimado. Há quem também afirme que o método, que usa a famosa Sequência de Fibonacci como base, traz um falso entendimento sobre a real complexidade de uma atividade, atrelando a ela um número que será seu balizador de tempo. O que acontece na verdade é um grande equívoco sobre o funcionamento do método em si.
A sequência de Fibonacci, criada pelo matemático Leonardo Fibonacci (1170 – 1240), é uma série de números em que cada número é a soma dos dois anteriores, começando por 0 e 1. Portanto, a sequência começa assim: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, e assim por diante. A fórmula matemática para a sequência de Fibonacci é:
F(n)=F(n−1)+F(n−2)
onde F(n) é o n-ésimo número na sequência.
Dito isso, o método de estimativas usando Story Points determina a atribuição de um número dessa sequência para materializar o esforço de uma determinada atividade. Isso é bastante utilizado no mundo da tecnologia e já passou por algumas transformações com o tempo, sendo por vezes substituída por estimativas T-shirt Size (XP, P, M, G, XG) e Comparação Ponderada. A ideia de Fibonacci era demonstrar que a sequência fazia sentido em uma série de observações do mundo, a começar pela evolução no processo reprodutivo dos coelhos, porém isso foi usado apenas como pano de fundo para entender que essa lógica perpassa por vários outros contextos, além do matemático:
Arte e Estética:
A proporção áurea, relacionada ao número de ouro, é frequentemente utilizada em arte e design para criar composições visualmente agradáveis e equilibradas.
Arquitetura:
Algumas estruturas arquitetônicas notáveis, como a Pirâmide de Quéops, exibem proporções que se aproximam da razão áurea.
Biologia e Botânica:
A disposição de folhas em muitas plantas, a espiral de sementes em girassóis e a estrutura de cones de pinheiro seguem padrões relacionados à sequência de Fibonacci.
Genética:
A sequência de Fibonacci e seus padrões relacionados aparecem em alguns aspectos da estrutura do DNA e na organização de partes de organismos vivos.
Teoria dos Números:
A sequência de Fibonacci está diretamente relacionada à teoria dos números, com propriedades matemáticas únicas que são exploradas em contextos matemáticos mais amplos.
Música:
Compositores e músicos ocasionalmente incorporam padrões relacionados à sequência de Fibonacci em suas composições.
Análise de Mercado Financeiro:
Alguns analistas de mercado financeiro usam a sequência de Fibonacci em análises técnicas para identificar padrões de reversão e continuação em gráficos de preços.
Convergência de Algoritmos:
Algoritmos baseados na sequência de Fibonacci são usados em várias áreas, como otimização e busca.
Legal, já divagamos bastante sobre a origem e a aplicabilidade da sequência, mas este não é o propósito do artigo. O propósito é mostrar que o problema que muitos identificam nos story points não está no método, está no processo. Se podemos observar esta amplitude numérica em tantas coisas do nosso dia a dia, por que não relacioná-la ao esforço empreendido para executar alguma atividade?
O maior erro a não ser cometido quando falamos sobre métodos para estimativa de esforço é criarmos um paralelo com horas de execução. Ao trabalharmos com story points precisamos entender que o valor atribuído depende necessariamente de duas variáveis: Complexidade e Incerteza. Vamos entender ao que se refere cada uma delas:
Complexidade:
A complexidade se refere à dificuldade percebida na implementação de uma user store. Pode incluir vários fatores, como:
Requisitos técnicos: Se uma estória envolve tecnologias complexas ou conceitos difíceis.
Integração: Se a implementação da estória requer integração com outros sistemas ou módulos complexos.
Lógica de Negócios: Se a lógica subjacente à estória é complicada.
Incerteza:
A incerteza refere-se à falta de clareza ou conhecimento sobre a estória de usuário. Pode incluir fatores como:
Requisitos vagos: Se os requisitos da estória não estão totalmente claros ou sujeitos a mudanças.
Riscos desconhecidos: Se há incertezas relacionadas a riscos técnicos ou de negócios que podem surgir durante a implementação.
Dependências não identificadas: Se existem dependências que não foram totalmente identificadas.
Para dar mais clareza ao processo podemos, sempre que necessário, utilizarmos de dinâmicas visuais, como o quadro abaixo:
Nele há divisões em diferentes graus de complexidade e incerteza. O que de imediato você poderia pensar é: "se a sequência Fibonacci continua após o 21, por quê você limitou até este número?". Esse é um outro ponto legal de esclarecer. User Stores com 21 story points ou mais indicam que há um grau muito alto de complexidade e incerteza, levando-nos a entender que uma atividade com esforço suficiente para desequilibrar uma sprint (usando Scrum) ou um WIP (usando Kanban). Posso afirmar que, em 95% dos casos, user stories com 21 pontos ou mais podem ser quebradas em USs menores, o que obedece ao princípio ágil de frequente entrega de valor.
Portanto o processo precisa ser mais claro para o time. Eles precisam entender o que está envolvido na avaliação de esforço e o que consideramos na incerteza e na complexidade de cada atividade planejada, ao invés de especular quantas horas ou dias isso vai levar.
"Ahhh, mas somos cobrados por dar prazos para entregar algo. Como não considerar o tempo neste caso?".
O tempo é a consequência, não a causa. E isso nunca pode ser posto como uma certeza, já que em gestão de entregas nunca podemos dizer nada com 100% de certeza, devendo sempre considerarmos o nível de confiança. Mas isso é história para um outro papo.
Comments