Por que eu devo ler este artigo:Estimativa é um assunto recorrente na engenharia de software. Mas devemos lembrar que o desenvolvimento não é linear. Estimativas nos dão uma noção do tamanho do produto a ser desenvolvido, mas normalmente não medem complexidade e tem um certo grau de subjetividade na sua contagem. Então como ser objetivo em algo essencialmente subjetivo? Neste artigo conheceremos um pouco mais sobre estimativas para projetos de software e apresentaremos uma técnica que pode ser aplicada que vem rendendo bons resultados em projetos na indústria de software.

Como medir e estimar algo que não é tangível, como um software? Diferente de outras engenharias, a de Software “sofre" com esse dilema deste o seu primórdio. Será que a solução é simplesmente não medir e estimar?

Estimativas fazem parte da engenharia de software, sendo inclusive um dos tópicos com maior número de discussão. Essa atividade não pode se tornar um rally de regularidade, onde através de uma coleta de dados de avaliação e desempenho, simplesmente criamos um histórico de projetos para determinar as métricas futuras.

Não é assim que funciona: não é como uma regra de três simples e direta. Cada projeto gera um produto único. Pode ser parecido com o anterior, mas não é igual. Mesmo que o processo e a equipe de desenvolvimento sejam os mesmos.

É praticamente impossível dar uma estimativa 100% precisa. A estimativa deve ser encarada apenas como uma métrica adicional que nos ajuda a tomar decisões e modelar o futuro. Estimar é distribuir tarefas que são executadas por pessoas, que por sua vez não têm um desempenho linear. Um dia produzem muito, em outros pouco. E há dias que nem produzem. São humanos. Simples assim.

Uma boa estimativa deve considerar influências externas sobre o projeto e o software. Isto inclui fatores humanos, do ambiente, políticos e técnicos. Certas características do projeto também devem ser levadas em conta como o tamanho, tipo de software, arquitetura, infraestrutura, experiência da equipe e restrições tecnológicas (Figura 1).

Figura 1. Fatores na Métrica de Software.

Você considera estimar uma arte ou um processo de engenharia? Consideramos que é um pouco de ambos, pois tanto um bom artista como um bom engenheiro precisam de treino, técnica e habilidade para exercer seus talentos. Consideramos o próprio desenvolvimento de um software como um processo artesanal. Contudo, embora o talento dos indivíduos seja um elemento importante no desenvolvimento, o conhecimento e o uso de técnicas adequadas é o diferencial.

Já os movimentos #NoEstimates alegam que é um desperdício estimar o esforço do trabalho de desenvolvimento. O seu discurso gerou e ainda gera um impacto emocional muito grande nas equipes.

Não há como não concordar que estimar é difícil. Quando os requisitos são vagos – e parece que eles sempre são – as melhores estimativas também seriam vagas. Mesmo com requisitos claros – e parece que eles nunca são – ainda é quase impossível saber quanto tempo vai demorar para projetar, implementar, inspecionar e testar, porque nunca fizemos isso antes. Se tivéssemos feito isso antes, estaria pronto.

É por isso que a ideia #NoEstimates é tão atraente e é por isso que muita gente boa abraçou essa ideia e estão ajudando outras a fazê-lo. E não é isso que diz o manifesto ágil? Mas nem mesmo eles sabem ...

Quer ler esse conteúdo completo? Tenha acesso completo