Scott Sehlhorst, em seu respeitado blog sobre Agile "Tyner Blain", escreve sobre a relação entre o comprometimento e as estimativas ágeis e se aprofunda em outros princípios ágeis relacionados. Sehlhorst aponta o fato de que os frameworks e metodologias ágeis não incluem o comprometimento entre seus princípios e técnicas, e considera os problemas resultantes:
Seu chefe busca responsabilidade e comprometimento e quer um grau maior de certeza na execução dos projetos. Mas você e sua equipe ágil oferecem apenas estimativas e previsões sobre o trabalho a ser realizado.
É preciso, diz Sehlhorst, encontrar um equilíbrio no gerenciamento ágil de produtos e no planejamento de releases. Fazendo um balanço histórico, ele lembra que antes do Agile, as equipes e os gerentes faziam estimativas e se comprometiam a executá-las e atingi-las – embora na maioria das vezes as previsões não se concretizassem.
Assim funcionavam as metodologias seguindo o modelo em cascata (waterfall). Para tentar contornar as incertezas, as equipes de projeto incluíam margens (padding) nas estimativas e manipulavam o escopo.
Sehlhorst resume em três pontos os desafios enfrentados especialmente com as metodologias não-ágeis e que são bem conhecidas da comunidade Agile:
- As estimativas iniciais contêm erros e incerteza, e somando essas estimativas chega-se a um total de previsões erradas.
- As demandas externas, a disponibilidade de recursos e as pessoas mudam ao longo do projeto.
- As necessidades dos clientes mudam ao longo do projeto.
As técnicas Agile, destaca o autor, foram moldadas com foco nas necessidades instáveis ou voláteis dos clientes, e não naquilo que foi pedido inicialmente. Sehlhorst defende que o valor das estimativas ágeis está exatamente no fato de serem previsões. A equipe estima as dificuldades e o tempo necessário para realizar o trabalho, mas não se compromete com prazos fixos.
Estimativas
Comprometimento é sinônimo de certeza e isso não combina com previsão do futuro. Quando se diz “isso vai levar duas semanas”, existe um falso sentimento de certeza que deveria ser amenizado; nas palavras de Sehlhorst:
Ao pensar em futuro estamos lidando com probabilidades. O certo seria dizer “Esperamos com 95% de confiança que não levará mais que duas semanas”.
Sehlhorst aponta como um dos problemas a dificuldade de compreender que as estimativas são um “chute científico", ou seja, uma previsão com certo grau de confiança.
Uma técnica bastante utilizada para estimar a duração de atividades e projetos é a técnica PERT (Program Evaluation and Review Technique) que resulta numa curva de Gauss (veja a figura abaixo), em que se observa a média e os intervalos de confiança para as estimativas (na figura, indicados pelas linhas verticais em -s e s):
Sehlhorst destaca, ainda, que em projetos envolvendo a estimativa de várias tarefas (que podem estar bem definidas, mal definidas e até totalmente indefinidas), as estimativas resultantes se beneficiam do Teorema do Limite Central e da Lei dos Grandes Números, e são mais confiáveis que as estimativas de tarefas individuais.
Previsões
Para Sehlhorst, a grande vantagem das previsões em métodos ágeis é a adoção de horizontes de tempo menores. Em um sprint de duas semanas existe menos indefinição nas tarefas, e provavelmente o ambiente não irá mudar muito.
Sehlhorst menciona o Cone de Incerteza (veja a figura abaixo), que indica o aumento na incerteza, ou a diminuição na qualidade das estimativas, com o aumento do horizonte de tempo de previsão. Ressalta que estimativas iniciais chegam a conter erros da ordem de 400%, e que mesmo após a definição do escopo e o congelamento inicial de requisitos, observam-se erros da ordem de 30 a 50% nas estimativas. Além disso, nas abordagens waterfall, as estimativas erradas se somam às mudanças no ambiente e na equipe.
O autor mostra mais formalmente o que várias equipes Agile experientes já percebem na prática: que as abordagens ágeis, além de serem capazes de gerar estimativas melhores, por trabalharem com períodos de previsão menores, ainda são capazes de adaptar os objetivos do projeto às mudanças do ambiente, e a desejos e necessidades dos envolvidos.
As equipes ágeis conseguem diminuir a incerteza nas estimativas, à medida que os sprints são executados, acompanhando a evolução do produto e conhecendo melhor suas características. Isso permite definir e estimar atividades inicialmente desconhecidas.
Comprometimento
Sehlhorst reforça o uso de sprints e do backlog como ferramentas ágeis eficientes para satisfazer o cliente e para reduzir as incertezas do projeto ao longo do tempo. Os chefes e gerentes querem que a equipe se comprometa com os prazos estimados; esse é o gargalo que se quer contornar. A solução, segundo ele, é usar o backlog do produto.
Para Sehlhorst, a incerteza deve ser entendida em termos de quanto conseguimos completar em uma quantidade de tempo determinada, feito usando time-boxes. Essa abordagem, lembra o autor, é o cerne das metodologias ágeis e não pode ser subvertida para que sejam realizadas previsões de tempo total do projeto, como é o enfoque das metodologias em cascata.