O Panorama Atual da Indústria de Software

Autor: Marco Aurélio Cordeiro - GPS

Um certo professor da Universidade de Michigan, em um congresso de Software na Suíça, certa vez, utilizou a terminologia "Aflição Crônica" para representar a crise da indústria de software dos últimos trinta anos, e explicou: nós não atingimos o nível chamado crise de software. E complementou: crise é o limite máximo para a solução de um problema. Já aflição crônica, é algo que causa sofrimento e dura um longo período de tempo [1].

Como forma de reforçar a colocação acima, nada melhor que informações colhidas de uma recente pesquisa americana realizada pelo instituto Standish Group [2], utilizando uma amostra de 365 companhias entrevistadas, representando 8.380 aplicações, visando identificar:

  • Âmbito das falhas de projetos de software;
  • Os fatores principais que causam falhas nos projetos de software;
  • Os ingredientes chave que podem reduzir falhas de projeto.

De acordo com a pesquisa:

  • Os EUA gastam US$ 250 bilhões por ano em desenvolvimento de aplicação de tecnologia da informação em aproximadamente 175 mil projetos.
  • 31% de todos os projetos são cancelados antes do seu término, representando um desperdício da ordem de US$ 81 bilhões.
  • 53% de todos os projetos chegam ao final tendo custado 189% do valor estimado, representando US$ 59 bilhões em custo adicional, atrasam em até 222% da estimativa original além de serem entregues com apenas 61% das características originalmente especificadas.
  • 16% são entregues no prazo e dentro do orçamento.

Além destes dados estatísticos, talvez o aspecto mais importante da pesquisa tenha sido o levantamento dos fatores principais que tornam um projeto crítico, ou seja, aqueles projetos que extrapolam prazo, custo e que são entregues com a funcionalidade prejudicada. De acordo com os entrevistados, as razões principais que levam a problemas de projeto são identificadas na tabela abaixo:

Fatores de Projetos Críticos

% de Respostas

1. Falta de Especificação do Usuário

12.8%

2. Requisitos Incompletos

12.3%

3. Mudança de Requisitos

11.8%

4. Falta de Apoio Executivo

7.5%

5. Tecnologia Imatura

7.0%

6. Falta de Recursos

6.4%

7. Expectativas Irreais

5.9%

8. Objetivos obscuros

5.3%

9. Tempo irreal

4.3%

10. Tecnologia nova

3.7%

11. Outros

23.0%

Parece que a nossa inabilidade para trabalhar mais efetivamente com usuários e entender melhor as suas necessidades (requisitos) tem sido a causa principal das falhas de software. Esta deficiência, aliada à desordem de muitos ambientes de desenvolvimento, que muitas vezes buscam a melhoria da qualidade de seus produtos, mas não investem em processos básicos, como por exemplo, a documentação dos seus sistemas é que produz esta situação de caos.

Não temos mais para onde correr. Os negócios estão cada vez mais ágeis e precisam de respostas ainda mais velozes. Os modelos de qualidade CMM e SPICE, que apareceram em meados desta década pareciam a nossa tábua de salvação. Davam um caminho a seguir, como forma de obtermos a tão sonhada melhoria da qualidade. Enfoque no processo e não no produto. Fantástico!!!!

E aí, o que aconteceu? Nos trouxe algum benefício, mas não o que esperávamos, porque esses modelos nos dizem o que é preciso fazer para termos qualidade no produto desenvolvido, mas não nos conta como fazer. Eles não são a panacéia que vai resolver todos os nossos problemas.

Precisamos colocar o nosso trem em movimento. No início, a velocidade de locomoção é tão lenta, que parece que não vai engrenar. Mas depois de um certo tempo, não sabemos mais como é que fazemos para pará-lo.

Parece-me que o ingrediente principal para o nosso trem engrenar seja a disciplina. Precisamos de um processo consistente para seguir e disciplina para realizá-lo.

Para terminar este artigo gostaria de deixar uma pergunta: "O que o Desenvolvimento de Software e o Guaraná Antártica têm em comum?"

Se você respondeu, nada, eu acho que você acertou. Mas, e se a pergunta for: "O que o Desenvolvedor de Software e o Gênio da propaganda do Guaraná Antártica têm em comum?"

Se você não lembra da propaganda, vou refrescar a sua memória.

A menina abre a lata do refrigerante, um gênio sai da lata, e o diálogo segue mais ou menos assim:

A moça espantada exclama:

  • Gênio?!

O gênio diz:

  • Vamos mocinha, pode pedir o que quiser.

Ela pensa em (Tom Cruise, Arnold Schwarzenegger, Richard Gere,...) e pede:

  • Eu quero um homem mais velho, que me entenda e perdoe todos os meus defeitos.

O gênio mais que depressa:

  • Salta homem mais velho, experiente e que perdoa tudo...

Buumm (fumaça)

Ela decepcionada, murmura:

  • Padre Lauro?!!! 
  • Valeu em... ("gênio burro")

Escolhi esta metáfora, para fazer a todos nós, desenvolvedores de software, pensarmos se não estamos sendo o Gênio da estória para nossos usuários. Será que não estamos entregando o padre Lauro para eles???

Até o próximo volume!!!

REFERÊNCIAS BIBLIOGRÁFICAS

[1] PRESSMAN, Roger S. Software engineering: a pratictioner’s approach. 3. ed. New York: McGraw-Hill, 1995.

[2] STANDISH GROUP. Chaos. Pesquisa sobre o desenvolvimento de software e o panorama caótico da indústria de software dos dias de hoje. Disponível na Internet. www.standishgroup.com/chaos.html