Em seu artigo From Anarchy to Optimization, McConnell analisa um estudo do Instituto de Engenharia de Software (SEI, em Inglês) do Departamento de Defesa norte americano, a respeito da efetividade do processos de desenvolvimento de software praticados.

Veja a seguir como o autor descreve os cinco níveis de maturidade.

Os níveis de maturidade do SEI

I. Anarquia

Não há planejamento nem gerenciamento. O desenvolvedor faz o que pode e espera que tudo dê certo.

II. Folclore

Nessa altura o desenvolvedor ganhou experiência num tipo específico de sistema. Ele realiza alguma espécie de planejamento, estimativa e gerenciamento, acreditando que desenvolveu um processo de trabalho efetivo. A empresa depende fortemente dos desenvolvedores que, se deixam o emprego, levam embora todo seu conhecimento. O sucesso depende dos novos projetos serem semelhantes aos anteriores e geralmente há problemas com novas ferramentas e domínios diferentes.

III. Padrões

A mitologia da empresa é documentada em forma de padrões, assim o processo não é mais dependente de indivíduos. Porém não há dados e métricas para análise e comparação da eficácia do processo. O fato de haver documentação não significa que o processo é bom, então os programadores geralmente discutem o valor do processo em geral.

IV. Medidas

Dados brutos do processo são coletados para medir sua eficiência e possibilitam a comparação e o julgamento com outros processos de forma objetiva. Isso acaba com a discussão subjetiva do nível anterior.

V. Otimização

Com a documentação e as métricas, a empresa começa a melhorar o processo. Ferramentas automatizadas de coleta de métricas são usadas para acelerar ainda mais o processo.

Suponha que a empresa mediu o número de defeitos por linhas de código. Ela então cria uma variação do processo original e mede o resultado. Se este for positivo, a variação se torna o novo padrão de processo.

Benefícios

Você pode estar se perguntando se investir na melhoria dos processos vela realmente a pena. Para responder a isso, o autor utiliza dados obtidos por Alfred Pietrasanta.

Alfred acompanhou uma empresa chamada Lockheed num programa de melhoria do processo de desenvolvimento de software por cinco anos. Nesse tempo, eles partiram do nível 1 e chegaram até o nível 3, obtendo resultados substanciais e tangíveis. A tabela abaixo representa numericamente os benefícios de um projeto típico de 500 mil linhas de código:

Nível Custo de desenv. (milhões) Tempo de desenv.
(meses)
Qualidade
(defeitos / KLOC)
Produtividade
(LOC/Hora)
Produtividade
($/LOC)
1 33 40 9 1 66
2 15 32 3 3 30
3 7 25 1 5 14
4* 3 19 0.3 8 6
5* 1 16 0.1 12 2

* Os resultados desses níveis são apenas projeções, já que a empresa chegou apenas até o nível 3.

Nos cinco anos, a Lockheed melhorou a produtividade em 5 vezes e reduziu a quantidade de defeitos em quase 10 vezes. Resultados semelhantes foram obtidos em projetos da IBM, Motorola e Xerox. A empresa Hughes Aircraft relatou que um investimento único de $ 400 mil na melhoria do processo para 500 empregados está agora dando um retorno de $ 2 milhões ao ano.

Conclusão

Embora o artigo seja relativamente antigo, a verdade é que o cenário de TI pouco mudou no que se refere à maturidade das empresas, o que prova que realmente não existem “balas de prata” (soluções mágicas) quando se fala em desenvolvimento de software.

Portanto, a receita continua a mesma: é necessário investir constantemente para colher melhores resultados no desenvolvimento de software.