🔍 CAPÍTULO 06: ELICITAÇÃO E LEVANTAMENTO DE REQUISITOS


🎯 1. Objetivos de Aprendizagem & Competências

Estimativa de Dedicação: 2 horas de estudo autoguiado.
Ao final deste capítulo, você será capaz de:

  • 🔹 Compreender as principais técnicas de elicitação: Entrevistas estruturadas/semiestruturadas, Workshops (JAD), Questionários, Etnografia (Observação) e Prototipagem.
  • 🔹 Identificar e gerenciar conflitos de interesses entre diferentes perfis de stakeholders corporativos.
  • 🔹 Construir Personas e Mapas de Empatia para desvendar dores reais e comportamentos dos usuários finais.
  • 🔹 Implementar scripts em Python 3.11+ para processamento e estruturação de dados colhidos em questionários de elicitação.

🏢 2. Cenário Corporativo & Estudo de Caso (TecProExpress)

Na TecProExpress, a diretoria de operações quer automatizar o processo de triagem de pacotes nos centros de distribuição. No entanto, os operadores de galpão usam luvas grossas e trabalham em ritmo acelerado, enquanto os gerentes de logística querem relatórios complexos com dezenas de campos para preenchimento.

O Desafio: Se o analista de requisitos apenas entrevistar a diretoria em uma sala com ar-condicionado, o aplicativo será um fracasso no chão de fábrica. Você deve aplicar técnicas de observação direta (etnografia) e prototipação rápida para elicitar as restrições ergonômicas e funcionais reais.


🧠 3. Fundamentação Teórica & Modelos Visuais

3.1. O Processo de Elicitação de Requisitos

Elicitar não é apenas "coletar" (como se os requisitos estivessem prontos em uma gaveta), mas sim descobrir, articular e negociar as necessidades com os stakeholders:

flowchart LR
    D["🔍 Descoberta<br>(Entrevistas & Etnografia)"] --> C["📊 Classificação & Organização<br>(Agrupamento por Domínio)"]
    C --> N["🤝 Negociação & Priorização<br>(MoSCoW & Trade-offs)"]
    N --> DOC["📝 Especificação Preliminar<br>(User Stories / Casos de Uso)"]
    DOC -.-> D
    
    style D fill:#e0f2fe,stroke:#0284c7
    style C fill:#ede7f6,stroke:#5e35b1
    style N fill:#fef3c7,stroke:#d97706
    style DOC fill:#dcfce7,stroke:#16a34a

3.2. Comparativo de Técnicas de Elicitação

Técnica de ElicitaçãoQuando UtilizarVantagensDesafios
Entrevistas IndividuaisDetalhamento profundo de processos com especialistas.Riqueza de contexto e respostas abertas.Consome muito tempo; risco de viés individual.
Workshops (JAD / Design Sprint)Alinhamento de visões divergentes entre departamentos.Consenso rápido e decisão coletiva.Dificuldade de reunir agendas de executivos.
Questionários / SurveysPopulação grande e geograficamente dispersa (> 1000 usuários).Coleta quantitativa e análise estatística.Respostas superficiais; impossível aprofundar dúvidas.
Observação Etnográfica (Shadowing)Tarefas operacionais complexas e rotinas de campo.Revela regras tácitas que os usuários esquecem de falar.Pode alterar o comportamento natural do operador.
Prototipação RápidaUsuários têm dificuldade de visualizar a solução em texto.Feedback visual imediato e validação de usabilidade.Cliente pode confundir protótipo com sistema final pronto.

💻 4. Aplicação Prática & Código Executável (Python 3.11+)

Script para estruturação de dados de entrevistas de elicitação e extração de requisitos preliminares.

📋 Pré-requisitos e Instalação

Este módulo utiliza exclusivamente recursos nativos do Python 3.11+ (dataclasses). Nenhuma instalação externa é necessária:

# Ambiente padrão Python 3.11+ (sem dependências externas)

💻 Código Completo e Autocontido (analise_elicitacao.py)

Crie o arquivo analise_elicitacao.py e insira o código abaixo:

"""
Módulo: analise_elicitacao.py
Domínio: Consolidação de respostas de stakeholders e mapeamento de dores.
Stack: Python 3.11+
"""
from dataclasses import dataclass

@dataclass
class RespostaEntrevista:
    stakeholder_id: str
    papel: str  # Operador, Gerente, Cliente
    dor_relatada: str
    funcionalidade_desejada: str
    impacto_estimado: int  # 1 a 5 (5 = Crítico)

def processar_requisitos_prioritarios(respostas: list[RespostaEntrevista], corte_impacto: int = 4) -> list[str]:
    """Filtra e consolida as funcionalidades com maior impacto para compor o MVP."""
    prioritarias = [
        f"[{r.papel.upper()}] {r.funcionalidade_desejada} (Motivação: {r.dor_relatada})"
        for r in respostas if r.impacto_estimado >= corte_impacto
    ]
    return prioritarias

