Por que eu devo ler este artigo:Os projetos de desenvolvimento de software caracterizam-se por apresentar alto grau de incerteza durante a fase de levantamento de requisitos. Mesmo após os requisitos terem sido levantados e o projeto já estar em desenvolvimento, mudanças nos requisitos podem ocorrer. Conhecer maneiras de lidar com os requisitos que mais sofrem alterações é primordial para garantir o sucesso do projeto. Este artigo apresenta diversas formas de gerenciar e controlar as mudanças nos requisitos, principalmente os requisitos voláteis. Para cada forma é apresentada a sua definição e seus benefícios para o gerenciamento dos requisitos.

Desenvolver softwares não é uma tarefa fácil, tão pouco trivial. Vários fatores de risco estão associados ao desenvolvimento do produto a ser entregue, sejam eles conhecidos ou não. Essa dificuldade vem desde os primórdios da computação, onde era grande a dificuldade em entregar os sistemas. Naquela época não existiam processos de desenvolvimento de software bem definidos, ou simplesmente não havia nenhum. Com o passar do tempo surgiu a engenharia de software, a qual se ocupou em encontrar soluções para resolver os problemas que levavam ao fracasso dos projetos. Processos de desenvolvimento de software e modelos de desenvolvimento de software foram criados e se tornaram excelentes ferramentas para construir sistemas.

Muitas soluções foram propostas ao longo dos anos, de forma que os problemas relacionados aos requisitos considerados instáveis fossem minimizados. Uma das soluções propostas foi o congelamento dos requisitos, através de métodos formais, os quais se utilizavam de notações matemáticas para realizar a especificação de requisitos de software. Entretanto, a prática mostrou que o congelamento de requisitos não era uma boa solução, uma vez que o engessamento do processo acabava atrapalhando. Com o passar do tempo chegou-se à conclusão de que o projeto precisava ficar em constante refinamento, objetivando a estabilidade dos requisitos.

A adoção da prototipação tornou-se uma ótima ferramenta, uma vez que ajuda o cliente a entender melhor as suas necessidades e validar os requisitos que foram coletados. A validação dos protótipos, por parte do cliente, refina os requisitos e direciona o desenvolvimento para um caminho ideal. Com o tempo, foram criados novos processos de desenvolvimento de software, os quais se tornaram mais dinâmicos e propuseram soluções para lidar com requisitos voláteis.

Embora a engenharia de software tenha criado processos que ajudaram a resolver os grandes atrasos e fracassos dos projetos, desenvolver softwares continuou a ser uma tarefa difícil. Ainda é muito comum que os usuários não conheçam totalmente suas necessidades. Além disso, os requisitos não permanecem imutáveis ao longo do ciclo de vida do desenvolvimento do software, por isso é preciso estar bem atento a esse detalhe. A essa mudança dos requisitos dá-se o nome de volatilidade. Quanto mais volátil for um requisito, maior será o risco de não entregar o projeto no prazo estipulado e dentro dos custos previstos. A volatilidade dos requisitos torna praticamente impossível criar uma arquitetura que seja imune a isso, uma vez que na fase inicial do projeto os requisitos ainda não estão bem definidos e na maioria das vezes alguns detalhes da especificação só são conhecidos durante a implementação do sistema.

Requisitos voláteis, estimativas pobres e muito otimistas se constituem nas principais causas dos projetos de software saírem do controle, tornando-se difícil de serem gerenciados. Os problemas relacionados às estimativas são derivados diretamente da gerência, a qual não fez uma estimativa correta. Já os problemas decorrentes da volatilidade dos requisitos estão intimamente relacionados ao desenvolvimento do software, sendo bem mais complexos de serem resolvidos.

Dependendo do cenário que ocasiona a volatilidade dos requisitos, torna-se necessário considerar a utilização de metodologias ágeis, pois elas proporcionam um feedback contínuo ao cliente e a equipe, através de curtas iterações e pequenos releases, objetivando entregar uma solução que atenda às necessidades do cliente e com qualidade. Além de utilizar metodologias ágeis, também é necessário que o projeto seja dividido em módulos, cada um com “vida própria” e com pequenos ciclos de desenvolvimento. Dessa forma, um módulo não depende funcionalmente de outro módulo e se acontecer alguma mudança nos requisitos não haverá um grande impacto no sistema como um todo, apenas no módulo onde ocorreu a mudança dos requisitos.

Requisitos estáveis e requisitos voláteis

Mudanças nos requisitos de um sistema podem acontecer em qualquer fase do ciclo de desenvolvimento do software. Alguns requisitos são mais susceptíveis a mudanças do que outros, o que os torna muito mais instáveis. A mudança nos requisit ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo