Twelve Mistakes in Agile Manifesto

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

如今,敏捷宣言已成为众多软件团队的圣经。它包含了12个原则,告诉我们软件开发应该如何组织。这些原则是在2001年发明的。总的来说,我喜欢并同意其中的所有原则。然而,在实践中,大多数软件团队对它们存在误解。因此,我在下面总结了实际情况以及我对每个原则的解释。

原则 #1: “我们的最高优先事项是通过及早和持续交付有价值的软件来满足客户的需求。”

通过关注“满足客户”的部分,敏捷忠实信徒们完全忽略了“通过”这一部分。他们认为让客户满意是他们真正的目标,而“持续交付”只是显而易见的帮助,虽然不是至关重要的。然而,事实恰恰相反——只有当软件完美创建和交付时,客户才会满意。如果客户不满意,我们会寻找另一个客户——这才是专业软件团队应该遵循的真正精神。我相信这就是宣言的意思。我们确保我们的过程是“早期和持续的”,这将导致客户满意。我们关注改进我们的过程,而不是满足客户。满意是结果,而不是主要目标。

原则 #2: “欢迎变化的需求,即使是在开发的后期。敏捷流程利用变化为客户带来竞争优势。”

大多数敏捷团队将这里的“欢迎”理解为可以完全忽略任何需求管理的许可。怎样才能欢迎变化最简单?显然,只需摆脱任何需求文档!在这种情况下,任何变化都会被欢迎,因为它不会对任何事情产生影响。实际上根本不会有任何事情会受到影响。但这不是宣言的意思!这个原则意味着我们的需求管理过程如此“强大”,以至于可以随时接受变化。然而,如果实际上需要记录需求,就很难做到这一点。

原则 #3: “从几周到几个月内频繁交付可工作的软件,并倾向于更短时间尺度。”

这个很棒的规则通常被理解为对整个团队的命令。团队必须频繁交付,而程序员则可以几乎不交付或者不知道什么时候交付。我认为宣言在这里强调了个人和团队的责任,要频繁交付。我还认为这种频率应该远远高于“几周”。如今,借助现代技术和工具,我们可以更快地交付——每天几次。

原则 #4: “业务人员和开发人员必须在整个项目中每天一起工作。”

共同工作并不意味着没有明确的规则和流程。然而,大多数团队将这个原则理解为对混乱的合法化。他们认为既然我们一起工作,就不需要再定义角色,不需要记录需求,也不需要关心责任。最终,我们既不知道谁在做什么,也不知道团队的结构。这不是宣言所讲的!“共同工作”意味着加快沟通和缩短响应周期。它绝对不意味着缺乏角色和责任。

原则 #5: “以激励个体为核心构建项目。为他们提供所需的环境和支持,并信任他们完成工作。”

信任是一个伟大的词和概念,但它并不能取代另一个同样伟大的词——控制。大多数敏捷团队认为信任意味着完全没有任何验证、确认、责任和控制。“我们相信我们的程序员能写出完美的代码”——我听过无数次,但这是错误的。这个原则意味着完全不同的事情。它意味着当明确定义的任务分配给执行者时,我们完全委托责任给他们。我们激励他们对最终结果负起完全的责任。然而,我们不帮助他们。相反,我们把他们视为独立自足的个体,能够独立完成指定的任务。

原则 #6: “在开发团队内部和团队之间传递信息的最有效和最有效的方法是面对面的交流。”

面对面并不意味着坐在同一个办公室里。宣言对于同地或分散团队并没有明确要求。显然,在现代软件项目中,虚拟通信(通过视频会议)要比待在同一个国家、同一个城市、同一个办公室和同一个房间里更加有效。因此,大多数敏捷忠实信徒仍然提倡现场开发模式,并以敏捷宣言为证据。这是一个错误;面对面意味着与15年前宣言撰写时的意思完全不同。

原则 #7: “工作的软件是进展的主要衡量标准。”

这并不意味着我们不应该衡量其他任何指标。当然,工作的软件是“主要”指标,但我们还可以并且必须使用许多其他指标。例如,记录、实施和交付的功能数量;或者项目中添加的代码行数(不要笑,读一下);或者找到的错误数量;或者花费的资金数量。还有许多其他度量标准,我们可以使用其中许多。然而,许多敏捷团队犯的一个典型错误就是完全忽视它们。他们说“我们只衡量最终结果。”这不是宣言建议做的。

原则 #8: “敏捷过程促进可持续发展。赞助人、开发人员和用户应能够无限期地保持稳定的速度。”

这并不意味着我们应该无限期地烧掉客户的钱。是的,我们应该以一定的速度进行开发,但我们应始终记住我们花费的是谁的钱——客户的钱。宣言并没有说任何关于开发成本的事情,这可能是因为它是由赚钱的人(程序员)编写的,而不是花钱的人(客户)。因此,我们必须记住,任何项目首先是一个烧钱的机器。这就是为什么团队必须始终测量其烧钱速度,并确保它与团队交付的业务价值相一致。仅

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-17 at 14:53

sixnines availability badge   GitHub stars