contínua e adiantada de software com valor agregado • Mudanças nos requisitos são bem-vindas, mesmo que tardias • Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência a intervalos menores • Pessoas de negócio e desenvolvimento devem trabalhar juntas • Construa software em torno de indivíduos motivados e confie neles para fazer o trabalho • A melhor forma de transmitir informações para e entre a equipe de desenvolvimento é a comunicação face a face
de progresso • Desenvolvimento sustentável leva a um ritmo constante indefinido • Contínua atenção à excelência técnica e bom design aumenta agilidade • Simplicidade – a arte de maximizar o que não é feito – é essencial • Equipes são auto-organizáveis • Regularmente a equipe se reúne para avaliar melhorias, elucida como se tornar mais eficaz e refina seu comportamento
desnecessária • Começar mais do que se pode completar • Atraso no processo de desenvolvimento de software • Requisitos não claros ou que mudam frequentemente • Burocracia • Comunicação lenta ou não efetiva • Trabalho feito parcialmente • Defeitos e problemas de qualidade • Mudança de contexto
• Testes especificam comportamento e documentam o código • Testes dão segurança para se fazer modificações • Integre componentes cedo e frequentemente • Não tolere defeitos, corrija-os o mais rápido possível • Crie conhecimento • Knowledge brief • Wiki • Revisões de código • Documentação • Diagramas
responsável” • Leve em consideração flexibilidade no design • Entregue rapidamente • Foque na eficiência do fluxo, não dos recursos • Evite o “não sou eu quem faço” • Simplicidade é vital • “Quanto tempo demora para lançar 1 linha de código para o mercado?”
desafios • Dê respaldo ao time • Otimize o todo • Saiba qual o propósito do produto • Evite tomar decisões que otimizem módulos específicos • Pense no longo prazo