🚀 Engenharia de Software

A Filosofia Ágil: XP & Scrum Profundo (Aula Estendida)

👨‍🏫 Professor: Ricardo Pires
📚 Unidade I


📚 Jornada de Imersão (3 Horas)

  • 🏃 Gênese dos Métodos Ágeis: O colapso do planejamento rígido e a revolução.
  • 📜 Manifesto Ágil: Analisando os axiomas da década de 2000.
  • 💻 Extreme Programming (XP) vs “Go Horse”: Excelência técnica via TDD e Pair Programming.
  • 🏈 Scrum Avançado: Cerimônias (Daily, Planning, Retro), Artefatos e a visão holística.
  • 🗺️ Do Kanban ao Código: Transformando Post-Its em Pull Requests prontas.

🏃 A Guerra Fria dos Anos 90 no Software

Por anos, aplicamos a engenharia civil no código militar. Isso gerou os pesados PDAs (Processos de Desenvolvimento) corporativos. Para criar uma tela web, preenchia-se um documento de Word com 96 páginas de especificações UML.

O Problema do Século 21: A internet chegou. Negócios web nascem, mudam a visão e “morrem” numa janela de mercado de 3 semanas. Nenhum empresário do Vale do Silício iria esperar um ano por um modelo Cascata pesado. Surge a urgência de entregar pedaços de futuro de forma dinâmica.


📜 O Manifesto Ágil (Snowbird, Utah - 2001)

Dezessete pioneiros debateram o futuro e cravaram:

  1. 🤝 Indivíduos e interações > (sobre) Processos engessados e ferramentas frias.
  2. 💻 Software em funcionamento > (sobre) Documentação extensa e burocrática.
  3. 🫂 Colaboração direta com o cliente > (sobre) Contratos longos e processos judiciais literais.
  4. 🔄 Responder a mudanças brutais > (sobre) Seguir cegamente um plano PDF obsoleto.

Ágil não é baderna; Ágil é focar milimetricamente na entrega contínua do VALOR.


🗣️ QUIZ VERBAL: O Paradoxo da Documentação

Pergunta: Se um Desenvolvedor Júnior entra na sua equipe invocando os deuses do Método Ágil e alega que “não desenhará mais diagramas do Banco de Dados porque o foco é programar a tela”, ele está perfeitamente alinhado com o princípio do manifesto “Software Funcionando sobre Documentação”? Discorra os ricos.


✅ RESPOSTA DO QUIZ

Não! Isso é a Falácia do Caos! 🛑

Explicação: O manifesto diz “mais que”, não “ao invés de”. A documentação (arquiteturas, README em repositórios, Swagger de APIs) é o coração pulsante que permite o onboarding da equipe. Eliminar as bússolas para focar em “bater no teclado rápido” resulta em débito técnico terminal. Registramos o que importa, excluímos o supérfluo corporativo.


💻 Extreme Programming (XP): A Trincheira

O Ágil é o grande telhado. O XP é o piso de fábrica. Metodologia focada agressivamente na higiene do código e na engenharia técnica (“Extreme” levado a sério).

Valores Mortais:

  1. Simplicidade RadicaL (YAGNI): You Aren’t Gonna Need It. Não programe um “sistema global de multipagamentos” para amanhã, se seu MVP hoje só precisa de um PIX em texto.
  2. Coragem: Apagar impiedosamente 3000 linhas de código do arquiteto “legado” de ontem, pois descobriu uma rota melhor pela refatoração hoje.

🧪 O Pilar do XP (e DevOps): TDD

O Desenvolvimento Orientado a Testes (Test-Driven Development) vira o jogo de cabeça para baixo. O Paradigma Humano: “A gente coda e depois testa”. O XP TDD: “A gente testa, dá vermelho, a gente coda para o vermelho virar verde”.

[ 🔴 RED / FALHA ]  --->  [ 🟢 GREEN / SUCESSO ]  --->  [ 🔧 REFACTOR / LIMPAR ]
O teste obriga o        Você faz um código pífio      Você melhora sem medo,
código a não existir.   mas que engana o teste.       pois o teste protege.

🧪 Código TDD Básico em Python

# PASSO 1 - Eu escrevo apenas o teste (a conta ainda não existe)
def test_deve_multiplicar_valores():
    resultado = CalculadoraTributos(10).calcular(2)
    assert resultado == 20   # ISSO QUEBRA O SISTEMA 🔴
 
# PASSO 2 - Depois (sob pressão) o dev escreve o código real para passar
class CalculadoraTributos:
    def __init__(self, fator):
        self.fator = fator
    
    def calcular(self, base):
        return base * self.fator # VERDE 🟢!

Com milhares de métodos “blindados” pelo TDD, no XP o cliente pode mudar as regras no meio do voo sem o avião cair!


🏈 SCRUM: A Gestão Tática do Produto

XP organiza os Servidores. Scrum organiza a Reunião com Gente. Framework robusto que transformou os departamentos burocráticos num maquinário de entrega contínua.

  • Product Owner (O Visionário): A encarnação viva dos boletos. Ele possui a “Fila de Tarefas” (Backlog) e prioriza (1- Botão de Assinar importa mais que o 2- Modo Escuro da tela).
  • Scrum Master (O Cão de Guarda): Ele escuda e blinda a equipe de engenharia para que o CEO da empresa não entre gritando na sala mudando funções no meio da semana. Ele facilita os rituais.
  • O Time de Desenvolvimento: Um núcleo coeso, multi-habilidades (Front, Back, Cloud, UI/UX). Decidem tecnicamente o que cabe em 15 dias.

