Entretanto, nao podemos deixar de considerar o fato de que as ferramentas de medicao existente sao pouco eficazes na estimacao de projetos de software. Estudando os elementos que compoem o universo envolvido no processo de especificacao de software, posso identificar:
- cliente (usuarios, gerentes),
- processos de negocio,
- requisitos (informados pelo cliente e usuario)
- reais necessidades
- tecnologias, ferramentas tecnologicas e metodologias (tanto as existentes no cliente quanto as usadas pelo fornecedor),
- ambientes de producao (cliente),
- ambiente de desenvolvimento
- tecnicas e ferramentas de comunicacao entre cliente-fornecedor, equipes internas de desenvolvimento, e entre os usuarios do proprio cliente
Observem que quando um cliente solicita a proposta de um sistema, muito pouco se sabe das reais necessidades. Dai surgem duas situacoes: ou se faz um levantamento de requisitos muito superficial, que dara poucos subsidios para uma estimacao bem feita, ou se investe recursos proprios para se fazer um bom levantamento de requisitos, que dara um bom nivel de detalhamento para se fazer a estimacao, mas que podera nao gerar retorno (pois orcamento nao sera necessariamente aceito pelo cliente). Do ponto de vista comercial e tatico, este e' um problema, pois demanda um esforco que nem sempre esta disponivel. Por outro lado, se aceitarmos fazer apenas uma estimativa fraca, baseada no levantamento de requisitos superficial, corremos o risco de perder o contrato se adotarmos a estrategia de super-estimar o projeto, ou obte-lo sub-dimensionando-o. Neste caso, podemos perder ao financia-lo. Ja vi varios casos onde assumir um projeto sem conhece-lo adequadamento deu prejuizo. Isso porque depois que um contrato foi feito, e boa parte do cinheiro pago, na last-mile do novo sistema podem ser descobertas novos detalhes antes nao detectados, que podem fazer com que o fornecedor necessite alocar recursos antes nao dimensionados, gerando um custo nao previsto.
Vamos estudar estes aspectos em separado, e depois propor um metodo de estimacao de projetos de software. Nos proximos posts vou trabalhar nisso.