Estatística básica nas entregas de projetos agile - Moda, mediana e percentil
Entendendo o básico sobre como podemos entender a vazão do time sem precisar de estimativas furadas ou bola de cristal.
Cada uma das metodologias de gestão de projetos tem suas próprias características de funcionamento e essência. Mas todas elas tentam responder uma grande pergunta que virou clichê faz milhares de anos: quando o projeto será entregue?
Esse são os slides que fiz sobre o assunto há muito tempo atrás.
A graça das metodologias ágeis é que você trabalha em cima de transparência, incluindo o usuário e os stakeholders no processo, permitindo mudanças de planos no meio do caminho, apressando as falhas e tentando entregar incrementos de valor ao final de cada ciclo. Tudo isso serve para gerenciar as expectativas e fazer as informações do projeto fluirem. Aproximando os stakeholders e os clientes, eles ganham visibilidade do status do projeto, diminuindo a ansiedade sobre quando o projeto vai ser entregue. Mesmo que as expectativas estejam bem gerenciadas, saber o dia de entrega do projeto é importante para o planejamento do produto, é uma questão estratégica para a empresa.
Para ajudar nessa tarefa, existem uma série de métricas já bem conhecidas que monitoram a saúde do processo de desenvolvimento. Alguns deles você já conhece como o CFD, Lead Time, Cycle Time etc. Contudo, essas métricas por si só, mostram o cenário presente do projeto. Elas são importantes, porque mostram se você está no caminho certo ou errado. Mas não basta apenas saber que estamos no caminho correto, é muito mais inteligente enxergarmos parte do caminho que iremos trilhar afim de prevermos nossas entregas e consequentemente termos um vislumbre de quando o projeto irá de fato terminar.
A ideia desse artigo não é abordar as previsões probabilísticas de projetos (que é um assunto muito mais profissa), mas é dar alguma ideia básica para você que pode estar querendo fazer um pouco mais do que só olhar o CFD do seu time.
Consistência e tamanho das histórias
O primeiro segredo para prever o futuro das entregas em um projeto é ter consistência. O time precisa ter uma frequência de entrega consistente. Isso não é algo fácil de se conseguir, pois o processo de desenvolvimento não é linear, pelo contrário: imprevistos acontecem, pessoas ficam doentes, o caso do bus factor, ambientes de desenvolvimento quebram, o mercado muda… Tudo isso faz com que o desenvolvimento de software seja um lugar complexo de se trabalhar. Para tentar diminuir as incertezas, nós precisamos entregar tarefas sempre do mesmo tamanho e você sabe que isso é algo difícil de se fazer.
Não quero falar aqui sobre metodologias de estimativa, porque não importa qual metodologia você usa, o que importa é que no final você e seu time tenham histórias do mesmo tamanho e que sejam claras para todo mundo.
Essa coisa de histórias pequenas, médias e grandes não existe. Você precisa que todas as histórias tenham de preferência, o menor tamanho possível, mas que continuem entregando valor para o usuário. A ideia é que seu backlog seja recheado de tarefas mais ou menos do mesmo tamanho, possibilitando sua entrega dentro do ciclo (sprint ou semana). Como você vai saber qual o tamanho ideal das tarefas do seu time? Experimentando. Aqui não tem segredo nenhum, é só medir e comparar com o passado. Pegue os outliers (tarefas que demoraram muito mais tempo para fazer do que as outras) e descubra o que aconteceu e tente se certificar de que isso não aconteça mais. Existem cerimônias para facilitar o processo como o Inception, Refinement, Plannings etc…