xp 中包含了5个指导开发的价值观:
- 沟通:每当你遇到一个问题,首先问自己这个问题是不是缺乏沟通引起的,你需要什么样的沟通来解决该问题?
- 简单:简单而又可能有效
- 反馈:知道得越早,就可以调整得越早
- 勇气:面对恐惧
- 尊重:同时提高软件开发的人性和生产率
原则: - 人性化:成为一名优秀的开发者需要什么:基本安全、成就感、归属感、成长、亲切感 - 经济学:解决最高优先级的业务需求会使项目的价值最大化。金钱的时间价值 - 互惠互利:自动化测试、消除复杂性、选择一致的名称 - 自相似性: - 改进:做到你今天所能做到的最好 - 多样性:团队需要多样性 - 反省: - 流:频繁部署 - 机遇 - 冗余:困难的问题应该用不同的方法解决 - 失败:失败如果能产生知识,就是有价值的。失败好过无休止的争论 - 质量:用一些小的安全的步骤来高效实现大的改变 - 婴儿步:小步前进 - 接受责任:责任不能被指定,只能被接受
7章 基本实践:¶
- 坐在一起
- 完整团队:将拥有项目成功所必须的各种技能和视角的人都包含进团队
- 信息工作空间:
- 充满活力工作
- 结对编程:结对,分析、设计、测试。
- 结对与个人空间:注意个人距离;防止异性情感;
- 故事:使用客户可见的功能单元进行计划。在故事生命周期早期很早就就进行估算
- 周循环:一次计划一周的工作
- 季度循环:
- 松弛
- 10分钟构建
- 持续集成
- 测试优先编程: 测试-》编码-》重构-》测试-》编码-》重构
- 增量设计:尽早做大的决策和推迟所有小的决策
8章:启程¶
- 为实践绘图
9章:扩展实践¶
- 真实客户参与:将那些生活或业务受到开发系统影响的人纳入到团队中
- 增量部署:
- 团队连续性:将搞笑的团队凝聚在一起。将人抽象成物品:即插即用的编程单位。不能忽略关系和信任
- 收缩团队:
- 根源分析:每次开发发现一个缺陷,都要同时排除这个缺陷和产生它的原因。对为什么发生问题提出5个疑问:
- 为什么我们会遗漏这个缺陷
- 为什么我们不知道
- 为什么他不是这个团队中的一部分
- 为什么没有其他人知道如何维护
- 为什么不是管理上优先考虑的事情
- 共享代码:集体所有制
- 代码和测试:
- 单一代码库
- 每日部署
10章:完成 XP 团队¶
11章:约束理论¶
约束理论:认为任何一个系统在某一时间只存在一个约束(偶尔两个),要提高系统的整体吞吐率,首先要找到那个约束。
12章:计划:管理范围¶
事情进展不顺利的时候就是我们最需要坚持价值观和原则的时候,同时修改我们已有的实践去尽可能地保持效率。
13章:尽早测试、经常测试、自动测试¶
缺陷成本递增率(DCI):越早发现缺陷,所需的花费就越少
14章:时间的价值¶
增量设计
15章:增大XP规模¶
- 人数:大问题转化为小问题;应用简单的解决方案;如果还有问题应用复杂的解决方案
- 投资:
- 时间:自动化测试和增量设计
- 问题的复杂性:
- 解决方案的复杂性:分解复杂性,同时持续交付
- 故障的后果: