Apresentação
Quinze minutos para mostrar um semestre de trabalho. A apresentação final não é um passeio por todas as aulas que vocês usaram — é uma revisão de design: este é o problema, esta é a arquitetura e o porquê, aqui está ela rodando sob carga, aqui está a evidência de que cumpre os SLOs, isto foi o que quebrou no game day, isto é quanto custa, e isto é o que faríamos a seguir. Depois os revisores fazem perguntas — para cada membro.
Metas
Com este marco o seu time vai:
- Contar a história do sistema numa fala estruturada e com tempo limitado, voltada para engenheiros.
- Demonstrar o caminho principal ao vivo, sob carga, com dashboards — e ter um plano B.
- Defender decisões e números: ADRs, resultados dos testes de carga, descobertas do game day, custo.
- Mostrar domínio individual nas perguntas: todo membro explica e altera qualquer parte do sistema.
- Publicar a documentação final e um vídeo de 3 minutos.
As apresentações acontecem nas semanas 19–20 (agenda publicada pelo professor); peso de 10% do projeto. A qualidade da documentação do site inteiro é avaliada no mesmo momento.
O que entregar
- Slides (PDF ou um link na documentação), seguindo o roteiro.
- Uma demo ao vivo durante a apresentação, mais uma gravação reserva da mesma demo.
- Um vídeo de 3 minutos do projeto (link na documentação).
- A documentação final no GitHub Pages e a tag final
final.
Critérios de aceitação
- (obrigatório) Todos os membros apresentam uma parte da fala e respondem perguntas individuais.
- (obrigatório) Fala dentro de 15 minutos (corte rígido), seguida de 10 minutos de perguntas.
- O diagrama de arquitetura usa ids da paleta e corresponde ao sistema implantado (o design doc final).
- Uma demo ao vivo do caminho principal sob carga com os dashboards visíveis (ou a gravação reserva, se a demo ao vivo falhar — digam isso).
- Resultados dos testes de carga contra os SLOs-alvo (M6), descobertas do game day (M7) e custo por unidade de negócio (M8) apresentados com números.
- Pelo menos duas ADRs apresentadas como decisões com alternativas e consequências.
- Vídeo de 3 minutos publicado e linkado; ele se sustenta sozinho para quem não assistiu.
- Checklist da documentação final completo e tag
finalenviada antes do dia da apresentação. - Seção Uso de IA na documentação final (veja a política).
Passo a passo
1. Estruture os 15 minutos
| Min | Seção | O que o público precisa levar |
|---|---|---|
| 0–1 | Problema e requisitos | A opção de sistema, os usuários, as metas de design e de teste, os SLOs |
| 1–4 | Arquitetura | Um diagrama com ids da paleta; o caminho da requisição do caso de uso principal; dono de cada dado |
| 4–6 | Decisões-chave | Duas ou três ADRs: a decisão, as alternativas, o trade-off |
| 6–10 | Demo ao vivo sob carga | O caminho principal funcionando enquanto o k6 roda; dashboard RED; um trace |
| 10–12 | Evidências | Campanha de testes de carga vs SLOs (joelho, gargalo, iterações); descobertas do game day |
| 12–14 | Custo | Custo mensal na meta de design, custo por unidade, a maior alavanca |
| 14–15 | Lições e próximos passos | O que vocês mudariam, do que o sistema precisaria com 10× |
Divida as seções para que cada membro apresente algo substancial (não só o slide de título). Ensaiem com cronômetro; o corte em 15:00 é real.
2. Prepare a demo — e o seu plano B
Demos ao vivo falham por motivos banais: Wi-Fi, um cluster que não subiu, um token expirado. Prepare-se como um operador:
- Ambiente iniciado 30 minutos antes, dados carregados, caches aquecidos, dashboards abertos em uma aba do navegador, fonte do terminal aumentada.
- Um roteiro de demo: os comandos e cliques exatos, em ordem, com o que o público deve notar em cada passo.
- Um gerador de carga a uma taxa conhecida (por exemplo, 50–70% da meta de teste) iniciado no começo da demo.
- Uma gravação reserva da mesma demo (captura de tela com narração), pronta para tocar se algo quebrar.
- Uma pessoa opera, outra narra.
#!/usr/bin/env bash
# Prepare the live demo: seed, warm up, start the background load.
set -euo pipefail
./load/seed.sh
k6 run -e TEST_TYPE=smoke -e BASE_URL="${BASE_URL:-http://localhost:8080}" load/boxoffice.js > /dev/null
nohup k6 run -e TEST_TYPE=load -e BASE_URL="${BASE_URL:-http://localhost:8080}" \
-e BROWSE_RATE="${BROWSE_RATE:-600}" -e HOLD_RATE="${HOLD_RATE:-60}" \
load/boxoffice.js > demo/k6-live.log 2>&1 &
echo "background load started (pid $!) — open the RED dashboard now"
3. Grave o vídeo de 3 minutos
O vídeo é para quem nunca viu o curso: um recrutador, um futuro colega de time. Corte sugerido: problema e SLOs (20 s), arquitetura (40 s), o sistema sob carga com dashboards (60 s), um resultado da campanha e um do game day (40 s), custo e lições (20 s). Mantenha abaixo de 3 minutos; legendas ou áudio claro; mostre o time.
4. Prepare-se para as perguntas
As perguntas vão para indivíduos, e qualquer membro pode ser questionado sobre qualquer parte do sistema. Espere perguntas como:
- "Mostre o que acontece, componente a componente, quando um fã reserva um assento. Onde isso pode falhar?"
- "O seu p99 na meta foi 180 ms. O que domina esse valor? Como vocês sabem?"
- "Se o tráfego crescer 10×, o que quebra primeiro? O que vocês mudariam, e quanto custaria?"
- "Por que Kafka e não uma fila simples aqui? O que faria vocês mudarem de ideia?"
- "Mostre o alerta que disparou no game day. Qual é a janela de burn rate, e por quê?"
- "Esta parte foi escrita com ajuda de IA. Explique-a e mude este parâmetro: o que acontece?"
5. Finalize a documentação
- Página inicial: time, tabela de responsabilidades, opção de sistema, resumo de um parágrafo, diagrama de arquitetura, links para todos os marcos.
- Design doc final e ADRs (com o registro de mudanças desde o M1).
- Relatório da campanha de testes de carga, relatório do game day, relatório de custos.
- Como executar: Compose e Kubernetes, carga de dados, rodar um teste de carga — testado a partir de um clone limpo.
- Links: repositório, execuções do CI, slides, vídeo, gravação da demo.
- Uso de IA por entregável.
- Tag
finalenviada; o site gerado a partir dela.
Templates
# <System name> — final presentation (15 min)
1. Title — team members, system option (who presents what)
2. Problem — users, core use cases, design target vs test target
3. SLOs — table: SLI, target, measured (M6)
4. Architecture — diagram with palette ids; core request path
5. Data — who owns what; consistency of the critical write
6. Decision 1 (ADR) — context, options, decision, consequences
7. Decision 2 (ADR) — ...
8. Live demo — what to watch: <dashboard panels>, <trace>
9. Load-test campaign — knee chart, bottleneck, 2 iterations (before/after)
10. Game day — experiments, confirmed/refuted, surprise fault TTD/TTM
11. Cost — monthly cost at the design target, cost per <unit>, top lever
12. Lessons — what we would change; what 10× would need
13. Thank you — links: docs, repository, video
# <Nome do sistema> — apresentação final (15 min)
1. Título — membros do time, opção de sistema (quem apresenta o quê)
2. Problema — usuários, casos de uso principais, meta de design vs meta de teste
3. SLOs — tabela: SLI, meta, medido (M6)
4. Arquitetura — diagrama com ids da paleta; caminho da requisição principal
5. Dados — quem é dono do quê; consistência da escrita crítica
6. Decisão 1 (ADR) — contexto, opções, decisão, consequências
7. Decisão 2 (ADR) — ...
8. Demo ao vivo — o que observar: <painéis do dashboard>, <trace>
9. Campanha de testes de carga — gráfico do joelho, gargalo, 2 iterações (antes/depois)
10. Game day — experimentos, confirmados/refutados, falha surpresa TTD/TTM
11. Custo — custo mensal na meta de design, custo por <unidade>, principal alavanca
12. Lições — o que mudaríamos; o que 10× exigiria
13. Obrigado — links: documentação, repositório, vídeo
Rubrica
Níveis conforme definidos em Como os exercícios são avaliados. As perguntas individuais podem ajustar a nota de um membro (veja as regras do time).
| Critério | I | D | C | B | A |
|---|---|---|---|---|---|
| Participação e tempo (obrigatório) | Um membro ausente sem justificativa | Um membro não apresenta, ou > 17 min | Todos apresentam; dentro de 15 min | Partes equilibradas; transições suaves | Fala adaptada às perguntas na hora |
| História e arquitetura | — | Lista de tecnologias | Problema → SLOs → arquitetura → decisões | Diagrama com ids da paleta corresponde ao sistema implantado; trade-offs explícitos | Um revisor conseguiria redesenhar o sistema depois da fala |
| Demo ao vivo | Nada mostrado | Só a gravação reserva, sem explicação | Caminho principal funciona sob carga com dashboards | Demo ligada aos SLIs ("observem o p99 aqui") | Falha mostrada ao vivo e o sistema se recuperando |
| Evidências | — | Afirmações sem números | Números do M6, M7 e M8 apresentados | Números interpretados (joelho, gargalo, custo por unidade) | "O que faríamos com 10×" claro, com custo |
| Perguntas (individual) | Não consegue explicar o próprio trabalho | Respostas vagas | Respostas corretas na própria área | Respostas corretas em qualquer área | Raciocina sobre mudanças na hora, com números |
| Vídeo e documentação final | Ausentes | Vídeo > 3 min ou documentação incompleta | Vídeo ≤ 3 min; checklist da documentação completo | O vídeo se sustenta sozinho; documentação reprodutível a partir de um clone limpo | Qualidade de portfólio |
FAQ
Podemos apresentar só uma gravação em vez de uma demo ao vivo?
Espera-se a demo ao vivo; a gravação é o plano B. Se a demo ao vivo falhar, troquem para a gravação sem perder tempo e digam o que falhou — lidar com isso com calma já é um bom sinal.
Precisamos de slides para todos os marcos?
Não. A fala é uma história, não um relatório: escolham as decisões, números e descobertas que melhor mostram como o sistema cumpre (ou não) os seus SLOs. Os detalhes ficam na documentação.
Quem responde às perguntas?
A pessoa perguntada. Os outros podem complementar depois da resposta. As perguntas são distribuídas entre todos os membros e podem tratar de qualquer parte do sistema.
O vídeo é o mesmo que a gravação da demo?
Não. A gravação da demo é a reserva da demo ao vivo; o vídeo é uma visão geral de 3 minutos do projeto inteiro para quem não assistiu.
A IA pode fazer os nossos slides?
Pode ajudar com layout e redação — declarem o uso. O conteúdo, os números e as respostas nas perguntas precisam ser de vocês.