O que aprendi com estimativas

Estimativas fazem parte integral de projetos de software. Seja em horas, dias, pontos, fibonacci, t-shirt sizes ou qualquer outra medida arbitrária, fazemos elas o tempo todo. Projetos que utilizam scrum, por exemplo, fazem estimativas no início de todos os sprints. Metodologias mais tradicionais costumam estimar o projeto antes da execução, estimando o projeto todo a priori.

Mas, afinal, o que são estimativas? Nada mais do que palpites. Às vezes bem embasados, a maioria sem muita informação. São previsões de quanto recurso é necessário para concluir o objetivo. Quando pedimos um orçamento ao mecânico de um conserto no nosso carro, é uma estimativa (que em 110% das vezes, é abaixo do que realmente acaba custando :().

Estimativas não são compromissos

Estimar é tentar adivinhar quanto tempo leva, uma tarefa. E como toda adivinhação, existe a probabilidade de estar errada. Porém, é comum que as outras pessoas vejam essa estimativa como compromisso. E nesses casos, dar uma estimativa é como assinar um contrato. Tentar voltar atrás é muito difícil e às vezes, bastante desconfortável.

Estimativas são previsões, encare-as como tal. O que puder dar errado, provavelmente vai dar errado.

Estimativas tem um custo

Nenhuma estimativa deve ser tirada do chapéu do mágico. É preciso embasamento, levantamento de informações e uma compreensão dessas informações. Análises devem ser feitas para chegar a uma solução plausível. Estimar antes disso é tão bom quanto jogar uma moeda pra cima.

Executar tudo isso toma tempo, e tem um custo. Isso deve ser levado em conta no projeto.

Estimativas precisam embasar decisões

Exatamente por estimativas terem um custo, que no geral é alto, qualquer estimativa deve ter um propósito. Deve apoiar uma decisão. Ser fundamental em outro processo. Caso contrário, é só desperdício.

Sem um porquê claro, evite.

Esforço não significa progresso

Muitas vezes demoramos muito tempo em algo que acaba por não produzir muito valor ou não tem o resultado esperado. Estimar levando em conta só o tempo de trabalho, e não contamos com o fato de que só fazer o trabalho não é o suficiente. Em desenvolvimento, levar em conta só o tempo em que o código é escrito é um erro tremendo e vocẽ vai estar atrasado 99% das vezes.

Estimativas ignoram outros fatores

A grande maioria das estimativas considera apenas o caminho feliz. Onde tudo está certo, dá certo e o trabalho flui. O que difere muito da realidade. É preciso contar também a possibilidade de termos problemas durante o trabalho, imprevistos, dúvidas.

Especialmente em estimativas de projetos como um todo, é muito comum que o esforço contado seja apenas o operacional, o trabalho em desenvolver o projeto em si, ignorando uma série de outros fatores que são importantíssimos e muitas vezes até maiores do que o próprio trabalho e desenvolvimento, que são os casos do tempo e esforço de planejamento, testes, correções e o principal: comunicação.

Conclusão

Com seus prós e contras, estimativas são ferramentas. Saber usá-las bem é o papel de um profissional. Assim como saber onde não usar. Ter cuidado e considerar as trade-offs é o segredo de qualquer ferramenta. Estimativas não são diferentes.

Por Pedro Fornaza

Desenvolvedor de software há mais de 10 anos. Formado em Sistemas de Informação. Empreśario. Trabalha principalmente com CRM e projetos Web.