#4: Levantamento de Requisitos e Técnicas




Levantar requisitos... O que seria o sistema sem ele?

   Primeiramente, antes de discutirmos sobre levantamento de requisitos trouxe uma citação da apostila Engenharia de requisitos de Ricardo de Almeida Falbo, onde ele explícita: 

   "A fase de levantamento de requisitos envolve buscar junto aos usuários, clientes e outros interessados, seus sistemas e documentos todas as informações possíveis sobre as funções que o sistema deve executar (requisitos funcionais) e as restrições sob as quais ele deve operar (requisitos não funcionais). O produto principal dessa fase são os documentos de requisitos." 

   Nota-se que levantar requisitos é basicamente identificar aquilo que os interessados do sistema, ou também chamados stakeholders, desejam para atingir seus objetivos, ou seja, o sistema fazer aquilo que é exatamente desejado. Ok, isso parece ser simples... Certo? Na realidade não é simples. Fazer levantamento não é uma tarefa nada simples e é por isso que existem um grande planejamento estratégicos para que seja conduzida de forma eficaz em todas as etapas. O que torna o levantamento tão complicado e difícil? Eu poderia responder com uma simples resposta e ela é O SER HUMANO, pois ele é um ser complexo, atoa que por ter dado uma simples resposta provavelmente você ou até eu mesmo não entendi porque somos complexos (risos). 
   Como dito anteriormente, existem diversos fatores, os quais são: falta de recursos na elaboração do projeto, como por exemplo, demandas que vão além do necessário ao sistema ou que os custos são acima do que o cliente tinha em mente. Resistência de usuários a implementação do sistema, por motivos de medo de ficar desempregado ou por achar que não é necessário, políticas organizacionais, o qual pode limitar ou excluir a implementação do projeto. Mudança de requisitos ao longo do projeto por motivos diversos da organização em que é prestado o serviço e um que acho muito interessante e comum: o próprio cliente/usuário não sabe o que ele quer o que confunde muito ao levantar os requisitos e pode até tornar inviável e quando sabem torna muito difícil captar o que ele quer transmitir.
   Depois de tudo isso existem formas que auxiliam e orientam no levamento de requisitos de forma eficaz. Elas são as técnicas do levantamento de requisitos. Pense nelas como ferramentas estratégicas para conseguir entender aquilo que o cliente quer. Vamos lá, pense no anime Naruto: existem dois termos importantes: jutsus (técnicas em japonês) e o chakra (energia do animes). Para usar os jutsus você precisar ter chakra e saber conhecer bem como a técnica funciona. É exatamente assim que é em levantamento de requisito. A utilização das técnicas vem depois da identificação dos requisitos e dos interessados relevantes do negócio, ou seja, ter conhecimento daquilo que se quer implementar.
   Existem várias técnicas para levantamento, porém exemplificarei as principais de forma sucinta. São elas:

  • Entrevistas: Muito utilizada. Nela os interessados do sistema, principalmente o cliente, é entrevistado respondendo perguntas feitas pelos analistas do sistema. O interessante nela é que funciona como um pontapé inicial para entender o fundamento do sistema, o que ele propõe. Também é bom para identificar requisitos através das respostas dos entrevistados;
  • Questionários: Uma técnica que acho legal em determinadas situações, principalmente quando a entrevista não é muito eficaz, ou seja, foi feita, mas não ajudou em muita coisa. Nela, é feita uma pesquisa com os stakeholders (os interessados no sistema) e também indivíduos afetados pelo sistema, onde são feitas via algum documento computadorizado e impresso com várias perguntas que auxiliam a identificar os requisitos. O que acho interessante também nela é que os indivíduos pesquisados podem ser anônimos e isso pode tornar as informações captadas mais fiéis;
  • Workshop de requisitos: Essa é uma técnica que deve ser aplica em grupos. Os interessados e afetados pelo sistema formam uma equipe/grupo em uma espécie de reunião. Nela, juntamente com os analistas, são levantadas os requisitos necessários ao sistema a ser desenvolvido. É muito efetivo se o grupo trabalhar de forma colaborativa, pois os indivíduos tomam as decisões em equipe e não de forma única;
  • Observação: Nessa técnica tudo os requisitos são identificados sem a ligação direta com os indivíduos que fazem parte do sistema a ser desenvolvido. Os analistas observam como as tarefas são executadas tomando nota de como as coisas funcionam. É como se o analista fosse um "espião" da empresa, onde ele analisa como as coisas acontecem, tira informações e conclusões a partir disso e depois são tomadas decisões;
  • Prototipação: Essa técnica é a que tenho maior gosto. Por quê? porque ela é uma técnica interativa com o cliente e além disso consegue identificar o feedback "in real time"dele, dado que o protótipo representa uma simulação do como é o sistema. Imagine que após levantar os requisitos faça um protótipo interativa em que o cliente coloca a mão na massa e te dá o feedback do que ele acha e se é realmente aquilo que ele quer. Além do mais, se o protótipo for bem implementado ele se torna uma versão beta do produto final tornando a vida mais fácil da equipe como todo.
   Além de todos esses existem muitas outras técnicas, como: investigação de documentos, cenários, abordagens baseadas em objetivos , reutilização de requisitos e afins. O interessante a ser deixado aqui é que as técnicas sozinhas não levarão a resolução dos problemas, ou seja, em levantar os requisitos. É necessário que elas possuam correlações entre elas, onde é definido uma estratégia para identificar quais técnicas são ideais para o projeto X e quais são as ideais para um projeto Y. Não existe um script para isso e sim uma estratégia bem definida e planejada.

Comentários