🏎️ Anatomia Nuclear de uma SPRINT

A “Sprint” dura 2 semanas rigorosamente (Caixa de Tempo). É sagrada.

       [ BACKLOG GIGANTE ]
               |
  (🗓️ Reunião de Planejamento 4h) <- Time escolhe O QUE puxar

       [ BACKLOG DA SPRINT ]  --> As tarefas das próximas 2 semanas!
               |
     (🔄 Durante a jornada: Daily 15m) <- Ficar de pé! Resumo rápido.
               |

     [ 🎁 MÓDULO FECHADO EM PRODUÇÃO! ]
               |
       (🕵️ Retrospectiva/Review) <- Lavar a roupa suja / Festejar

🗺️ Visualizando: O Quadro Kanban Ágil

A transparência (Scrum exige clareza visual, todos devem saber todos os problemas que cada um tem).

 ╔═══════════════════════════════════════════════════════════╗
 ║ [A FAZER/TODO]   │ [EM PROGRESSO/DOING] │  [FEITO/DONE]   ║
 ║------------------│----------------------│-----------------║
 ║ 🎟 Editar Perfil │ 🎟 (Seu João) API    │ 🎟 Tela de BOAS  ║
 ║ 🎟 Carrinho Novo │    do Banco de Dados │    VINDAS Apple ║
 ║ 🎟 Bug do iOS 17 │                      │                 ║
 ╚═══════════════════════════════════════════════════════════╝
  • Limite de Progresso (WIP - Work in Progress): João não pode ter 10 post-its na coluna do meio. Foco monástico (termina uma coisa bem antes de abrir outra!).

🗣️ QUIZ VERBAL: A Interrupção

Pergunta: O Presidente Executivo entra na sala num clima de desespero! Ele acabou de inventar uma feature revolucionária no banho e quer que o desenvolvedor pare hoje a “Tela de Catálogo” (Sprint na metade) para colocar essa Invenção Genial em cima. Como a equipe Ágil que preza pela “rapidez” e adaptação resolve esse choque? Paralisamos e mudamos de lado?


✅ RESPOSTA DO QUIZ

Não! Proteja a Sprint e jogue na Fila Geral. ⚔️🛡️

Explicação: A flexibilidade do Ágil ocorre entre as pausas, não esmagando o miolo produtivo do desenvolvedor toda hora. O Scrum Master vai barrar o Presidente amigavelmente, e informá-lo para repassar a “Ideia Genial” ao Product Owner, que a colocará no Topo do Backlog Público. Na sexta-feira seguinte (Início da próxima Sprint), a ideia de ouro finalmente afunilará para ser a pauta central do time com foco 100% focado dos engenheiros, poupando a degradação mental!


📐 Matemática do Scrum: Velocidade e Previsão

O Scrum não é apenas prosa e post-its — ele é gerência quantitativa. A equipe mede sua Velocidade:

Com a velocidade calculada, o PO consegue prever o prazo de entrega do backlog completo:

Exemplo: Backlog = 240 pts. Velocidade média = 40 pts/sprint. Previsão: sprints 3 meses.


🗣️ QUIZ VERBAL: A Sprint Eterna

Cenário: Uma equipe Scrum de 5 devs tem velocidade histórica de 30 Story Points por Sprint. O Product Owner estimou 270 pontos no backlog total. O CEO perguntou quanto tempo levará para terminar. Um dev propôs: “Vamos aumentar a Sprint de 2 para 6 semanas para caber mais trabalho e entregar mais rápido!”

Qual o erro conceitual grave dessa proposta? E qual seria a previsão correta, usando a velocidade atual com Sprints de 2 semanas?


✅ RESPOSTA DO QUIZ FINAL

Erro: Sprints longas destroem o feedback loop. A resposta correta: 9 Sprints (≈ 4,5 meses). 📅

Explicação:

  1. Erro conceitual: Sprints longas violam o coração do Scrum — a cadência curta existe para que erros sejam detectados e corrigidos rapidamente. Uma Sprint de 6 semanas entrega feedback tardio, aumenta o risco de retrabalho e elimina a adaptabilidade.
  2. Cálculo correto: . O CEO tem a data — sem aceitar 6 semanas de Sprint.

⚖️ Equilíbrio Final: Qualidade Técnica e Lógica Empática

  1. A Ferramenta não Trabalha Sozinha: O Jira da Atlassian é apenas Kanban digital. Ele não corrige pontes quebras de comunicação! O contato humano (Aviso de “Bom dia, hoje atacarei o bug pesado X”) substitui softwares burocráticos de monitoramento abusivo de tempo.
  2. É no pilar da Qualidade Extrema (embutida do XP com Testes) guiada pela Gestão cirúrgica de ritmo (Scrum/Kanban) em ciclos curtos de alívio contínuo (A Sprint!), que o software deixa de ser um peso militar e passa a ser uma arte colaborativa valiosa!