if __name__ == "__main__":
    dados_campo = [
        RespostaEntrevista("STK-01", "Operador", "Leitor de código de barras falha com pouca luz", "Modo lanterna automática no app", 5),
        RespostaEntrevista("STK-02", "Gerente", "Falta de visão dos pacotes atrasados no dia", "Dashboard de alertas em tempo real", 5),
        RespostaEntrevista("STK-03", "Cliente", "Desejo escolher a cor do tema da tela de rastreio", "Tema escuro personalizado", 2)
    ]

    mvp_items = processar_requisitos_prioritarios(dados_campo)
    print("📋 ITENS ELICITADOS PRIORITÁRIOS PARA O BACKLOG:")
    for item in mvp_items:
        print(f" ✔️ {item}")

🚀 Como Executar

Execute o script no terminal:

python analise_elicitacao.py

🖥️ Saída Esperada no Terminal

📋 ITENS ELICITADOS PRIORITÁRIOS PARA O BACKLOG:
 ✔️ [OPERADOR] Modo lanterna automática no app (Motivação: Leitor de código de barras falha com pouca luz)
 ✔️ [GERENTE] Dashboard de alertas em tempo real (Motivação: Falta de visão dos pacotes atrasados no dia)

💡 5. Checkpoint de Engenharia & Boas Práticas

Boas Práticas & Anti-Patterns

  • Escuta Ativa & Perguntas Abertas: Em entrevistas, nunca faça perguntas indutivas como "Você não acha que seria melhor ter um botão vermelho aqui?". Pergunte: "Como você realiza essa tarefa hoje e quais são suas maiores dificuldades?".
  • Anti-Pattern The Customer is Always Right on Solutions: O cliente é especialista no problema dele, mas não necessariamente na melhor solução técnica. Seu papel é entender a dor profunda e projetar a arquitetura ideal.

🔗 6. Conexão com os Projetos Integradores

Projeto IntegradorComo o conceito deste capítulo é aplicado no PI
PI-03: PDVLiteElicitação ergonômica: frente de caixa deve permitir fechar venda apenas com atalhos de teclado (sem mouse).
PI-08: CattleFlowObservação no curral: necessidade de leitura de brinco eletrônico e pesagem rápida sem digitação manual.

🧪 7. Quiz de Fixação e Autoavaliação (Formative Assessment)

🧪 Quiz de Autoavaliação — Capítulo 06

1. Qual técnica de elicitação é mais eficiente para descobrir regras de negócio tácitas que os usuários executam no piloto automático mas esquecem de verbalizar em reuniões?

  • A) Questionários com perguntas de múltipla escolha enviadas por e-mail.
  • B) Observação Etnográfica (Shadowing / Acompanhamento no local de trabalho).
  • C) Análise de concorrência na internet.
  • D) Leitura da documentação do banco de dados.
💡 Ver Resposta e Justificativa

Resposta Correta: B
Justificativa: A observação direta permite ao engenheiro ver o operador trabalhando no seu ambiente real, revelando atalhos manuais, exceções e problemas que nunca seriam lembrados em uma entrevista formal.


2. O que representa uma 'Persona' no contexto da Engenharia de Requisitos e Design Centrado no Usuário?

  • A) Um pseudônimo fictício para ocultar o nome dos programadores do projeto.
  • B) Um arquétipo realista construído com base em dados reais de pesquisa que sintetiza as características, metas, dores e comportamentos do usuário-alvo.
  • C) O diagrama de classes de autenticação de usuários.
  • D) Um robô de inteligência artificial de testes.
💡 Ver Resposta e Justificativa

Resposta Correta: B
Justificativa: Personas personificam os usuários reais para os quais o sistema está sendo projetado, mantendo a equipe focada em resolver as dores daquele perfil específico ao priorizar histórias.


3. Durante uma sessão de JAD (Joint Application Design / Workshop), o papel do facilitador é:

  • A) Escrever o código-fonte dos endpoints da API.
  • B) Mediar discussões, neutralizar conflitos e garantir que todos os stakeholders colaborem para atingir o consenso de escopo.
  • C) Decidir sozinho todas as regras de negócio sem consultar os usuários.
  • D) Registrar o domínio na internet.
💡 Ver Resposta e Justificativa

Resposta Correta: B
Justificativa: O facilitador atua de forma neutra conduzindo a dinâmica do workshop para evitar que participantes mais extrovertidos dominem a reunião e garantindo o alinhamento de escopo.


🛠️ 8. Ponte para a Ação: Laboratório Prático

🎯 Próximo Passo Prático

Coloque esta teoria em prática executando o roteiro de laboratório autoguiado:
👉 ATIVIDADE 01: ESCOPO E PERSONAS


📌 9. Resumo Executivo & Key Takeaways

  • Elicitação é Investigação: Requisitos são descobertos através da combinação de entrevistas, observação e prototipação.
  • Diversidade de Fontes: Ouvir apenas a liderança gera sistemas que a operação rejeita; ouvir apenas a operação gera sistemas fora da estratégia da empresa.
  • Etnografia e Contexto: O chão de fábrica e o campo impõem restrições que nenhuma reunião de escritório revela.
  • Personas: Ferramenta poderosa para manter o time focado no valor real do usuário durante todo o ciclo de vida do software.