📚 Metodologias de Desenvolvimento de Software

Do Rigor Militar à Agilidade das Startups

🎯 Objetivo da Aula

Ao final desta aula, você será capaz de:

  1. Compreender a evolução histórica dos modelos.
  2. Identificar os criadores e as motivações de cada metodologia.
  3. Diferenciar abordagens Tradicionais (Preditivas) de Ágeis (Adaptativas).
  4. Escolher a metodologia ideal para diferentes cenários de projeto.

1️⃣ Contexto Histórico: A "Crise do Software"

  • Anos 60: O hardware evoluía rápido, mas o software era artesanal, caro e atrasado.
  • Conferência da OTAN (1968): Cientistas se reuniram na Alemanha para discutir a crise.
  • Nascimento da Engenharia de Software: A tentativa de trazer o rigor da engenharia civil/mecânica para o código "invisível".

2️⃣ Modelo Cascata (Waterfall)

👤 Criador: Winston Royce (1970)

Apresentado no artigo "Managing the Development of Large Software Systems".

  • Conceito: Sequencial e linear. Uma fase só inicia após o término da anterior.
  • Contexto: Projetos militares e governamentais (DoD EUA) onde requisitos eram imutáveis e contratuais.
  • Curiosidade: Royce apresentou o modelo para ilustrar que a linearidade pura era arriscada e precisava de iterações, mas o mercado adotou a versão rígida.

📍 Etapas do Cascata

  1. Requisitos: Documentação exaustiva.
  2. Análise/Projeto: Arquitetura do sistema.
  3. Implementação: Codificação.
  4. Testes: Verificação final.
  5. Manutenção.

✅ Vantagens: Simples de gerir; documentação completa.
❌ Desvantagens: Cliente só vê o produto no final; mudanças são caríssimas.

3️⃣ Modelo Incremental

👤 Referência: Harlan Mills (IBM, 1971)

  • Conceito: O sistema é construído em "fatias" (incrementos).
  • Filosofia: Em vez de um lançamento único (Big Bang), entrega-se o núcleo do sistema primeiro.
  • Exemplo E-commerce:
    • Incremeto 1: Catálogo.
    • Incremento 2: Carrinho.
    • Incremento 3: Pagamento.

4️⃣ Modelo Espiral (Spiral Model)

👤 Criador: Barry Boehm (1986)

  • Foco Central: Análise de Risco.
  • Funcionamento: O projeto caminha em ciclos (voltas na espiral). Cada volta inclui:
    1. Planejamento.
    2. Análise de Risco (Diferencial).
    3. Engenharia (Desenvolvimento).
    4. Avaliação do Cliente.
  • Indicação: Projetos de missão crítica e alta complexidade (Aeroespacial/Bancário).

5️⃣ A Revolução: O Manifesto Ágil (2001)

Em Utah (EUA), 17 especialistas (Sutherland, Schwaber, Martin Fowler, etc.) definiram 4 valores fundamentais:

  1. Indivíduos e interações > Processos e ferramentas.
  2. Software em funcionamento > Documentação abrangente.
  3. Colaboração com o cliente > Negociação de contratos.
  4. Responder a mudanças > Seguir um plano.

6️⃣ Scrum

👤 Criadores: Jeff Sutherland e Ken Schwaber (1995)

Inspirado no modelo de Rugby (Takeuchi e Nonaka, 1986).

  • Framework: Baseado em Sprints (1 a 4 semanas).
  • Papéis: Product Owner (Visão), Scrum Master (Processo), Time (Execução).
  • Artefatos: Product Backlog, Sprint Backlog e Incremento funcional.
  • Eventos: Daily, Review, Retrospective.

7️⃣ Kanban

👤 Criador (Software): David J. Anderson (2004)

Adaptado do Sistema Toyota de Produção (Lean Manufacturing).

  • Conceito: Gestão visual de fluxo contínuo.
  • Foco no WIP: Work In Progress (Trabalho em Andamento). Limitar o WIP para evitar gargalos.
  • Visual: Cartões que se movem entre colunas (To Do -> Doing -> Done).
  • Vantagem: Melhora a eficiência sem mudar drasticamente a estrutura da equipe.

8️⃣ Comparação: Tradicional x Ágil

Critério Cascata / Espiral Scrum / Kanban
Planejamento Extenso e inicial (Preditivo) Adaptativo e constante
Mudanças Difíceis e caras Bem-vindas e esperadas
Entrega Única, ao final Incremental e rápida
Cliente Participa no início/fim Participa ativamente
Documentação Exaustiva Essencial / "Just in time"

9️⃣ Quando usar cada modelo?

  • Cascata: Projetos com requisitos estáveis e críticos (ex: software de marca-passo).
  • Espiral: Projetos de altíssimo risco e orçamento milionário.
  • Scrum: Desenvolvimento de produtos onde o mercado muda rápido (Apps, SaaS).
  • Kanban: Fluxos de manutenção, suporte e evolução contínua.

🔟 Estudo de Caso: Startup "MedAgend"

Cenário: App de agendamento médico. Investidores querem ver progresso em 4 semanas. Requisitos podem mudar conforme feedback dos médicos.

Pergunta para a Turma:

  1. Qual metodologia escolheria? (Scrum, Kanban ou Cascata?)
  2. Justifique com base no Contexto Histórico e Criadores.
  3. Como organizaria os primeiros 3 meses?

🎓 Encerramento e Referências

"Metodologia não é moda — é estratégia."

Referências Recomendadas:

  • SOMMERVILLE, Ian. Engenharia de Software.
  • SUTHERLAND, Jeff. Scrum: A arte de fazer o dobro do trabalho na metade do tempo.
  • BOEHM, Barry. A Spiral Model of Software Development and Enhancement (1986).
  • ANDERSON, David. Kanban: Successful Evolutionary Change for Your Technology Business.