Programação Extrema (XP) Explicada – Acolha as mudanças - II
Seguem comentários da minha leitura do livro "Programação Extrema (XP) Explicada – Acolha as mudanças" do Kent Beck* - segunda parte.
SEÇÃO 2 – A SOLUÇÃO
São doze práticas interdependentes que acompanham o XP assim resumidas:
Estratégia de Projeto
SEÇÃO 2 – A SOLUÇÃO
São doze práticas interdependentes que acompanham o XP assim resumidas:
- O Jogo do Planejamento
- Um jogo de decisões entre a área de negócios e área técnica
- Decisões sobre:
- Negócios - Escopo, prioridade, composição das versões, datas de entrega
- Técnica - Estimativas, consequencias, processo, cronograma detalhada
- Consequencias está relacionada com os impactos de negócios ter escolhido, por exemplo, uma tecnologia específica.
- Entregas Freqüentes
- Metáfora
- Todo projeto é guiado por uma metáfora
- A metáfora fornece uma visão geral e simples do software
- Uma alternativa à arquitetura que também fornece uma visão geral mas técnica do software
- Projeto Simples
- Executa testes a qualquer momento
- Não tem lógica duplicada
- Expressão todas as intenções aos programadores
- Menor número possível de classes e métodos (cada parte justifica sua razão de existir)
- Testes
- Com o tempo o programa se torna cada vez mais confiável
- Testes apenas para o que pode falhar
- Refatoração
- Refatorar é simplificar mais ainda o código com os testes ainda executando
- Pós-teste
- Programação em Pares
- Dois papéis: um pensar melhor forma de implementar enquanto o outro pensa mais estrategicamente (outros casos de testes por exemplo)
- Dinâmica, numa manhã pode fazer par com um e na tarde com o outro
- A motivação pode ser a falta de conhecimento numa determinada tarefa, podendo fazer com quem conhece mais
- Propriedade Coletiva
- Integração Contínua
- No máximo em algumas horas de cada dia de desenvolvimento, os testes são integrados e executados
- Integrar uma parte das modificações de cada vez antecipa problemas e permite rastrear de forma mais ágil quem ou o quê gerou as falhas
- É preciso ter um ambiente de integração contínua: máquina e servidor dedicados
- Semana de 40 Horas
- Horas extras por mais de uma semana são o sintoma de um problema sério no projeto
- “Mas ninguém consegue agüentar 60 horas por semana durante muitas semanas, e ainda estar disposto, criativo, cuidadoso e confiante. Não fala isso.”
- Cliente Presente
- Um “cliente real” próximo da equipe de desenvolvimento para:
- Responder questões
- Resolver disputas
- Definir prioridades de menor escala
- Um “cliente real” é o futuro usuário do software
- Padrões de Codificação
- Programação em Pares
- Seria lenta se não houvesse:
- Padrões de Codificação – evita discussões mesquinhas;
- Semana de 40 Horas – evita conflitos pelo estresse;
- Testes (antes) – alinha os pensamentos antes da implementação;
- Metáfora;
- Projeto Simples.
- Quem programa sozinho sob pressão gera mais erros, retrabalho e desobedece as práticas
- Refatoração
- Seria difícil se não houvesse:
- Propriedade Coletiva
- Padrões de Codificação
- Programação em Pares
- Projeto (Design) Simples
- Testes
- Integração Contínua
- Semanas de 40 Horas
- Métricas
- Basta apenas três ou quatro por vez
- Geralmente num mural
- Temporárias
- Qualquer métrica perto de 100% é inútil
- Devem incentivar a mudança
- Funções
- Treinador
- Procura desenvolver na equipe a maturidade para tomar e assumir decisões
- Auxilia novos, refatoração e testes
- Explica o processo
- Procura fazer reuniões com lanche e brinquedos
- Diminuir a tensão das reuniões
- Rastreador
- Mantém a memória das estimativas viva (útil)
- Torna real o aprendizado contínuo por meio dessa memória
- O tempo de rastreamento deve ser efetivo, mas sem aborrecer os programadores
- Intervenção
- Decisões impopulares às vezes são necessárias
- Tipos de decisões
- Saída de membro da equipe, porque não está funcionando
- Alteração do processo
- Matar o projeto
- Espírito comunitário
- Lugar comum para relaxar
- Funciona se as pessoas se dão bem
- É necessário haver rotatividade
- No começo pode ser comum haver mais tutoria
- É um instrumento para melhorar a comunicação da equipe e não apenas o código!
Estratégia de Projeto
- XP adota uma abordagem para reduzir o custo da mudança em produção diferente do tradicional
- “Se você sabe exatamente o que vai acontecer, e sabe exatamente como resolver isso, normalmente é melhor adicionar aquilo que você precisa agora e também que precisará mais tarde”.
- Estratégia tradicional é problemática
- Procura diminuir a probabilidade e o custo de refazer algo
- Razão: incerteza
- A funcionalidade antecipada nunca vai ser usada (o futuro nunca chega)
- Aprende-se uma melhor forma de fazer quando chegar o futuro
- Custosa
- Arcar com o custo de remover o excesso
- Arcar com o custo de manter uma complexidade que não agrega valor
- Entendimento
- “O segredo é que risco é dinheiro da mesma forma que tempo é dinheiro. (...) Se existe incerteza suficiente, o valor da opção de esperar é alto o suficiente para que seja melhor esperar.”.
- “Quando você acrescenta mais ao projeto hoje, você aumenta a sobrecarga do sistema. (...) Há mais coisas para testar, entender e explicar.”
- “Você também não consegue avaliar o custo de algo que acontecerá amanhã. (...) e a probabilidade (...)”.
- “Assim, o custo de tomar uma decisão de projeto hoje é igual ao custo de tomar a decisão somada aos juros que pagamos sobre esse custo mais a inércia que isso adicionar ao sistema”.
- “Os problemas de hoje já são suficientes”.
- Solução: estratégia de programação simples através dos seguintes passos
- Crie o teste;
- Projete e implemente o suficiente para o teste;
- Simplifique (refatore) quando ver a oportunidade.
- Repita os passos 1 e 2.
- Não ignore os diagramas, mas precisam ser:
- Poucos
- Aos que sabem usá-los
- Descartáveis
- Diagrama é uma forma de comunicar assim como os casos de testes
- Testes são uma forma de comunicação viva
- Equipe XP possui um testador dedicado
- Tipos de testes
- Unidade
- Feito por programador
- Alto nível de intolerância: 100% ou nada
- Funcional
- Feito por cliente
- Focado em histórias
- Nível maleável de tolerância
- Paralelo
- Comparativo entre versões
- Estresse
- Macaco
- Verifica a reação com entradas sem sentido
Comentários
Postar um comentário