Aula 9: Sprint 1 e CI/CD
Data: 30/10/2025
Módulo: 3 - Gestão Ágil e Execução
Duração: 90 minutos
Tipo: Teórico-Prática
📋 Resumo Executivo
Esta aula marca o início da execução prática do projeto Portfólio usando metodologias ágeis. Os alunos implementarão o primeiro sprint completo, desde o planejamento até a entrega, utilizando o GitLab como ferramenta de gestão. Além disso, serão introduzidos os conceitos fundamentais de CI/CD (Integração Contínua e Entrega Contínua) e sua implementação prática com Hugo para geração automática do site.
🎯 Objetivos da Aula
Objetivos Gerais
- Executar o primeiro sprint completo do projeto Portfólio
- Implementar práticas ágeis com GitLab
- Configurar pipeline de CI/CD
- Entregar incremento funcional do produto
Objetivos de Aprendizagem
- Compreender execução prática de sprints
- Dominar ferramentas ágeis do GitLab
- Implementar CI/CD com GitLab
- Configurar automação de build e deploy
- Entregar software funcionando
⏰ Cronograma da Aula
| Tempo | Atividade | Descrição |
|---|---|---|
| 15 min | Revisão e Contexto | Revisão da aula anterior e preparação para Sprint 1 |
| 25 min | Execução do Sprint 1 | Planejamento, desenvolvimento e entrega do primeiro sprint |
| 30 min | CI/CD e Automação | Conceitos e implementação de pipeline de CI/CD |
| 20 min | Deploy e Validação | Deploy automático e validação do incremento |
📚 Conteúdo Teórico
1. Execução Prática de Sprints
Sprint 1: Estrutura e Setup
Objetivo: Estabelecer a base técnica e organizacional do projeto
Duração: 2-3 semanas (adaptado para contexto acadêmico)
Entregas Esperadas: - Ambiente de desenvolvimento configurado - Estrutura básica do site Hugo - Página inicial funcional - Navegação básica implementada - Configuração inicial do GitLab
Planejamento do Sprint 1
Sprint Planning (2 horas): 1. Revisão do Product Backlog - Priorização de itens - Refinamento de histórias - Estimativas de esforço
- Seleção de Itens
- Capacidade da equipe
- Dependências técnicas
- Critérios de aceitação
- Definição do Sprint Backlog
- Decomposição em tarefas
- Atribuição de responsáveis
- Estimativas detalhadas
Execução do Sprint
Daily Scrum (15 min diários): - Sincronização da equipe - Identificação de impedimentos - Ajustes no plano
Desenvolvimento: - Implementação de funcionalidades - Testes contínuos - Integração de código - Documentação
Revisão e Retrospectiva
Sprint Review (1 hora): - Demonstração do incremento - Feedback dos stakeholders - Validação de critérios de aceitação
Sprint Retrospective (1 hora): - Análise do processo - Identificação de melhorias - Plano de ações
2. GitLab como Ferramenta Ágil
Issues e User Stories
Formato de User Story:
Como [usuário], eu quero [funcionalidade] para [benefício]
Critérios de Aceitação: - Funcionalidade específica e testável - Condições de sucesso claras - Cenários de teste definidos
Exemplo para o projeto Portfólio:
Como visitante do site, eu quero navegar pelas páginas
para conhecer os membros da equipe
Critérios de Aceitação:
- Menu de navegação visível
- Links funcionais entre páginas
- Design responsivo
- Tempo de carregamento < 3 segundos
Milestones e Sprints
Configuração de Milestones: - Duração: 2-3 semanas - Objetivo específico - Issues associadas - Data de início e fim
Exemplo Sprint 1: - Nome: Setup e Estrutura Básica - Duração: 3 semanas - Objetivo: Estabelecer base técnica do projeto - Issues: 8-10 user stories
Boards Kanban
Configuração do Board: - To Do: Histórias não iniciadas - In Progress: Em desenvolvimento - Review: Em revisão/teste - Done: Concluídas e validadas
WIP Limits: - To Do: Sem limite - In Progress: Máximo 2 por pessoa - Review: Máximo 3 - Done: Sem limite
3. Integração Contínua e Entrega Contínua (CI/CD)
Conceitos Fundamentais
Integração Contínua (CI): - Integração frequente de código - Builds automáticos - Testes automatizados - Detecção precoce de problemas
Entrega Contínua (CD): - Deploy automático - Ambientes de teste - Rollback automático - Entrega confiável
Benefícios do CI/CD
- Qualidade: Detecção precoce de bugs
- Velocidade: Deploy mais rápido
- Confiabilidade: Processo padronizado
- Colaboração: Integração contínua
- Feedback: Validação imediata
Pipeline de CI/CD
Estágios do Pipeline: 1. Build: Compilação e preparação 2. Test: Execução de testes 3. Deploy: Publicação em ambiente 4. Verify: Validação da entrega
4. CI/CD com GitLab
GitLab CI/CD
Características: - Pipeline integrado - Executores configuráveis - Ambientes múltiplos - Integração com GitLab
Arquivo .gitlab-ci.yml:
stages:
- build
- test
- deploy
build:
stage: build
script:
- hugo --minify
artifacts:
paths:
- public/
deploy:
stage: deploy
script:
- rsync -av public/ $DEPLOY_PATH
only:
- mainConfiguração para Hugo
Build do Site: - Instalação do Hugo - Geração do site estático - Minificação de assets - Otimização de imagens
Deploy Automático: - Upload para servidor - Configuração de domínio - SSL automático - Cache de CDN
5. Hugo: Gerador de Sites Estáticos
Características do Hugo
- Velocidade: Build extremamente rápido
- Simplicidade: Sintaxe Markdown
- Flexibilidade: Temas e layouts
- Performance: Sites estáticos otimizados
Estrutura do Projeto Hugo
portfolio/
├── archetypes/
├── content/
│ ├── about/
│ ├── projects/
│ └── _index.md
├── data/
├── layouts/
├── static/
├── themes/
├── config.toml
└── .gitlab-ci.yml
Configuração Básica
config.toml:
baseURL = "https://portfolio.cefetmg.br"
languageCode = "pt-br"
title = "Portfólio da Equipe"
theme = "hugo-theme"
[params]
description = "Portfólio dos alunos de Engenharia de Computação"
author = "Equipe Portfólio"🛠️ Atividades Práticas
Tarefa 1: Sprint Planning do Sprint 1
Objetivo
Planejar o primeiro sprint do projeto Portfólio
Passos
- Preparação do Product Backlog:
- Criar issues no GitLab
- Definir user stories
- Estabelecer critérios de aceitação
- Priorizar itens
- Sprint Planning:
- Selecionar itens para o sprint
- Estimar esforço das tarefas
- Atribuir responsáveis
- Definir objetivo do sprint
- Configuração do Board:
- Criar milestone para Sprint 1
- Configurar board Kanban
- Estabelecer WIP limits
- Organizar issues
Critérios de Sucesso
Tarefa 2: Desenvolvimento do Sprint 1
Objetivo
Implementar as funcionalidades planejadas no Sprint 1
Passos
- Setup do Ambiente:
- Instalar Hugo
- Configurar tema
- Estrutura de pastas
- Configuração inicial
- Desenvolvimento:
- Página inicial
- Navegação básica
- Layout responsivo
- Conteúdo inicial
- Testes:
- Validação local
- Testes de responsividade
- Verificação de links
- Performance básica
Critérios de Sucesso
Tarefa 3: Configuração de CI/CD
Objetivo
Implementar pipeline de CI/CD para deploy automático
Passos
- Configuração do Pipeline:
- Criar arquivo .gitlab-ci.yml
- Configurar stages
- Definir scripts de build
- Configurar deploy
- Teste do Pipeline:
- Commit inicial
- Verificação do build
- Teste de deploy
- Validação do site
- Otimização:
- Cache de dependências
- Paralelização de jobs
- Notificações
- Monitoramento
Critérios de Sucesso
Tarefa 4: Sprint Review e Retrospectiva
Objetivo
Avaliar o sprint e identificar melhorias
Passos
- Sprint Review:
- Demonstração do incremento
- Feedback dos stakeholders
- Validação de critérios
- Ajustes no backlog
- Sprint Retrospective:
- Análise do processo
- Identificação de problemas
- Sugestões de melhorias
- Plano de ações
- Documentação:
- Registro de lições aprendidas
- Atualização de processos
- Preparação para próximo sprint
- Métricas de performance
Critérios de Sucesso
📖 Material de Apoio
Recursos Necessários
- GitLab CI/CD Documentation
- Hugo Documentation
- Scrum Guide
- Templates de user stories
Templates Disponíveis
- Template de User Story
- Template de Sprint Planning
- Template de .gitlab-ci.yml
- Template de config.toml
📝 Avaliação
Questionário Google Forms
- Momento: Final da aula
- Objetivo: Verificar compreensão dos conceitos
- Conteúdo: Sprints, CI/CD, GitLab, Hugo
- Link: Questionário da Aula 9
Critérios de Avaliação
- Execução: Qualidade do Sprint 1
- Implementação: Funcionamento do CI/CD
- Colaboração: Trabalho em equipe
- Entrega: Incremento funcional
🔗 Links Importantes
- Questionário da Aula 9
- GitLab CI/CD Documentation
- Hugo Documentation
- Scrum Guide
- GitLab da Disciplina
📋 Próximos Passos
Para os Alunos
Para a Próxima Aula
- Aula 10: Modelos Ágeis Alternativos
- Foco: Kanban, XP, Lean
- Pré-requisito: Sprint 1 concluído
📊 Checklist da Aula
Professor
Alunos
🎯 Projeto Portfólio: Sprint 1
Objetivo do Sprint
Estabelecer a base técnica e organizacional do projeto Portfólio
Entregas Planejadas
- Setup Hugo: Ambiente de desenvolvimento configurado
- Página Inicial: Layout e conteúdo básico
- Navegação: Menu e estrutura de páginas
- CI/CD: Pipeline de deploy automático
- Documentação: Guias de uso e contribuição
Métricas de Sucesso
- Velocidade: 8-10 story points
- Qualidade: 0 bugs críticos
- Deploy: Site acessível online
- Feedback: Stakeholders satisfeitos
Próximo Sprint
- Sprint 2: Páginas de Perfil
- Foco: Conteúdo individual dos membros
- Duração: 3 semanas
Próxima aula: Aula 10 - Modelos Ágeis Alternativos