跳转到内容

什么是敏捷开发?

敏捷是围绕一个共同押注而构建的一族方法的总称:软件太过难以预测,无法在前期详尽规划,所以要以小切片交付、倾听反馈,并持续调整。

本页介绍背景。如果你已经全都了解,可以略读到East Agile Tracker 如何对应敏捷

2001 年 2 月,十七位软件从业者——Kent Beck、Martin Fowler、Robert Martin、Ron Jeffries 等人——在犹他州的一处滑雪小屋会面,写下了他们的共识。他们称之为敏捷宣言。它共四行:

我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:

  • 个体和互动高于流程和工具
  • 可工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划

也就是说,尽管右项有其价值,我们更重视左项的价值。

就这么多。一页前言、十二条支撑性原则,以及上面那四行。它是现代软件实践中最有影响力的文献。

在四项价值观背后,宣言的十二条原则阐明了“敏捷”日常究竟是什么样子:

  1. 最高优先级是通过尽早、持续地交付有价值的软件来满足客户。
  2. 欢迎需求变化,即使到了开发后期。敏捷过程利用变化为客户创造竞争优势。
  3. 频繁地交付可工作的软件——以周为单位,而非以月。
  4. 业务人员和开发人员必须每天协同工作。
  5. 围绕有积极性的个体来构建项目。给他们所需,并信任他们把事情做成。
  6. 传递信息最有效的方式是面对面交谈。
  7. 可工作的软件是进度的首要度量标准。
  8. 敏捷过程倡导可持续的开发——一种可以无限期保持的恒定节奏。
  9. 对技术卓越和良好设计的持续关注会增强敏捷性。
  10. 简单——尽量减少不必做之事的艺术——至关重要。
  11. 最好的架构、需求和设计来自自组织的团队。
  12. 团队定期反思如何变得更有效,然后据此调整和校准自身行为。

“敏捷”是一把伞。在它之下坐落着若干截然不同的方法论:

  • eXtreme Programming(XP)——这一族中要求最高的。结对编程、TDD、持续集成、现场客户、小步发布。见我们的 XP 页面
  • Scrum——称作 sprint 的时间盒迭代、每日站会、具名角色(Product Owner、Scrum Master)。在工程实践上比 XP 轻。
  • Kanban——可视化工作流、限制在制品、优化流动。没有时间盒;拉动而非推动。
  • Lean——借自丰田生产系统:消除浪费、优化整体、快速交付、内建质量。

这些方法相互重叠并组合。大多数实战团队会从这四者中各取所需。East Agile Tracker 倾向于 XP——见 eXtreme Programming——但它所提供的大部分东西对任何敏捷流派都管用。

几个值得点名的顽固误解:

  • **敏捷不是“不做规划”。**计划更小、更短,但规划是持续不断的。
  • **敏捷不是“没有文档”。**写需要写的。宣言说的是可工作的软件详尽的文档有价值——而非文档不好。
  • **敏捷不是 Scrum。**Scrum 是一种敏捷方法。敏捷方法有好几种。
  • **敏捷不是一个工具。**没有任何工具能让你变得敏捷。敏捷是一种工作方式。工具(包括这一款)有帮助;它们不能替代。

East Agile Tracker 是围绕上述原则设计的。对应关系如下:

PrincipleHow the tracker supports it
Continuous delivery1–4 周的迭代;基于速率的自动规划;作为一等故事类型的发布。
Welcome change随时重排待办列表;故事在迭代间自由移动;没有“迭代锁定”。
Working software as the measure速率默认计入已接受的点数——只有已交付、可工作的工作才算数。
Sustainable pace速率不是一个目标;它是一项观测。系统用你实际做到的产能来规划下一个迭代。
Reflection逐迭代的分析:燃尽、拒绝率、周期时间、预测。
Self-organizing teams角色被刻意精简:owner / member / viewer。由团队决定。
Simplicity详情面板只有一屏。看板装得下一页。我们抵制那些分散交付注意力的功能。

宣言写于 2001 年。自那以后,软件开发迎来了一种新型参与者:AI 智能体。

我们认为智能体应当置身敏捷团队之中——作为具名参与者,拥有自己的角色,与人类并肩做真正的工作。原则依旧成立。个体和互动如今把智能体参与者也包括在内。自组织的团队如今也包括决定引入哪些智能体、以及允许它们做什么。反思如今也包括审视活动日志中智能体的贡献,并校准它们所做的工作。

East Agile Tracker 的打造正是为了让这件事切实可行。每个故事都可以由人类或智能体担任负责人。每条审计日志条目都归因于真实的操作者。智能体所采取的每一个动作都是可见、可评审、可撤销的。

East Agile 打造。