1.完整的团队(全功能团队):XP项目的所有参与者(开发人员、业务分析师和测试人员等)一起工作在一个开放的场所中,他们都是同一个团队的成员,这个场所的墙壁上挂着大幅的显眼的图表和他显示当前进度的其他东西。
    2.计划游戏(迭代开发):计划是持续的、循序渐进的。每2周,开发人员就为下2周估算候选特性的成本,而客户则根据成本和业务价值来选择要实现的特性。
    3.客户验收测试(Showcase):选定每个特性的同时,客户还要定义自动化测试来表明特性是可行的。
    4.简单设计(KISS):团队保持设计恰好和当前的系统功能相匹配,它通过了所有的测试,不包含任何重复,可以表达编写者想要表达的所有意图,并包含尽可能少的代码。
    5.结对编程(pair):所有软件都是由两个程序员结对一起在同一台机器上构建的。
    6.测试驱动开发(TDD):工作周期短,测试先行,再编码实现功能。
    7.改进设计(重构 & Clean Code):随时改进糟糕的代码,保持代码尽可能干净,有表达力。
    8.持续集成(CI/CD):团队总是可以使系统逐步集成和完善。
    9.集体代码所有权:任何结对的程序员都可以在任何时候改进任何代码。
    10.编码标准:系统中所有的代码看起来就像是由一个非常胜任的人写成的。
    11.隐喻:团队提出一个程序工作原理的共识。
    12.可持续的速度:只有持久,团队才有获胜的希望。他们以能够长期维持的速度努力工作。他们保存精力,他们把项目看作是马拉松,而不是全速冲刺。


    From 《敏捷软件开发》