A elicitação de requisitos visa identificar e descrever os requisitos de um software a ser desenvolvido. O processo para a elicitação de requisitos prevê primeiramente a identificação dos objetivos gerais do software, informações sobre os problemas atuais existentes e por fim as necessidades que devem ser endereçadas pelo software.

barreiraSabendo-se que o objetivo de um software é o de servir vários usuários, pode-se supor que a maneira mais simples de se elicitar os requisitos é simplesmente perguntar aos usuários quais são suas necessidades quanto ao novo software a ser desenvolvido. Infelizmente esse processo não é tão simples quanto parece. Conheça as seis principais barreiras na elicitação de requisitos:

1. De modo geral os usuários têm dificuldades de expressar o que eles precisam. Querer é diferente de precisar e os usuários tendem a exagerar nos problemas atuais e esquecerem das necessidades mais importantes. Ainda que os usuários enxerguem um determinado problema eles têm dificuldades de traduzí-lo em uma necessidade ou em um requisito. Como consequência o analista pode traduzir as diversa necessidades como simplesmente “endereçar os problemas x e y”

2. É comum os usuários especificarem uma solução em vez de uma necessidade, ou seja, em vez de claramente especificar quais são suas necessidades os usuários passam a descrever uma solução, por exemplo: necessitamos automatizar da forma x, y e z nosso processo atual de oferta de cursos, em vez de se discutir as necessidades de todos os processos que envolvem o programa de treinamento do qual a oferta de cursos é apenas parte do problema.

3. Os usuários têm dificuldades de visualizar novas formas de se fazer as coisas ou ainda imaginar os desdobramentos de se fazer uma tarefa familiar de forma diferente. Além disso, são resistentes às mudanças: lembre-se o quanto somos resistentes em mudar o nosso caminho para o trabalho, ou o local onde passamos nossas férias, simplesmente por termos dificuldade de imaginar como será o novo.

4. Após conseguir envolver os usuários na elicitação dos requisitos, os analistas encontram outra dificuldade: o excesso de requisitos – alguns são essênciais, outros são cosméticos. É difícil conseguir um consenso entre os usuários sobre o que é prioritário e o que não é.

5. Os diversos usuários de um software têm visões conflitantes em relação às suas necessidades. O que pode ser prioritário para uma determinada categoria de usuários pode não ser prioritário para outra categoria. Por exemplo, em um sistema de oferta de cursos, o pessoal de marketing pode achar mais prioritário o desenvolvimento de  um novo catálogo de cursos, enquanto que o pessoal comercial pode achar mais prioritário o desenvolvimento de um módulo de gestão de pagamentos.

6. As necessidades mudam com o tempo, fatores externos mudam e as prioridades também. Após uma demanda ser acordada, iniciam-se as solicitações de mudanças…

E você, quais barreiras enfrenta na elicitação de requisitos?

Rerefência bibliográfica: Software Requirements Styles and Techniques, Soren Lauesen, Addison-Wesley, 2002