quarta-feira, 29 de agosto de 2012

Técnicas de Levantamento de Requisitos

O levantamento de requisitos é a parte mais fundamental no desenvolvimento de sistemas e também a mais complexa. Estudos mostram que um levantamento de requisito mal elaborado leva a sistemas que não atendem ao usuário, são descontinuados, seus custos excedem o planejado e a vezes não entram nem em produção.
O importante no levantamento de requisitos é entender a necessidade dos clientes e seus objetivos, apesar de muitas vezes nem mesmo o cliente saber exatamente o que ele necessita, por isso cabe  ao analista tentar entender o máximo possível do negócio, mapear o máximo possível de processos e as pessoas envolvidas. 
Para nos ajudar neste passo podemos utilizar algumas técnicas que tem como objetivo superar as dificuldades que poderemos encontrar. Não existe uma técnica que seja a melhor e nem a pior, será necessário avaliar a situação e determinar qual melhor se encaixa, também não é obrigatório uso de apenas uma, dependendo da situação podemos utilizar de varias abordagem para chegar no melhor resultado.
Abaixo segue um resumo das principais técnicas que podemos utilizar:

Levantamento Orientado a Ponto de Vista

Qualquer sistema, independente do seu tamanho, existirão pessoas com pontos de vista diferentes em relação ao seu funcionamento, necessidades e objetivos. Esta técnica tem como objetivo capitar estes pontos de vista, analisar as diferenças e similaridades formando assim o requisitos do sistema.
Para facilitar essa técnica foi criado uma Framework chamada VORD (View point Oriented Requirements Definition - Definição de Requisitos Orientado a Ponto de Vista). A primeira etapa dessa framework é o levantamento dos pontos de vista, segunda parte a estruturação dos pontos de vista seguindo uma hierarquia e depois o refinamento dos pontos de vista e a criação da documentação.

Etnografia

É uma técnica de observação que pode ser utilizada para entender a organização, sua cultura e o objetivo que o sistema deve alcançar. O objetivo do analista nesta técnica, é imergir no ambiente de trabalho, observar e fazer anotações do ambiente onde o sistema será usado, descobrindo os requisitos do sistema da maneira que as pessoas realmente trabalham.
As desvantagens dessa técnica é o excessivo consumo de tempo e a indução do analista a erros na sua observação, porem é uma técnica muito utilizada para completar as demais. 

Workshops

São reuniões com os analistas e uma seleção de pessoas que melhor representam a organização e o contexto do sistema. Nessas reuniões deve haver uma pessoa neutra para conduzir e promover as discussões, o trabalho em equipe e o mapeamento dos processos para facilitar as tomadas de decisões.
O importante nessa técnica é a postura da pessoa que vai conduzir a reunião, pois ela deve ser neutra e boa observadora, evitando influenciar nas tomadas de decisão tanto por parte dos analista quanto das pessoas envolvidas.

Prototipagem

A prototipação é a criação de partes do sistemas, visando facilitar para os usuários a validação dos requisitos do sistema, o importante do prototipo é que ele não tenha todos os requisitos implantados para que não se torne a versão definitiva.
Essa técnica é muito útil para testes de interface do usuário, testes de desempenho, ajudar na compreensão e viabilidade dos requisitos, ajudando a reduzir os custos do desenvolvimento do sistema.

Entrevistas

Entrevistas é uma das técnicas mais utilizadas no levantamento de requisitos, consiste de uma reunião do entrevistador (analista) com as pessoas envolvidas nos sistemas, se possível uma pessoa por vez. Essas entrevistas devem ter duração de no máximo uma hora, pois mais que isto leva o entrevistado a perder a concentração dificultando o levantamento de informações, também é importante que o entrevistador se integre com as funções e a rotina do entrevistado para ajudar na elaboração das questões.
Nas entrevistas podemos utilizar questões objetivas como : “Quantos tipos de produtos é vendido no seu setor ?” ou perguntas subjetivas como : “O que você acha do modelo atual ?”. As perguntas objetivas tem a vantagem de ir direto ao assunto, porem pode deixar o entrevistado entediado já as questões subjetivas tem como grande atrativo as riquezas nos detalhes e ajuda na elaboração de novas perguntas, mas pode levar a perda do controle da entrevista e a uma grande massa de dados irrelevantes.

Questionários

São formulários com questões que podem ser de múltipla escolha, lista de opções e  questões de reposta livre. O importante num questionário é que as questões sejam claras e de fácil entendimento procurando usar sempre o vocabulário costumeiro dos usuários e que as questões reflitam o que os analistas estão procurando.
Questionários são utilizados principalmente quanto as pessoas envolvidas no contexto do sistemas estão longe ou é difícil encontra-las pessoalmente, e também quanto precisamos de um levantamento estatístico sobre o assunto.

Brainstorming (Tempestade de Ideias)

Consiste em varias reuniões com as pessoas envolvidas onde elas são estimuladas a darem ideias o tempo todo. Nessa técnica uma pessoa é selecionada para registrar todas as ideias em um quadro ou numa folha de papel para que todas as pessoas possam ver o que foi sugerido, para que no final seja feito um consenso e os requisitos para o desenvolvimento do sistema.

JAD (Joint Application Design)

JAD é uma técnica baseada em quatro princípios : dinâmica de grupo, uso de técnicas visuais, manutenção do processo organizado e racional (analise top down) e utilização de documentação padrão.
Dos quatro princípios temos duas fases principais que são: o planejamento que tem como objetivo o levantamento de requisitos e o desenvolvimento do sistema. Essas duas fases são subdivididas em três fases: adaptação (preparação da equipe para o projeto, reconhecimento do ambiente), sessão (nesta fase são realizados encontros para efetuar o levantamento dos requisitos) e finalização (definir de forma formal o que foi definido nos encontros).
Nesta técnica temos alguns papéis bem definidos que são: o líder de sessão (é o responsável e o facilitador dos encontros), engenheiro de requisitos (responsável pela produção da documentação), executor (responsável pela construção do sistema), representantes dos usuários (pessoas que irão utilizar o sistema), especialistas (pessoas que possuem conhecimentos específicos em alguns tópicos).
Está é uma técnica que funciona muito bem em projetos pequenos e médios, para projetos grandes deve ser usado varias sessões JAD.

Investigação

Em algumas situações teremos dificuldades em obter informações utilizando outras técnicas como entrevista ou questionários, sendo necessário a análise de documentos da empresa e seu histórico para obter dados relevantes para o levantamento de requisitos.
Está é uma técnica, que em algumas situações, pode levar muito tempo, devemos utiliza-la apenas em ultimo caso.

Referências: