⏱️ 20:00
Palestra-Dinâmica · 5×20min

Aperfeiçoamento de Etapas Técnicas

Elicitação de Requisitos — Carrossel de Elicitação

🎯 Como funciona

  • 5 grupos × 5 projetos × 5 etapas
  • Cada grupo abre 1 crumb do material (seu projeto inicial)
  • A cada 20 min, o artefato passa para o próximo grupo
  • Sem comunicação verbal entre grupos — só o que está escrito

📐 Regras de ouro

  • Quem recebe só vê o último artefato, não o anterior
  • Artefato precisa ser autossuficiente (legível sem você do lado)
  • Marque premissas com 💭 e incertezas com ❓
  • Quando o ⏱️ acabar, solte a caneta e entregue

🔄 As 5 etapas (em sequência)

Etapa 1Spec funcional
Etapa 2Persona + jornada
Etapa 3Use cases + stories
Etapa 4RF/RNF + restrições
Etapa 5Wireframe + critérios

Etapa 1 — Spec Funcional

Você está partindo do crumb (briefing + entrevista + premissas)

20 minutos

📝 Como fazer

  1. Problema (1 frase): "Quem sofre com o quê e por quê?"
  2. Objetivo do sistema (1 frase):
    O sistema permite que [usuário] [ação] para [resultado].
  3. 3 a 5 funcionalidades núcleo (verbo + objeto curto)
  4. Marque suposições com 💭 ("💭 Suponho que…")
  5. Marque não-objetivos: 1 a 2 coisas que o sistema NÃO faz

✅ Checklist + Exemplo

  • O "para quê" está claro?
  • Diferencia "tem que ter" de "seria bom"?
  • Premissas estão marcadas explicitamente?
  • Cabe em 1 página (legível em 1 min)?
Exemplo (app de troca de livros)
Problema: Vizinhos têm livros lidos parados enquanto querem ler novos.
Objetivo: O sistema permite que vizinhos próximos descubram e troquem livros com confiança.
Funcionalidades: cadastrar estante; buscar por raio; pedir troca; combinar encontro presencial.
💭 Suposição: usuários confiam em vizinhos a até 500m.
Não-objetivos: venda, frete, livros novos.

Etapa 2 — Persona + Jornada

Você recebeu uma Spec funcional. Não viu o briefing original.

20 minutos

📝 Como fazer

  1. Persona principal (uma pessoa, não um grupo):
    Nome · idade · contexto · dor central · motivação
  2. Mapa de jornada em 4 momentos:
    • 1. Descoberta (como conhece o sistema?)
    • 2. Primeiro uso (o que faz na 1ª vez?)
    • 3. Uso recorrente (como integra ao dia a dia?)
    • 4. Resolução (quando "resolve" o problema?)
  3. Em cada momento: o que faz, o que sente e qual a fricção

✅ Checklist + Exemplo

  • Persona é específica (nome, idade, contexto)?
  • A dor da persona se conecta à Spec recebida?
  • Jornada tem fricções reais identificadas?
  • Outra pessoa entenderia sem você explicar?
Exemplo (app de troca de livros)
Carla, 34, mora em condomínio com 200 famílias, lê 2 livros/mês. Dor: tem 80 livros lidos parados, paga frete caro em sebo.
1. Descoberta: vê post no grupo do prédio. Sente curiosidade. Fricção: desconfia de app novo.
2. Primeiro uso: cadastra 5 livros tirando foto. Frustração: foto demora a subir.
3. Recorrente: abre 1×/semana p/ buscar. Fricção: poucos vizinhos cadastrados no início.

Etapa 3 — Use Cases + User Stories

Você recebeu Persona + Jornada. Use os momentos como gatilho.

20 minutos

📝 Como fazer

  1. Liste 5-8 use cases (verbo + objeto curto):
    Cadastrar livro · Buscar por raio · Pedir troca · Combinar encontro…
  2. Escreva cada um como user story (Connextra):
    Como [persona], quero [ação], para [valor/benefício].
  3. Priorize: marque 3 stories como ⭐ (núcleo) e o resto como complementares
  4. A persona da etapa anterior aparece consistente em todas as stories

✅ Checklist + Exemplo

  • Cada story tem os 3 elementos (Como/quero/para)?
  • O "para" é um valor real (não só "porque sim")?
  • Use cases cobrem os 4 momentos da jornada?
  • Há priorização clara (núcleo vs complemento)?
