起源

2001 年,17 位软件从业者在美国犹他州聚会,发表了《敏捷软件开发宣言》。

四组价值主张(左侧被倡导,右侧也被认可但优先级较低):

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

注意:"高于"不是"取代"——右侧的价值依然存在,但当两者冲突时,优先左侧。

常见的误解

误解一:"敏捷 = 没有文档"

宣言说的是"可工作的软件高于详尽的文档",不是"不写文档"。

敏捷反对的是:为了流程而写的、写完就没人看的、冗长的文档。

好的敏捷团队依然需要:

  • 架构决策记录(ADR);
  • API 文档;
  • 必要的用户文档。

只是更强调简洁够用和保持更新。

误解二:"敏捷 = 不需要计划"

宣言说"响应变化高于遵循计划",不是"不做计划"。

敏捷的做法是:

  • 做短期、滚动的计划(如每两周一个迭代);
  • 保持计划的可调整性;
  • 但仍然有产品愿景和路线图作为长期方向。

误解三:"敏捷 = 快"

敏捷的目标不是"更快交付",而是"更快获得反馈并调整方向"。

在需求不确定的环境中,敏捷能减少"做错东西"的浪费——这才是它真正的价值。

如果需求已经非常明确、稳定,敏捷带来的收益会减少,传统的计划式开发未必更差。

误解四:"敏捷就是 Scrum / 站会 / 看板"

Scrum、Kanban、XP 是具体框架,敏捷是价值观和原则。

很多团队"做了 Scrum 的所有仪式"(站会、评审、回顾、计划会),却没有任何敏捷的实质:

  • 站会变成了"汇报给领导";
  • 迭代成了"每两周交付一批任务",但从不根据反馈调整方向;
  • 回顾会从未产生任何实际的改进。

这被称为"僵尸 Scrum"(Zombie Scrum)或"货物崇拜敏捷"(Cargo Cult Agile)——模仿形式,不解其意。

误解五:"敏捷不需要管理者"

敏捷强调自组织团队,但不等于没有管理。

管理者的角色从"分配任务和监督"转变为:

  • 移除障碍;
  • 提供资源和上下文;
  • 保护团队免受外部干扰;
  • 培养人才。

十二条原则(节选)

宣言背后有十二条原则,其中几条特别值得注意:

  • "尽早并持续交付有价值的软件" —— 强调频繁交付;
  • "欢迎需求变化,即使在开发后期" —— 敏捷视变化为竞争优势;
  • "业务人员和开发人员必须每天一起工作" —— 强调协作;
  • "可工作的软件是进度的首要度量标准" —— 而非完成的任务数或文档页数;
  • "简洁——最大化未做工作量的艺术——是至关重要的" —— 这与 YAGNI 一脉相承;
  • "团队定期反思如何更有效,并相应调整行为" —— 这是回顾会的依据。

什么时候敏捷不适用

诚实地说,敏捷不是万能的。

以下情况,敏捷的收益可能有限:

  • 需求极其明确且稳定(如某些合规性改造、标准化部署);
  • 高度安全关键的系统(如航空、医疗)——需要大量前置验证和文档(虽然也有"敏捷 + 严格验证"的实践);
  • 合同约束严格的外部项目(固定范围、固定价格的合同,与敏捷的"拥抱变化"存在张力);
  • 团队成员分散且协作成本过高。

一个务实态度

从原则出发,而非从仪式出发。

问自己:

  • 我们是否更快获得了反馈?
  • 我们是否能应对变化?
  • 团队的协作是否更顺畅?

如果答案是否定的,那么即便你每天开站会、用着看板,也未必是"敏捷"。

说明:本文为软件方法论的知识整理。