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%承诺
- “昨天天气”会快速修正速度估计
团队分裂:
- 完成首个发布后拆分
- 每个子团队有自己的故事流
- 客户代表
关键原则
- 规划是持续过程:不是项目开始的一次性工作
- 测量驱动管理:通过数据发现问题根源
- 简单工具优先:索引卡片胜过复杂软件
- 客户参与决策:客户必须有权做业务决策
- 透明沟通:可视化所有关键信息
- 适应而非预测:根据反馈调整计划
- 信任团队:开发者自己估算和认领任务
与其他知识的关联
- Head-First-设计模式 - 设计模式基础
- Software-Architect-Bootcamp-软件架构师训练营 - 架构师技能
- 《敏捷软件开发》-原则-模式与实践-Robert-C-Martin - 敏捷原则
- 《Scrum敏捷软件开发》-Succeeding-with-Agile-Mike-Cohn - Scrum对比
- ThoughtWorks实践集锦-第二册-实效敏捷 - 实战案例
行动要点
- 采用”昨天天气”作为估算基准
- 让用户故事驱动规划
- 保持迭代节奏稳定
- 可视化关键指标
- 培养客户决策能力
- 建立快速反馈循环
- 当出现问题时减速而非加速
参考
- Foreword by Tom DeMarco
- XP Alliance resources
- Kent Beck’s “Extreme Programming Explained”
- Martin Fowler’s articles on XP