Conceito: Gerenciamento de Requisitos
O gerenciamento de requisitos é um modelo sistemático para encontrar, documentar, organizar e rastrear os requisitos variáveis de um sistema.
Relacionamentos
Descrição Principal

O que É Gerenciamento de Requisitos?

O gerenciamento de requisitos é um modelo sistemático para encontrar, documentar, organizar e rastrear os requisitos variáveis de um sistema.

Definimos um requisito como:

Uma condição ou uma capacidade com a qual o sistema deve estar de acordo.

Nossa definição formal de gerenciamento de requisitos consiste em uma abordagem sistemática para o seguinte:

  • Extrair, organizar e documentar os requisitos do sistema
  • Estabelecer e manter um contrato entre o cliente e a equipe do projeto sobre os requisitos de alterações do sistema

As chaves para o gerenciamento eficiente de requisitos incluem manter uma instrução clara dos Requisitos, juntamente com os atributos aplicáveis para cada tipo de requisito e a Rastreabilidade para outros requisitos e outros produtos de trabalho do projeto.

A coleta de requisitos pode parecer uma tarefa bem precisa. Nos projetos reais, contudo, você encontrará dificuldades porque:

  • Nem sempre os requisitos são óbvios e podem vir de várias fontes.
  • Nem sempre é fácil expressar os requisitos claramente em palavras.
  • Existem diversos tipos de requisitos em diferentes níveis de detalhe.
  • O número de requisitos poderá impossibilitar a gerência se não for controlado.
  • Os requisitos estão relacionados uns com os outros e também com outros produtos de trabalho do processo de engenharia do software.
  • Os requisitos têm propriedades exclusivas ou valores de propriedade. Por exemplo, eles não são igualmente importantes nem igualmente fáceis de cumprir.
  • Há várias partes interessadas, o que significa que os requisitos precisam ser gerenciados por grupos de pessoas de diferentes funções.
  • Os requisitos são alterados.

Então, que habilidades você precisa desenvolver em sua organização para ajudá-lo a gerenciar essas dificuldades? Nós aprendemos que é importante dominar as seguintes habilidades:

Análise do Problema

A análise do problema é feita para compreender os problemas e as necessidades iniciais dos investidores e propor soluções de alto nível. É um ato de ponderação e de análise localizar "o problema por trás do problema. Durante a análise do problema, são reconhecidos os problemas reais e quais são os investidores. Além disso, você define quais são, de uma perspectiva de negócios, os limites da solução e as restrições de negócios da solução. Você também deverá ter analisado o caso de negócio para o projeto, para que haja uma boa compreensão de qual é o retorno esperado do investimento feito do sistema que está sendo construído.

Consulte também Atividade: Analisar o Problema.

Compreendendo as Necessidades dos Envolvidos

Os requisitos chegam de várias origens; como clientes, parceiros, usuários e especialistas em domínio. Você precisa saber o melhor modo de determinar quais devem ser as fontes, como obter acesso a essas fontes e qual a melhor forma de levantar as informações delas. Os indivíduos que constituem as fontes primárias para essas informações são conhecidos como os investidores no projeto. Se você estiver desenvolvendo um sistema de informações para ser utilizado internamente na sua empresa, poderá incluir na sua equipe de desenvolvimento pessoas com experiência de usuário e com conhecimento do domínio de negócios. Com bastante freqüência, você começará os debates no nível de um modelo de negócio em vez de no nível de um sistema. Se você estiver desenvolvendo um produto para ser vendido para um estabelecimento comercial, faça uso extensivo do pessoal de marketing para entender melhor as necessidades dos clientes desse mercado.

O levantamento de informações pode ocorrer através de técnicas como entrevistas, fórum de discussão, protótipos conceituais, questionários e análise competitiva. O resultado do levantamento seria uma lista dos pedidos ou das necessidades que foram descritos textual e graficamente, e que receberam prioridade um em relação ao outro.

Consulte também Atividade: Compreender as Necessidades dos Envolvidos.

Definindo o Sistema

