xp 中包含了5个指导开发的价值观:

  • 沟通:每当你遇到一个问题,首先问自己这个问题是不是缺乏沟通引起的,你需要什么样的沟通来解决该问题?
  • 简单:简单而又可能有效
  • 反馈:知道得越早,就可以调整得越早
  • 勇气:面对恐惧
  • 尊重:同时提高软件开发的人性和生产率

原则: - 人性化:成为一名优秀的开发者需要什么:基本安全、成就感、归属感、成长、亲切感 - 经济学:解决最高优先级的业务需求会使项目的价值最大化。金钱的时间价值 - 互惠互利:自动化测试、消除复杂性、选择一致的名称 - 自相似性: - 改进:做到你今天所能做到的最好 - 多样性:团队需要多样性 - 反省: - 流:频繁部署 - 机遇 - 冗余:困难的问题应该用不同的方法解决 - 失败:失败如果能产生知识,就是有价值的。失败好过无休止的争论 - 质量:用一些小的安全的步骤来高效实现大的改变 - 婴儿步:小步前进 - 接受责任:责任不能被指定,只能被接受

7章 基本实践:

  • 坐在一起
  • 完整团队:将拥有项目成功所必须的各种技能和视角的人都包含进团队
  • 信息工作空间:
  • 充满活力工作
  • 结对编程:结对,分析、设计、测试。
  • 结对与个人空间:注意个人距离;防止异性情感;
  • 故事:使用客户可见的功能单元进行计划。在故事生命周期早期很早就就进行估算
  • 周循环:一次计划一周的工作
  • 季度循环:
  • 松弛
  • 10分钟构建
  • 持续集成
  • 测试优先编程: 测试-》编码-》重构-》测试-》编码-》重构
  • 增量设计:尽早做大的决策和推迟所有小的决策

8章:启程

  • 为实践绘图

9章:扩展实践

  • 真实客户参与:将那些生活或业务受到开发系统影响的人纳入到团队中
  • 增量部署:
  • 团队连续性:将搞笑的团队凝聚在一起。将人抽象成物品:即插即用的编程单位。不能忽略关系和信任
  • 收缩团队:
  • 根源分析:每次开发发现一个缺陷,都要同时排除这个缺陷和产生它的原因。对为什么发生问题提出5个疑问: - 为什么我们会遗漏这个缺陷 - 为什么我们不知道 - 为什么他不是这个团队中的一部分 - 为什么没有其他人知道如何维护 - 为什么不是管理上优先考虑的事情
  • 共享代码:集体所有制
  • 代码和测试:
  • 单一代码库
  • 每日部署

10章:完成 XP 团队

11章:约束理论

约束理论:认为任何一个系统在某一时间只存在一个约束(偶尔两个),要提高系统的整体吞吐率,首先要找到那个约束。

12章:计划:管理范围

事情进展不顺利的时候就是我们最需要坚持价值观和原则的时候,同时修改我们已有的实践去尽可能地保持效率。

13章:尽早测试、经常测试、自动测试

缺陷成本递增率(DCI):越早发现缺陷,所需的花费就越少

14章:时间的价值

增量设计

15章:增大XP规模

  • 人数:大问题转化为小问题;应用简单的解决方案;如果还有问题应用复杂的解决方案
  • 投资:
  • 时间:自动化测试和增量设计
  • 问题的复杂性:
  • 解决方案的复杂性:分解复杂性,同时持续交付
  • 故障的后果: