Ponto de partida
A consultoria em projeto de software nada mais é independente da metodologia de desenvolvimento utilizada, o levantamento de requisitos é o ponto de partida de qualquer projeto de software, pois é a partir dos resultados obtidos durante esta etapa que será possível definir como as próximas etapas do desenvolvimento serão executadas.
Definição
Mas o que é o levantamento de requisitos? De forma simples, trata-se do processo de compreensão e identificação das necessidades que o cliente espera ser solucionado pelo sistema que será desenvolvido, definindo o que o software vai fazer. É a primeira etapa no ciclo de desenvolvimento de software, onde são definidas as funcionalidades e o escopo do projeto.
Durante o levantamento de requisitos, uma das maiores dificuldades é a comunicação entre o cliente e o analista, pois muitas vezes este pode não ser o usuário final do sistema (pode ser um gerente ou diretor da empresa, que não utiliza o sistema diretamente), e ao passar os requisitos para o analista, faz isso do seu próprio ponto de vista, baseado apenas em observações que, às vezes, não traduz fielmente a forma que os usuários enxergam o mesmo cenário. Por isso o analista de requisitos deve enxergar todos os cenários possíveis, evitando omissões ou má compreensão do cenário, causando erros durante a criação das funcionalidades.
Tipos de requisitos
Existem dois tipos de requisitos que compõem um sistema os requisitos funcionais e os não-funcionais:
- Requisitos Funcionais: tratam das funcionalidades que o sistema deve ter. Exemplos: cadastrar clientes, consultar saldo em conta corrente, imprimir cupom fiscal, etc.
- Requisitos não funcionais: estes tratam de recursos que não são funcionalidades, mas sim características do sistema, como restrições, segurança, confiabilidade, velocidade, validações. entre outros. Exemplos: velocidade (o sistema deve executar a transação em até 5 segundos), segurança (o sistema só pode ser acessado através de leitura biométrica de usuários cadastrados pelo administrador).
- Regras de Negócio: estas podem ser consideradas uma categoria de requisitos não funcionais, pois tratam de políticas e normas que o sistema deve obedecer. Caso um mesmo sistema seja desenvolvido para diferentes empresas, cada uma dessas pode ter suas próprias regras de negócio, e o sistema deve ser adaptado de forma que siga estas regras. Exemplo: O sistema só permitirá prosseguir o cadastro caso o CPF informado esteja com a situação cadastral “REGULAR” na Receita Federal.
Levantamento de Requisitos
Para o levantamento de requisitos, o analista dispõe de algumas técnicas que são utilizadas de acordo com o perfil do cliente. Existem diversas técnicas, cada uma adequada para um cenário específico, e dentre as comumente utilizadas podemos citar as seguintes técnicas:
- Entrevista: a forma mais utilizada, na qual o analista se reúne com o cliente e coleta os requisitos do sistema por meio de perguntas e observações do cenário apresentado pelo cliente.
- Questionário: o analista desenvolve um questionário e envia para o cliente responder. Através das respostas fornecidas, são elaborados os requisitos. É útil quando não é possível realizar uma entrevista pessoalmente com o cliente (embora atualmente isto é resolvido facilmente utilizando Skype, Hangouts, etc) ou quando existem diferentes usuários em locais distantes, pois pode ser enviado via e-mail. Pode ser uma boa opção para sistemas simples, porém pode se tornar inviável para sistemas mais complexos com muitos recursos e regras de negócio.
- JAD (Joint Application Design): técnica que tem como ponto principal a cooperação de toda a equipe envolvida com a solução a ser criada. São feitas reuniões com os clientes na qual são definidos os requisitos tendo o ponto de vista de todos os envolvidos, desde o usuário final ou seu representante, quanto analistas, arquitetos, diretores etc. O ponto principal é que todos os níveis envolvidos com o projeto estejam interagindo com a definição dos requisitos.
- Prototipação: a prototipação é mais utilizada como uma técnica de validação de requisitos do que como uma técnica de levantamento de requisitos. É muito utilizada em cenários onde os requisitos obtidos são muito vagos ou não tão claros. Neste caso, o analista desenvolve um protótipo da solução que ele conseguiu compreender e apresenta ao cliente, e este valida se o protótipo está de acordo com a solução que ele deseja. A grande vantagem de utilizar protótipos é que o cliente já tem uma visão prévia da solução final, e pode rapidamente validar ou solicitar alguma mudança, permitindo a correção imediata e não durante o desenvolvimento do software.
É importante mencionar que na maioria das vezes o próprio cliente não tem claro o que o software desejado deve realizar, por isso é importante o analista ter a habilidade de fazer com que o cliente compreenda com clareza o cenário que ele mesmo está descrevendo.
O processo de levantamento de requisitos é a etapa mais importante no desenvolvimento de um sistema, pois é o alicerce sob o qual toda a solução vai ser construída. Cabe ao analista de requisitos fazer um bom e cuidadoso trabalho, para que todo o projeto seja desenvolvido com tranquilidade e confiança.