Definir o sistema significa traduzir e organizar as necessidades dos investidores em descrições significativas do sistema a ser construído. No início da definição do sistema, ocorre o seguinte: as decisões sobre o que constitui um requisito, o formato de documentação, a formalidade do idioma, o grau de especificidade dos requisitos (quantos e com que detalhe), a prioridade dos pedidos e o esforço estimado (duas avaliações bem diferentes em geral atribuídas por pessoas diferentes em testes separados), os riscos técnicos e de gerenciamento, e o escopo inicial. Parte dessa atividade pode incluir modelos de design e protótipos iniciais diretamente relacionados aos pedidos mais importantes dos investidores. O resultado da definição do sistema é uma descrição do sistema que esteja em idioma natural e também seja gráfica.

Consulte também Atividade: Definir o Sistema.

Gerenciando o Escopo do Projeto

Para gerenciar com eficiência um projeto, é necessário priorizar os requisitos, com base em retorno dado por todos os investidores, e gerenciar o seu escopo. Vários projetos têm seus desenvolvedores trabalhando nos chamados "ovos de Páscoa" (recursos que o desenvolvedor acha interessantes e desafiadores), em vez de terem o foco desde o início em tarefas que minimizam algum risco no projeto ou estabilizam a arquitetura do aplicativo. Para assegurar que os riscos de um projeto sejam resolvidos ou aliviados o mais cedo possível, você deve desenvolver seu sistema de modo incremental, escolhendo cuidadosamente os requisitos para cada incremento que alivia os riscos conhecidos do projeto. Para fazê-lo, você precisa negociar o escopo (de cada iteração) com os investidores do projeto. Normalmente, isso requer boas habilidades no gerenciamento de expectativas dos resultados do projeto em suas diferentes fases. Você também precisa ter controle das origens dos requisitos, da aparência dos produtos de trabalho do projeto e do processo de desenvolvimento propriamente dito.

Consulte também Atividade: Atividade: Gerenciar o Escopo do Sistema.

Refinando a Definição de Sistema

A definição detalhada do sistema precisa ser apresentada de maneira que os investidores possam entendê-la, concordar com ela e desconectar-se dela. Ela precisa abordar não apenas a funcionalidade, mas também a compatibilidade com os requisitos legais ou reguladores, a usabilidade, a confiabilidade, o desempenho, a capacidade de suporte e de manutenção. Um erro comum é acreditar que o que você sente é complexo para estabelecer necessidades que tenham uma definição complexa. Isso cria dificuldades para explicar a finalidade do projeto e do sistema. As pessoas podem ficar impressionadas, mas elas não darão bons retornos caso não entendam. Você deve se esforçar para compreender o público-alvo dos documentos que você produz para descrever o sistema. Sempre haverá necessidade de produzir diferentes tipos de descrições para públicos diferentes.

Já vimos que a metodologia do caso de uso, muitas vezes em combinação com protótipos visuais simples, é um modo bem eficiente de comunicar a finalidade do sistema e definir os detalhes do sistema. Os casos de uso ajudam a inserir os requisitos em um contexto; eles ilustram o modo como o sistema será utilizado.

Outro componente da definição detalhada do sistema é estabelecer como o sistema deverá ser testado. Os planos de teste e as definições dos testes a serem executados indicam os recursos do sistema que serão verificados.

Consulte também Atividade: Refinar a Definição do Sistema.

Gerenciando Requisitos de Alterações

Não importa o quão cuidadoso você seja sobre a definição dos seus requisitos, sempre haverá mudanças. O que torna complexo o gerenciamento dos requisitos variáveis não é apenas que um requisito mudado implicará mais ou menos tempo gasto na implementação de um determinado novo recurso, mas também que a mudança em um requisito terá impacto em outros requisitos. Você precisa certificar-se de compor uma estrutura de requisitos que seja resiliente a alterações e de utilizar links de rastreabilidade para representar as dependências entre os requisitos e outros produtos de trabalho do ciclo de vida do desenvolvimento. O gerenciamento de mudanças inclui atividades como estabelecer uma baseline, determinar quais dependências são importantes para o rastreio, estabelecer a rastreabilidade entre itens relacionados e o controle de mudanças.

Consulte também Atividade: Gerenciar Requisitos de Mudanças.

Informações Adicionais

Informações adicionais sobre este tópico podem ser localizadas em:

Conceito: Requisitos
Conceito: Tipos de Requisitos
Conceito: Rastreabilidade
Whitepaper: Aplicando Gerenciamento de Requisitos com Casos de Uso