极限编程XP 的12个最佳实践

1. 现场客户 ( On-site Customer )
要求至少有一名实际的客户代表在整个项目开发周期在现场负责确定需求、回答团队问题以及编写功能验收测试。
2. 代码规范 ( Code Standards )
强调通过指定严格的代码规范来进行沟通,尽可能减少不必要的文档。
3. 每周40小时工作制 ( 40-hour Week )
要求项目团队人员每周工作时间不能超过40小时,加班不得连续超过两周,否则反而会影响生产率。
4. 计划博弈 ( Planning Game )
要求结合项目进展和技术情况,确定下一阶段要开发与发布的系统范围。
5. 系统隐喻 ( System Metaphor )
通过隐喻来描述系统如何运作、新的功能以何种方式加入到系统。它通常包含了一些可以参照和比较的类和设计模式。XP不需要事先进行详细的架构设计。
6. 简单设计 ( Simple Design )
认为代码的设计应该尽可能的简单,只要满足当前功能的要求,不多也不少。
7. 测试驱动 ( Test-driven )
强调”测试先行”。在编码开始之前,首先将测试写好,而后再进行编码,直至所有的测试都得以通过。
8. 代码重构 ( Refactoring )
强调代码重构在其中的作用,认为开发人员应该经常进行重构,通常有两个关键点应该进行重构:对于一个功能实现和实现后。

  1. 成对编程 ( Pair Programming )
    认为在项目中采用成对编程比独自编程更加有效。成对编程是由两个开发人员在同一台电脑上共同编写解决同一问题的代码,通常一个人负责写编码,而另一个负责保证代码的正确性与可读性。
  2. 集体代码所有制(Collective Ownership)
    认为开发小组的每个成员都有更改代码的权利,所有的人对于全部代码负责。
  3. 持续集成 ( Continuous Integration )
    提倡在一天中集成系统多次,而且随着需求的改变,要不断的进行回归测试。因为,这样可以使得团队保持一个较高的开发速度,同时避免了一次系统集成的恶梦。
  4. 小型发布 ( Small Release )
    强调在非常短的周期内以递增的方式发布新版本,从而可以很容易地估计每个迭代周期的进度,便于控制工作量和风险;同时,也可以及时处理用户的反馈。