🎯 ATIVIDADE 01: ESCOPO E PERSONAS
Para realizar este laboratório com sucesso, certifique-se de ter compreendido os conceitos apresentados no:
👉 CAPÍTULO 01: INTRODUÇÃO E NATUREZA DO SOFTWARE
Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI / Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência da indústria, definindo as bases de um projeto real de Engenharia de Software. 🛡️🧩
🎯 Objetivos de Aprendizagem do Laboratório
Ao final deste laboratório prático (estimativa: 4 horas presenciais / autoguiadas), você será capaz de:
- Definir um Escopo claro de projeto, diferenciando o que o sistema fará (In) do que não fará (Out).
- Criar Personas que representem usuários reais, mapeando suas dores e necessidades.
- Documentar a ideia central de um software profissional de ponta a ponta.
🏢 O Cenário Prático (Seu Desafio)
Imagine que você é o Líder de Produto (Product Owner) da TecProExpress. A diretoria identificou que os motoristas terceirizados estão com dificuldades para encontrar as entregas do dia, e o SAC está lotado de clientes perguntando "Onde está meu pacote?". O desafio desta semana é:
"Você precisa documentar a proposta de um novo App de Rastreamento. Sua primeira missão é definir o Escopo do projeto (para não estourar o orçamento da empresa) e descrever exatamente quem são as Personas (O Motorista e O Cliente) que vão usar a ferramenta."
🧠 Fundamentos: A Teoria Traduzida
Na Engenharia de Software, não saímos programando no primeiro dia. Precisamos alinhar as expectativas com os stakeholders (pessoas interessadas).
Escopo e Personas
- Escopo (Scope): É o limite do projeto. Se o cliente pede um carro, o escopo é o carro; um avião está fora do escopo.
- Persona: É uma representação semi-fictícia do seu cliente ideal baseada em dados reais e suposições educadas. Ela tem nome, dores e objetivos.
📊 Visualizando a Lógica
Em projetos ágeis, um escopo mal definido leva ao "Scope Creep" (quando o projeto cresce descontroladamente e nunca termina). Delimite desde o dia 1!
📖 Exemplo Guiado
Abaixo, veja como aplicar a teoria passo a passo no cenário da TecProExpress.
| Passo | Ação de Engenharia | Resultado Esperado |
|---|---|---|
| 01 | Definir o Problema | Motoristas e Clientes perdidos sem saber onde está o pacote. |
| 02 | Mapear Escopo In/Out | O que o App fará e o que ele vai deixar de fora. |
| 03 | Criar Persona | Ficha técnica do usuário alvo. |
📊 Delimitação Visual do MVP (Escopo In/Out)
flowchart TD
subgraph IN [Escopo Ativo - MVP]
direction TB
F1["Chave de Ignição: Login Seguro"]
F2["Painel do Motorista: Lista de Entregas"]
F3["Status da Carga (Pendente / Trânsito / Entregue)"]
end
subgraph OUT [Escopo Futuro - Fora]
direction TB
NF1["Gestão Financeira & Comissões"]
NF2["Algoritmo Avançado de Inteligência Artificial para Rotas"]
end
IN -.-> OUT
style IN fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
style OUT fill:#ffebee,stroke:#c62828,stroke-width:2px
🛠️ Exemplo de Documentação
# Projeto: Rastreio Express
**Escopo (In):**
- Login do Motorista.
- Atualização de status da entrega (Pendente, Em Trânsito, Entregue).
**Escopo (Out):**
- Pagamento de comissão do motorista (Fora do escopo atual).
**Persona:**
*Nome:* Roberto "Beto", 45 anos.
*Ocupação:* Motorista Terceirizado.
*Dor:* "O aplicativo antigo trava muito e eu perco tempo ligando pro cliente."
*Objetivo:* Um botão gigante de "Cheguei no local".
🔍 Detalhamento da Documentação:
- Escopo (In): É o MVP (Mínimo Produto Viável).
- Escopo (Out): Protege a equipe de desenvolvimento contra pedidos abusivos que atrasam a entrega.
- Persona: Vai muito além de "homens de 40 a 50 anos". O Beto tem uma Dor e a nossa interface tem que curar essa dor.
🛠️ Prática Obrigatória 1: Definição do Escopo
Cenário: O projeto semestral que você vai desenvolver. Você pode escolher um sistema de Delivery, Gestão Escolar, PetShop ou criar o seu próprio.
- Dê um Título para o seu sistema.
- Escreva 1 parágrafo descrevendo "O Problema" que ele resolve.
- Liste 3 funcionalidades que estão Dentro (In) do escopo.
- Liste 2 funcionalidades que estão Fora (Out) do escopo.
🏁 Resultado Esperado (Para sua Referência)
Você deverá gerar um documento (Markdown ou PDF) contendo essas definições claras, sem jargões excessivos, provando que você sabe limitar o tamanho do seu projeto.
💻 Validação Prática & Resultado Esperado no Terminal
Para apoiar a análise automatizada do seu escopo, utilize o script de validação de requisitos e personas em Python:
# validar_escopo.py
import json
projeto = {
"nome": "TecProExpress - App de Rastreamento",
"mvp_in": ["Autenticação de Motorista", "Lista de Entregas do Dia", "Atualização de Status"],
"mvp_out": ["Módulo Financeiro de Comissões", "Algoritmo de Roteirização por IA"],
"personas": [
{"nome": "Roberto 'Beto'", "papel": "Motorista Terceirizado", "dor": "App antigo trava e exige ligações"},
{"nome": "Mariana Lima", "papel": "Cliente Destinatária", "dor": "Incerteza sobre horário de entrega"}
]
}
print("=" * 60)
print(f"🚀 VALIDADOR DE ESCOPO: {projeto['nome']}")
print("=" * 60)
print(f"✅ Itens no Escopo (IN): {len(projeto['mvp_in'])} funcionalidades")
for item in projeto["mvp_in"]:
print(f" • [IN] {item}")
print(f"\n⛔ Itens Fora do Escopo (OUT): {len(projeto['mvp_out'])} funcionalidades")
for item in projeto["mvp_out"]:
print(f" • [OUT] {item}")
print(f"\n👥 Personas Mapeadas: {len(projeto['personas'])}")
for p in projeto["personas"]:
print(f" • {p['nome']} ({p['papel']}) -> Dor: \"{p['dor']}\"")
print("=" * 60)
🖥️ Saída Esperada no Terminal:
============================================================
🚀 VALIDADOR DE ESCOPO: TecProExpress - App de Rastreamento
============================================================
✅ Itens no Escopo (IN): 3 funcionalidades
• [IN] Autenticação de Motorista
• [IN] Lista de Entregas do Dia
• [IN] Atualização de Status
⛔ Itens Fora do Escopo (OUT): 2 funcionalidades
• [OUT] Módulo Financeiro de Comissões
• [OUT] Algoritmo de Roteirização por IA
👥 Personas Mapeadas: 2
• Roberto 'Beto' (Motorista Terceirizado) -> Dor: "App antigo trava e exige ligações"
• Mariana Lima (Cliente Destinatária) -> Dor: "Incerteza sobre horário de entrega"
============================================================
🌐 Exemplo de Payload JSON para Cadastro de Personas (Swagger /docs)
{
"nome": "Roberto 'Beto'",
"idade": 45,
"ocupacao": "Motorista Terceirizado",
"dores": [
"Aplicativo antigo trava com frequência",
"Perda de tempo ligando para o cliente para confirmar endereço"
],
"objetivos": [
"Confirmar entrega com apenas 1 toque na tela",
"Visualizar rota consolidada do dia"
]
}
📤 Instruções de Entrega (Microsoft Teams)
Após validar as suas definições de engenharia:
- Salve o arquivo de documentação com o nome
Atividade_01.mdna pastaes-atv-01-escopo/do seu repositório GitHub. - Certifique-se de fazer o commit e push para o repositório público.
- Submeta o link do seu repositório no Microsoft Teams para avaliação do professor.
💡 Checkpoint de Lógica
Reflexão Profissional: Por que é tão difícil dizer "Não" para o cliente na fase de escopo? (Resposta: Porque queremos agradar, mas como engenheiros, nossa função é garantir a entrega. Cada "Sim" para uma ideia fora do escopo aumenta o risco de falha do projeto inteiro). 🧠🛡️
🔥 Desafio de Fixação (Opcional)
Nível: Expert 🏆
Se você terminou rápido, expanda o seu escopo criando a "Matriz de Priorização (MoSCoW)":
- Must have (Deve ter)
- Should have (Deveria ter)
- Could have (Poderia ter)
- Won't have (Não vai ter nesta versão)
Classifique as funcionalidades do seu projeto nessas 4 categorias e anexe ao documento final.
📊 Rubrica Formativa de Avaliação
| Critério de Avaliação | Insuficiente (0% - 40%) | Regular (41% - 70%) | Excelente (71% - 100%) |
|---|---|---|---|
| Delimitação de Escopo (In/Out) | Não delimita o escopo ou confunde funcionalidades internas com externas. | Define In/Out mas sem justificativas claras ou com itens ambíguos. | Mapeia perfeitamente os limites do software com ao menos 3 itens In e 2 Out detalhados. |
| Mapeamento de Personas | Personas genéricas ou incompletas, sem dores e objetivos. | Cria 2 personas mas com perfil superficial. | Personas ricas com nome, idade, ocupação, dores e objetivos realistas de mercado. |
| Entrega no GitHub | Entrega fora do prazo, em pasta incorreta ou repositório privado. | Entregue no repositório mas sem a estrutura Markdown adequada. | Arquivo `Atividade_01.md` publicado em `es-atv-01-escopo/` com Markdown impecável. |