Exemplo (app de troca de livros)
⭐ Story 1: Como Carla, vizinha com livros parados, quero cadastrar meus livros com foto, para que vizinhos próximos descubram o que tenho.
⭐ Story 2: Como Carla, quero buscar livros por raio de 500m, para evitar deslocamento longo na hora da troca.
Story 3: Como Carla, quero ver o histórico de trocas de um vizinho, para sentir mais segurança no primeiro encontro.

Etapa 4 — RF / RNF + Restrições

RNF cobrindo os 6 eixos de qualidade do SWEBOK (≥ 1 por eixo, com métrica)

20 minutos

📝 Como fazer

  1. RF (Funcionais): o que o sistema FAZ. Um por linha, testável.
    RF-01: O sistema deve permitir [ação] [entrada] [saída].
  2. RNF (Não-funcionais): COMO o sistema faz — 1 por eixo SWEBOK (ver à direita), sempre com métrica.
    RNF-01: O sistema deve [qualidade] em [métrica] sob [condição].
  3. Restrições: o que NÃO posso mudar (legais, técnicas, negócio, prazo).
Checklist: RF é testável? RNF tem métrica (não só "rápido")? Restrição ≠ RNF (restrição = "não posso", RNF = "quão bem")? Todas as stories ⭐ viraram RF?

🎯 RNF — 6 Eixos SWEBOK

Cada grupo deve escrever ao menos 1 RNF para cada eixo. Use as perguntas-guia.

⚡ Performance / Eficiência

Quão rápido e econômico em recursos precisa ser?

Ex: 95% das buscas em <500ms com 10k registros.

🛡️ Confiabilidade / Disponibilidade

Quanto pode falhar ou ficar fora do ar?

Ex: Uptime ≥ 99,5%/mês; recuperação em <5min.

🔐 Segurança

O que precisa estar protegido e contra quem?

Ex: Senhas em bcrypt; sessão expira em 30min ociosa.

👆 Usabilidade / Acessibilidade

Quão fácil de aprender, usar e acessar?

Ex: 1ª tarefa em <3min sem ajuda; conforme WCAG AA.

🔧 Manutenibilidade

Quão fácil de evoluir, testar e diagnosticar?

Ex: Cobertura ≥ 70%; build local em <2min.

🔌 Portabilidade / Compatibilidade

Onde precisa rodar e com o quê precisa conversar?

Ex: Android 8+; export CSV compatível com Excel/Sheets.

Etapa 5 — Wireframe + Critérios de Aceitação

Você recebeu RF/RNF. Materialize em tela e em testes verificáveis.

20 minutos

📝 Como fazer

  1. Wireframe (lo-fi): desenhe 3 telas-chave com caixas + nomes + setas de fluxo entre elas. Sem se preocupar com beleza.
  2. Critérios de aceitação no formato BDD (1 caminho feliz + 1 erro por tela):
    DADO que [contexto], QUANDO [ação], ENTÃO [resultado esperado].
  3. Marque na tela qual critério valida qual elemento (ex: "C-01 valida o botão Buscar")

✅ Checklist + Exemplo

  • O fluxo entre telas está claro (setas, nomes)?
  • Cada critério é específico e testável?
  • Há pelo menos 1 critério de erro/exceção por tela?
  • Os critérios cobrem os RF principais recebidos?
Exemplo (app de troca de livros)
Tela "Buscar": campo de busca · lista de resultados · botão "ver detalhes"
C-01 (feliz): DADO que estou logada e busquei "Sapiens", QUANDO existir match no raio, ENTÃO vejo o livro com foto, distância e botão de contato.
C-02 (erro): DADO que busquei "Sapiens", QUANDO não houver match, ENTÃO vejo mensagem "ninguém por perto" com botão "ampliar raio".

🎓 Fechamento — A Parede das 5 Linhagens

Cole as 5 cadeias completas lado a lado e reabra os briefings originais

Discussão

🧱 Monte a parede

Projeto A

Spec
Persona
Stories
RF/RNF
Wireframe

Projeto B

Spec
Persona
Stories
RF/RNF
Wireframe

Projeto C

Spec
Persona
Stories
RF/RNF
Wireframe

Projeto D

Spec
Persona
Stories
RF/RNF
Wireframe

Projeto E

Spec
Persona
Stories
RF/RNF
Wireframe

🔍 Perguntas para a discussão

  • Onde a informação se perdeu ou se distorceu?
  • Que premissas foram inventadas ao longo da cadeia?
  • Qual etapa é mais sensível à ambiguidade?
  • O que os artefatos "bons" tinham em comum?

🎯 Levar pra próxima sprint

  • Escreva sempre pensando em quem vai ler sem você do lado
  • Marque premissas em vez de escondê-las
  • Critérios testáveis > descrições poéticas
  • Persona específica > "todo mundo" genérico