Planning Extreme Programming

作者: Kent Beck, Martin Fowler
出版社: Addison Wesley
出版日期: 2000年10月12日
页数: 104页
ISBN: 0-201-71091-9

书籍简介

《Planning Extreme Programming》是XP(极限编程)领域的经典著作,由XP创始人Kent Beck和著名技术作家Martin Fowler合著。本书专注于XP项目的规划实践,核心观点是:规划不是一次性事件,而是贯穿整个项目生命周期的持续过程。

Tom DeMarco在序言中评价:“XP是我们领域当前最重要的运动。我预测它将与SEI的CMM模型在上个世纪的重要性相当。“

核心主题

1. 四大变量平衡

XP规划围绕四个关键变量展开:

  • 成本 (Cost)
  • 质量 (Quality)
  • 时间 (Time)
  • 范围 (Scope)

这四个变量相互关联,无法同时固定所有变量。当出现意外时,必须牺牲其中一个。传统合同往往试图固定三个变量,但剩余的那个(通常是质量)会在压力下降级。

2. 用户故事(User Stories)

用户故事是XP规划的基本单元:

  • 以自然语言描述功能需求
  • 包含可执行的验收标准
  • 易于估算优先级和规模

好故事的原则:

  • 来自用户的角度表述
  • 大小适中(一个迭代内可完成)
  • 独立可测试
  • 可估算

3. 估算实践

理想时间 (Ideal Time):

  • 不考虑会议、邮件等干扰,纯编码所需时间
  • 作为估算基准单位

估算方法:

  • 基于”昨天天气”——参考历史迭代速度
  • 类比法:与已完成的可比工作进行比较
  • 避免因客户压力而低估

4. 迭代规划

迭代长度:

  • 通常1-2周
  • 短迭代提供快速反馈
  • 稳定节奏有助于预测性

迭代规划会议:

  • 团队理解每个故事
  • 列出完成任务
  • 开发者自主认领任务
  • 评估技术风险

5. 发布规划

发布计划制定者:

  • 客户决定优先级
  • 开发团队负责估算
  • 项目经理协调

关键实践:

  • 定期重建发布计划
  • 根据实际速度调整
  • 可视化进度图表

6. 跟踪与可视化

常用图表:

  • 验收测试定义与通过情况
  • 生产代码与测试代码量比
  • 集成频率
  • 缺陷密度
  • 故事进度

原则:选择必要的图表,不要过度图表化。

7. 应对风险

红旗信号:

  • 缺少估算
  • 客户不愿做决策
  • 缺陷报告激增
  • 未能端到端测试
  • 构建频繁失败
  • 客户未能完成验收

应对策略:减速直到控制局势,然后再加速。

8. 团队变化处理

新人加入:

  • 给予1-2个迭代适应
  • 配对编程学习
  • 阅读代码和测试用例
  • 与客户交流

人员离开:

  • 下一个迭代减少20%承诺
  • “昨天天气”会快速修正速度估计

团队分裂:

  • 完成首个发布后拆分
  • 每个子团队有自己的故事流
  • 客户代表

关键原则

  1. 规划是持续过程:不是项目开始的一次性工作
  2. 测量驱动管理:通过数据发现问题根源
  3. 简单工具优先:索引卡片胜过复杂软件
  4. 客户参与决策:客户必须有权做业务决策
  5. 透明沟通:可视化所有关键信息
  6. 适应而非预测:根据反馈调整计划
  7. 信任团队:开发者自己估算和认领任务

与其他知识的关联

行动要点

  1. 采用”昨天天气”作为估算基准
  2. 让用户故事驱动规划
  3. 保持迭代节奏稳定
  4. 可视化关键指标
  5. 培养客户决策能力
  6. 建立快速反馈循环
  7. 当出现问题时减速而非加速

参考

  • Foreword by Tom DeMarco
  • XP Alliance resources
  • Kent Beck’s “Extreme Programming Explained”
  • Martin Fowler’s articles on XP