Capítulo 4 - Fundamentos do Desenvolvimento de Software (parte 2)
Autor: Alexandre de Miranda | Publicado: 2009-06-16T09:10:00-03:00

Segundo uma pesquisa realizada em 1984, os fundamentos técnicos são condição necessária mas não suficiente para o sucesso de um projeto. Em outras palavras, para o sucesso de um projeto, dominar e empregrar os fundamentos técnicos é essencial, mas só isto não basta.

Os fundamentos técnicos aos quais o autor se refere são:
gerência de requisitos
Design (projeto lógico e físico)

construção
gerência de configuração
Gerência de requisitos

Consiste do processo de obtenção dos requisitos, do seu registro (em um documento formal, e-mail, "storyboard",  protótipo ou qualquer outro meio),  e acompanhamento ao longo do projeto (análise, codificação e registro de mudanças).

A reclamação mais freqüente com relação a esta disciplina é a de que ela é formal demais e, conseqüentemente, cara demais (pessoalmente, um dos comentários mais comuns que escutos sobre o levantamento de requisitos é "Com o trabalho que dá para fazer um caso de uso bem feito, é mais fácil codificar direto.") Esquecemos que a codificação não é o único subproduto do levantamento de requisitos, ele também subsidia a elaboração de roateiros de teste e de manuais para o usuário e para manutenção posterior do sistema. Ignoramos estes outros benefícios de um bom levantamento de casos de uso simplismente porque não elaboramos roteiros de testes nem manuais. Afinal de contas, os desenvolvedores estão ocupados fazendo o que importa: codificar feito loucos!

O autor ressalta, que em uma pesquisa realizada em 1994, identificou-se que não utilizar as técnicas de gerencia de requisitos porque são rígidas e caras demais é pior do que não utilizá-las. As três principais razões para entregar sistemas atrasado, acima do custo previsto e com menos funcionalidades do que o desejado pelo usuário são: falta de informação por parte do usuário, requisistos incompletos e mudanças de requisitos. Todas três relacionadas à disciplina de gerência de requisitos.

Outra causa bastante freqüente de problemas com o levantamento de requisitos é que a técnica escolhida é inadequada à natureza do requisito. É importante conhecer várias técnicas e empregar a mais adequada a cada caso. O núcleo de um requisito podem ser regras de negócio (regras para validação e transformação de dados) ou pode ser a interface (formulários para entrada de dados voltados para desempenho,  relatórios ou consultas com "drill down"). No primeiro caso, pode ser melhor utilizar um caso de uso ou pseudolinguagem; no segundo, talvez seja melhor utilizar um protótipo não funcional. Cabe ao analista escolher a melhor técnica, ou combinação de técnicas, para fazer o levantamento da melhor forma possível.

A gerência de requisitos aumenta substancialmente a velocidade do desenvolvimento de duas formas:
o levantamento de requisitos costuma ser feito sem as pressões dos prazos e em um ritmo mais lento, menos estressado, que as fases de design e construção. O emprego de técnicas formais permite que se acelere o passo sem prejudicar a qualidade, trazendo com isto uma redução no tempo de entrega.
obter corretamente os requisitos na primeira vez, tipicamente, custa de 50 a 200 vezes menos do que quando isto é feito durantes as fazes de construção ou manutenção.
Em resumo, saber o deve ser entregue é essencial para o sucesso do projeto. Reduzir o tempo gasto com retrabalho ou no desenvolvimento de funcionalidades secudárias contribui significativamente para a redução dos prazos.

Na próxima postagem falaremos de design (projeto),&nbsp; construção e gerência de configuração.