Planejamento incremental: Os requisitos são gravados em cartões de história e as histórias que serão incluídas em um release são determinadas pelo tempo disponível e sua relativa prioridade.
Projeto simples: Cada projeto é realizado para atender às necessidades atuais, e nada mais.
Refatoração: Todos os desenvolvedores devem refatorar o código assim que encontrarem melhorias de código.
Integração contínua: Assim que o trabalho em uma tarefa é concluído, ele é integrado ao sistema como um todo. Após essa integração, todos os testes de unidade do sistema devem passar.
Ritmo sustentável: Grandes quantidades de horas-extra não são consideradas aceitáveis, pois o resultado final, é a redução da qualidade do código e da produtividade a médio prazo.
Alternativa: E