O documento descreve princípios e práticas de duas metodologias ágeis: Extreme Programming (XP) e Scrum. XP foca em planejamento, projeto, codificação, testes em pares e releases frequentes. Scrum utiliza sprints curtos, backlogs, papéis definidos e envolvimento do cliente.
2. Metodologias Ágeis
– Você usa controle de versão ?
– Você consegue fazer build em um passo apenas ?
– Você faz builds diários ?
– Tem um catálogo de bugs ?
– Você conserta os bugs antes de escrever código novo ?
– Seu cronograma está atualizado ?
– Você tem especificações ?
– Os programadores tem um lugar tranquilo para trabalhar ?
– Você usa as melhores ferramentas disponíveis no mercado ?
– Você tem testadores ?
– Os candidatos a empregos fazem código durante a entrevista ?
– Você faz teste de usabilidade ?
– Você tem testes automatizados ?
– Você faz refactoring ?
2
3. Extreme Programming - XP
• Planejamento
– Escrever user stories
– Criar o cronograma de releases
– Faça releases frequentes e pequenas
– Meça a velocidade do projeto
– Divida o projeto em iterações
– A cada iteração faça um planejamento da fase
– Mova as pessoas pelo projeto
– Faça uma stand-up meeting todos os dias
– Concerte a XP quando precisar
3
4. Extreme Programming - XP
• Projeto
– Simplicidade
– Escolha uma metáfora para o sistema
– Use cartões CRC (Classe – Responsabiliade - Colaboração) nas
reuniões de projeto
– Use spike solutions para reduzir o risco
– Nenhum recurso é adicionado antecipadamente
– Faça refactoring sempre que possível
4
5. Extreme Programming - XP
• Codificação
– O cliente está SEMPRE disponível
– O código deve aderir a padrões
– Codifique o caso de teste ANTES
– Toda produção de código usa Pair Programming
– Apenas uma dupla integra código cada vez
– Integre com freqüência
– O código tem propriedade coletiva
– Deixe a otimização por último
– SEM horas extras
5
6. Extreme Programming - XP
• Testes
– Todo o código deve ter casos de testes
– Todo código deve passar em todos os testes
– Quando um bug é achado, crie um caso de testes
– Os testes de aceitação são executados sempre e os resultados são
publicados
6
12. Scrum
• É um esqueleto de processo que inclui práticas e papéis pré-definidos
• Utiliza-se sprints de 15 a 30 dias
• Documentos
– Product backlog
– Sprint backlog
– Burn Down
• Papéis
– Porcos
• Product Owner
• ScrumMaster
• Team
– Galinhas
• Usuários
• Stakeholders
• Gerentes 12