A importância do levantamento de requisitos na construção de projetos de software

A importância do levantamento de requisitos na construção de projetos de software

Em nossos projetos prezamos sempre pela garantia dos melhores resultados. Somos uma empresa que trabalha criando soluções e o nosso objetivo é facilitar a vida dos nossos clientes. Para isso, existem diversas etapas que são percorridas até o desenvolvimento do produto final.

Nesse sentido, iniciaremos uma série de artigos que explicam algumas dessas etapas e a necessidade das mesmas.

O primeiro tópico que abordaremos nessa série diz respeito a fase número um de um projeto de software: Levantamento de requisitos.

Esse é o primeiro momento do projeto, é a etapa que define todas as seguintes, o momento em trabalhamos para entender todas as dores e necessidades do nosso cliente. Dito isso, é impossível não ressaltar a necessidade desta etapa como matriz de todo o desenvolvimento posterior e que deste modo deve ser realizado com atenção.

O cliente nos apresenta uma necessidade. Nós somos os detentores da expertise. O levantamento de requisitos é o momento em que fundimos, necessidade e expertise, em um roteiro. Essa fusão se dá por meio da composição de um briefing, um cenário ou visão geral, que vai definir toda a estrutura do projeto, e é feito em concordância com o cliente. Para isso, é necessário que seja delimitado uma série de requisitos, técnicos, funcionais, não funcionais, entre outros.

Primeiramente, é preciso fazer uma revisão básica para entender o que são requisitos. Requisito é tudo que o sistema precisa ter para atender plenamente ao propósito pelo qual foi criado. Diz respeito tanto ao que deve conter no sistema, como também, a implantação dos mesmos.

Os requisitos funcionais são as especificações relacionadas à solução, por exemplo regras de negócio, comportamento e funcionalidades do sistema. Ou seja, o que o sistema deve realmente fazer.

Em paralelo aos requisitos funcionais existem os requisitos não funcionais. Dentro do campo de engenharia de software existe uma máxima amplamente propagada que afirma que um requisito funcional é o que define o que sistema fará, e o requisito não funcional define como será feito. Os requisitos técnicos estão dentro do grupo de “não funcionais”, e são as premissas e restrições acerca da arquitetura tecnológica, ambiente computacional do cliente, ferramentas, linguagens e padrões. Outros requisitos desse grupo são performance, volume de armazenamento, confiabilidade e manutenibilidade (capacidade do sistema ser facilmente evoluído).

Entretanto, apesar de ser um recurso fundamental no desenvolvimento de softwares RNF’s (Requisitos Não Funcionais) nem sempre são levados em consideração no desenvolvimento de projetos, muito porque ainda não se sabe como mensurar ou delimitar seu uso, como também, os usuários nem sempre conhecem ou entendem sua necessidade. Apesar disso, o não uso de RNF’s explica muitos casos de fracasso em projetos de softwares.

Ademais, todo esse processo inicial de definição de requisitos é fundamental na indústria de software, uma vez que entender o que deseja ser realizado no projeto, antes de começar a realizar é um investimento necessário que a médio prazo reduz os casos de retrabalho, poupa tempo ao longo do desenvolvimento e consequentemente determina um projeto mais sólido e coeso às necessidades do cliente.

Por outro lado, dado à natureza dinâmica das situações que vivenciamos, entendemos que as regras de negócio mudam constantemente, até mesmo durante processos curtos de desenvolvimento de sistemas. Há quem diga que a única certeza que temos em um projeto de software é que em algum momento os requisitos irão mudar. Apesar disso, quanto mais entendimento das necessidades do cliente conseguirmos extrair, melhor poderemos usar à favor da criação das soluções.

Nós, da Zydax, acreditamos que um levantamento profundo, conversas francas e prototipação (falaremos mais disso em um próximo artigo) podem validar e antecipar expectativas tanto dos clientes quanto da equipe de desenvolvimento. Dessa forma, podemos aumentar a assertividade e entregar o que realmente gera valor aos negócios e operações dos nossos clientes e parceiros.