Empresas que desenvolvem software para os mais diversos fins seja para o varejo, área financeira, área de saúde, etc, sabem que devem investir os seus melhores esforços na etapa do levantamento e análise de requisitos, pois é nessa etapa que todas as demais se apoiam para que o ciclo de desenvolvimento seja realizado.

A partir dos requisitos identificados, refinados e validados pelo cliente é que temos insumos para definição da arquitetura do software, para a modelagem de projeto, definindo classes, banco de dados e tabelas do sistema. Por fim ainda temos insumos para escrever nossos testes funcionais e não funcionais e elaborar um manual do usuário. O levantamento e a análise dos requisitos rendem muitos frutos ao longo do ciclo de desenvolvimento, mas para isso precisa ser bem tratado desde o início.

Se a engenharia de software nos revela a mais de 40 anos que investir em levantamento e análise de requisitos é um bom negócio, porque ainda hoje enfrentamos tantos problemas no desenvolvimento, que tem como causa raiz o levantamento de requisitos?

Esse problema tem origem em causas diversas: falta de tempo dos envolvidos para um bom levantamento de requisitos, analistas mal capacitados para a execução dessa atividade, clientes com pouco domínio do problema a ser endereçado pelo software, falta de um ou mudança do patrocinador do projeto, problemas de comunicação, requisitos instáveis que mudam muito durante o levantamento, falta de um ferramental que apoie tanto o analista quanto o cliente durante o levantamento e análise de requisitos, dificuldade na priorização dos requisitos, pressões de prazo e custo sobre o projeto, falta de alinhamento entre o cliente e os analistas: cada um com os seus problemas, sendo que o problema é dos dois! Continuando. Análise superficial e falta de refinamento dos requisitos, ausência de requisitos não funcionais, falta de validação dos requisitos pelo cliente…

Nesse artigo irei endereçar o item sobre ferramenta para apoio ao analista e ao cliente durante o levantamento e análise de requisitos. Todo profissional necessita de ferramentas específicas para o desempenho de suas atividades: assim é com o médico, o arquiteto o engenheiro. Assim tem que ser para o analista de sistemas.

Sem entrar no mérito sobre qual ferramenta é a melhor ou a pior, o importante é ter uma ferramenta que:

a) permita registrar as necessidades do cliente (o que o cliente deseja)

b) a partir das necessidades permita derivar quais funcionalidades serão efetivamente implementadas no software a ser desenvolvido

c) a ferramenta deve permitir que as funcionalidades sejam derivadas em casos de uso, ou em uma descrição textual (sou mais adepto aos casos de uso)

d) os casos de uso devem receber um nível de priorização e o estado em que se encontram: “em análise”; em implementação; implementado.

e) permita desenhar protótipo de telas e associá-lo aos casos de uso

f) seja acessível para que o cliente possa validar os casos de uso e protótipos de interface visual

g) permita a geração de relatórios gerenciais como: total de casos de uso por estado, por priorização; rastreabilidade do caso de uso

bad-com

É comum as empresas adquirirem a melhor ferramenta do mercado, que certamente contempla todos os requisitos acima, e não fazerem uso adequado dessa ferramenta. Importante é ter uma ferramenta e fazer uso intensivo dela. De modo geral as ferramentas comerciais estão em níveis de qualidade muitos similares, sendo que após adquirir uma delas fazer um bom planejamento para capacitação e metodologia de uso dessa ferramenta, aumenta-se as chances de se obter bons resultados no levantamento, análise e gerencia dos requisitos.

Entendo que o uso adequado de uma boa ferramenta irá se traduzir em ganhos de eficiência durante o levantamento e análise de requisitos: cria um meio comum de comunicação entre o analista e o cliente; estabelece um repositório de ativos de requisitos que pode ser reutilizado em novos projetos; facilita a gestão do ciclo de desenvolvimento a partir de requisitos coletados e estruturados na ferramenta.

E você e sua empresa, como fazem uso de ferramentas para levantamento e análise de requisitos?