A elicitação de requisitos para o desenvolvimento de software tem sido um desafio para os praticantes da engª de software. Todos sabemos que um requisito mal elicitado causará problemas em todo o restante do desenvolvimento, mas mesmo assim ainda cometemos muitos erros. Segue abaixo três abordagens que julgo serem importantes e que nos ajuda muito na elicitação dos requisitos:

Entrevistas

Abordagem mais tradicional, inerentemente informal. Sua eficácia depende muito da qualidade da interação entre os participantes e é uma maneira eficiente de coletar grandes quantidades de dados rapidamente

Podemos utilizar de dois tipos de entrevistas:

desestruturadas – onde o entrevistador tem controle limitado sobre a direção dos debates. Sua aplicação é para a exploração, quando há um entendimento limitado do domínio, ou como um precursor para a uma entrevista estruturada. Seus principais riscos são que alguns tópicos pode ser completamente desprezados, ou podemos nos concentrar demasiadamente em pormenores em algumas áreas, e não o suficiente em outras áreas

estruturadas – ocorre com um conjunto predeterminado de perguntas para obter informações específicas. Quanto a sua aplicação embora tendem a limitar a investigação de novas idéias, eles são geralmente considerados mais eficazes. O sucesso depende em saber quais são as perguntas certas, quando deverão ser feitas, e quem deveria responde-las

fisherman

Prototipagem

Os protótipos do sistema apoiam as investigações de possíveis soluções, sendo uma forma eficaz de reunir informações detalhadas e obter pareceres relevantes. É comum serem utilizados em conjunto com outras técnicas de elicitação como as entrevistas

São tipicamente desenvolvidos utilizando requisitos preliminares ou exemplos existentes de sistemas semelhantes. É particularmente útil no desenvolvimento de interfaces humano-computador, ou quando os envolvidos não estão familiarizados com as soluções disponíveis

Há uma série de métodos diferentes para prototipagem de sistemas como storyboards, ou protótipos executáveis, evolutivos ou descartáveis, com diferentes níveis de esforço exigido.

Os protótipos são caros para produzir em termos de tempo e custo. Uma vantagem do uso de protótipos é que eles encorajam as partes interessadas a desempenhar um papel ativo no desenvolvimento do requisitos. Entretanto apresentam o risco de os usuários  ficarem ligados a eles e tornarem-se resistentes às soluções alternativas a partir de então. Apesar disso, a técnica é extremamente útil ao desenvolvimento de novos sistemas

Análise de domínio

Consiste em examinar a documentação existente e as próprias aplicações que são uma boa forma de reunir os requisitos iniciais. Estes tipos de investigações são importantes quando o projeto envolve a substituição ou evolução de um sistema legado existente. Pode-se utilizar documentos de projeto; manuais de usuários; processos de negócios atuais; formulários utilizados no sistema atual

Na maioria dos casos, esses estudos envolvem técnicas de elicitação, tais como a observação do sistema atual em uso e entrevistas com os usuários atuais

Analogias e abstrações de problemas de domínios existentes podem ser utilizados como ponto de partida para aquisição de informações específicas e detalhadas, descrever possíveis soluções para o problema e apoiar no entendimento comum entre analistas e envolvidos no domínio do problema.

E você, qual abordagem utiliza para a elicitação de requisitos?