Gerenciamento de Processos de Software - Parte 1
Antigamente o desenvolvimento de software era considerado como uma arte de programar, porque cada desenvolvedor criava sistemas de forma diferente. Não haviam regras nem modelos a seguir e muito menos a documentação do mesmo.
Com a crescente demanda de computadores e conseqüentemente de grandes projetos de software por volta da década de 60 e início da década de 70, a arte de programar se tornou pesadelo com o fracasso de muitos projetos de software que agregaram em si o atraso do cronograma, custo mais caro do que o previsto, fraco desempenho e a inconfiabilidade.
Mas se por um lado os desenvolvedores tinham capacidade acima da média, então, o que realmente determinou o fracasso desses grandes projetos? A resposta está na abordagem de gerenciamento do projeto. Inicialmente, tentaram aplicar técnicas de outras engenharias como a engenharia civil por exemplo, porém, essas técnicas se mostraram ineficazes.
A ineficácia das técnicas de gerenciamento de projetos de outras engenharias sobre projetos de softwares se deve ao fato de que o produto trabalhado pela engenharia de software possui uma natureza diferente dos outros objetos trabalhados pelas outras engenharias como, por exemplo: uma ponte e um prédio que são concretos e tangíveis podendo ser facilmente visualizado e em contra-partida o software é intangível dificultando sua visualização e conseqüentemente a determinação de seu estado atual de progresso.
Outros fatores são os padrões que nas outras engenharias estão estabelecidas e são confiáveis, mas, na engenharia de software não há processos de software padrão e isso quer dizer que não se pode basear o desenvolvimento de novos softwares em outros já desenvolvidos porque poderão apresentar comportamentos ou resultados não desejados.
Mas, uma das características da natureza do software que intrinsecamente exige uma abordagem de gerência eficaz reside na sua dimensão, onde grandes projetos de software são, freqüentemente, projetos únicos. Isto quer dizer que, são tão personalizados ou tão específicos a um determinado propósito que não podem ser estabelecidos como modelos para outros projetos e até mesmo a experiência adquirida pelos desenvolvedores pode não ser aproveitada em outros projetos devido às rápidas inovações tecnológicas.
O lado bom de toda essa crise de fracassos é que foi reconhecida a necessidade da aplicação de um gerenciamento de projetos de software eficaz e isso constitui uma importante distinção entre desenvolvimento profissional e amador.

