Requisitos
A etapa de Requisitos marca o início de um projeto e determina sua base de avaliação, na qual a equipe de desenvolvimento será exposta aos problemas do cliente, esses são formados pelos requisitos em que definem uma necessidade específica, na qual detalha o que um particular produto ou serviço deve ser ou fazer - etapa fundamental nas disciplinas de Engenharia de Sistemas ou Engenharia de Software.
Requisitos = Software + Hardware + Contexto
Constante = Mudança - Change
Importante regra: os requisitos sempre mudam!
Fases
As principais fases são:
- Requisitos do Usuário (visão - vision): apresentação do problema pelo cliente através de descrição e especificação, assim verifica-se a viabilidade para a execução do projeto;
Statement of Work
-----------------
Statements ... Project MDS ...
... ... ...
... ... ...
... ... ...
... CEO ...
- Requisitos do Sistema (característica - feature): processo de consolidação/entendimento do problema entre cliente e desenvolvedores através da descrição de funcionalidades/capacidades do sistema, assim define-se o problema proposto; e
Project MDS
-----------
Features List
1. Feature A ...;
2. Feature B ...;
3. Feature C ...; and
...
- Modelagem dos Requisitos (detalhe - detail): comunicação com a Arquitetura do Software através da transformação em cenários, assim define-se uma solução para o problema.
Project MDS, version 1.0
-------------------------
Requirements List
1. requirement A ...
2. requirement B ...
3. requirement C ...
#. ...
Classificação
Os requisitos são classificados em:
- Funcional: descreve as funcionalidades e características necessárias ao sistema;
- Não Funcional: descreve as restrições e limites impostas ao sistema.
Artefatos
Os principais artefatos produzidos durante esta etapa são:
- Listagem: itens categorizados em tópicos, conforme a disciplina de cada requisito; ou
- Descrição: itens com descrição textual em alto nível para cada requisito.
Rastreabilidade
A rastreabilidade - traceability dos requisitos é realizada por uma matriz entre as características do Requisitos do Sistema e os cenários da Modelagem do Sistema.
Desenvolvimento Guiado por Funcionalidades
A Feature é uma técnica de modelagem clássica para Desenvolvimento Guiado por Funcionalidades - Feature Driven Development (FDD) publicada por Jeff DeLuca e Peter Coad, na qual utiliza os requisitos do sistema como funcionalidades, quando existe uma maior granularidade das necessidades para o desenvolvimento do sistema.
Cada feature é desenvolvida por completo, recomenda-se a arquitetura Package by Feature.
Saiba mais em www.featuredrivendevelopment.com.
Contexto
O contexto é um importante componente dos requisitos, pois seu domínio é o ponto inicial na construção de um modelo genérico da arquitetura, assim imergindo no mesmo garante melhores resultados ao projeto - existem diversas técnicas específicas para sua gestão, como por exemplo: o SMART, 5W2H, Inception Deck e o Project Model Canvas - dentre as atividades práticas para garimpar as ideias estão o: brainstorming, entrevistas e etc...
SMART
O que esperar de uma boa ideia:
- S (Specific): específica, bem definida;
- M (Measurable): mensurável, quantificada;
- A (Assignable): alcançável, desafiadora;
- R (Realistic): relevante para você; e
- T (Time-related): temporal, que tenha uma prazo.
5W2H
O modelo de gerenciamento de ideias 5W2H tem como objetivo em responder 7 perguntas:
- What (O quê?): o que será feito? [objetivo, ação, etapas, descrição]
- Why (Porquê?): por que será feito? [justificativa, motivo, benefício]
- Who (Quem?): por quem será feito? [responsável, equipe]
- When (Quando?): quando será feito? [tempo, data, prazo, cronograma]
- Where (Onde?): onde será feito? [local, departamento]
- How (Como?): como será feito? [atividades, método, processo]
- How Much (Quanto Custa?): quanto vai custar? [custo, gastos, quantidade]
Inception Deck
O Inception Deck é um conjunto de 10 questões sobre o quê pensar antes de iniciar um projeto.
Project Model Canvas
O Project Model Canvas (PM Canvas) é uma metodologia de gerenciamento de projetos, na qual emprega características ágil.