Estimando o Esforço para o Desenvolvimento de Software
Autor: Marcelo Schumacher | Publicado: 2010-04-04T07:27:00-07:00

Nos últimos meses tenho enfrentando grandes dificuldades para conseguir estimar tempos necessários de desenvolvimento nos projetos em que participo.
Eu tenho convicção de que as melhores práticas de se calcular estimativas necessitam de um mapeamento coerente dos requisitos de software. Mas, nas maioria empresas de desenvolvimento de software, a aplicação de métodos de gerenciamento de requisitos ainda&nbsp; precisa ser amadurecido. Ou seja, não são aplicados. Em razão disso, é preciso adaptar-se à realidade e tentar soluções alternativas.
Trantando-se de tentar entender o tempo e os custos para se determinar uma estimativa de desenvolvimento, em geral, pode variar conforme a fase do processo de desenvolvimento. Nas fases iniciais a estimativa tende a ser pouco precisa. Normalmente o nível de estimativa dividi-se da seguinte forma:
Planejamento: Fase inicial. Contempla entradas grosseiras, estimativas pouco fiéis, requisitos em altíssimo nível, arquitetura conceituall;
Especificação: Pode ser compreendida como a fase inicial do projeto. O projeto já é melhor entendido, as estimativas são mais fiéis, os requisitos também são melhor entendidos e a arquitetura começa a ser compreendida;
Construção: Aborda a fase de conecpção do software de acordo com o que foi especificado. Já contempla um projeto bem caracterizado, estimativas com alta precisão, requisitos e arquitetura mais estáveis;
Uma das téncicas existentes para estimarmos o tempo de desenvolvimento, visando também compreender os custos associados, é o COCOMO de forma básica.
 No modelo COCOMO, o esforço das fases iniciais é calculado considerando as equações abaixo:
Esforço = Ab * (Tamanho) * exp(Bb),Tempo_Desenvolvimento = Cb * (Esforço * exp(Dd)) onde;
Esforço = número de homens/hora ou homens/hora;Tempo_Desenvolvimento = tempo em meses cronológicos;Tamanho = número de pontos de função;Aa e Bb são coeficientes, Cb e Db são exponeciais de ajustes fornecidos pela seguinte tabela:
&nbsp;TABELA 1 - Coeficientes do Método COCOMO
Neste modelo básico do COCOMO, o esforço e o custo do projeto é estimado em função do tamanho do código estimado, considerando um modelo estático. Outras formas de aplicação do COCOMO consideram avaliações subjetivas do produto, do hardware, do pessoal e dos atributos do projeto, além do impacto nas fases que direcionam os custos (análise, por exemplo).
Algumas das ferramentas existentes que permitem calcular as estimativas usando o COCOMO são:BYL, Gordon Group;
WICOMO, Wang Intitute;
DECPlan, Digital Corporation;
Tendo estimado o esforço do projeto, aplicando o COCOMO, por exemplo, podendo ser melhorado e refinado a cada iteração, teremos condições de fazer uma estimativa de custo para o projeto, onde os componente abaixo são fundamentais:Esforço em homens/hora * Custo(incluindo impostos);
Infra-estrutura (hardware, software e ambiente);
Overhead administrativo: corresponde numa variação de 20 a 30% do valor total estimado.
Os pontos assinalados acima servem apenas para complementar a definição de uma estimativa de desenvolvimento, não fazendo parte do método COCOMO.
Apesar de eu ter lhes apresentado esta alternativa de cálculo de estimativas, eu não venho aplicando-a no meu dia-a-dia. No momento, utilizo uma outra técnica chamada DELPHI (Se pronuncia Délfi). Assim que tiver oportunidade, postarei um tópico esclarecendo este segundo método.