《敏捷宣言》的第一条认为:从价值上看,“个体和交互胜过流程和工具”。这一点最近在社区内引发诸多讨论。
Jeff Lang 和 Tim Ottingger 在 9 月份的 PragPub 杂志中发表了文章《The Only Agile Tools You’ll Ever Need》,他们提出:
我们马上指出:敏捷的价值观和原则并没有说“不要使用工具!”相反,它们提出:我们必须在考虑工具之前,强调“个体和交互”的重要性。这个原则告诉我们:我们需要团队成员紧密合作,不断交流,共同协作。
接下来,他们讨论了使用工具的成本,最后得出如下结论:
我们使用的工具必须满足如下条件:- 辅助团队(因此强调开发和测试工具)
- 不向团队叠加不必要的负担
- 不替换领导力和管理
- 提供强制性的迅速反馈以辅助团队
- 定位于辅助,而不是推动
Ken Schwaber 在他名为《Telling it Like it Is》的博客中,质疑了微软以及他们在 Visual Studio 2011 中对于“个体”的理解:
很多组织并没有采取自组织和基于团队的方式来实施敏捷。他们仍停留在预测式和自顶向下阶段。不支持这些方式的工具就不好卖。然而,形式应该服从功能。这个世界需要越来越多有创意的、成熟的、高质量的产品,如果我们继续使用同样的预测式制造模式,还包以 Scrum 工具的外衣,我们作为软件职业人士,面对这样一个世界,以后的日子将会越来越不好过。 没有自组织和授权的 Scrum 将是一段死亡之旅,就像瀑布式过程一样,但是是以迭代、增量的方式进行的死亡之旅,而且途中不得松懈。
Michael Huettermann 是最近出版的新书《Agile ALM》的作者,他在 Java.net 上的一篇文章中认为,人和工具同样重要:
要使用 Agile ALM(敏捷应用生命周期管理),应该从价值观和人的角度开始,还有背后的理念。Agile ALM 工具应该帮助催生出敏捷过程。敏捷 ALM 工具必须能够为系统增加价值,并提升利益相关者的协作水平。
James McKay 有不同的看法,他在博客中提出:工具是很重要,但是优秀的软件开发人员会把重点放在他们自己的流程上,而不是供人们使用的工具上:
如果我们真的严肃对待敏捷的口号——“个体和交互胜过流程和工具”,瞄准非开发人员的项目将会占主导地位。可现实并非如此,看起来,很多项目还是要靠程序员来完成的,似乎专为他们而存在。
很多开发人员都比较内向,觉得花时间写代码要比跟人打交道更容易。可要是你想做出一些真得很有用的东西,你就得花时间从电脑后面走出来,发展其他的爱好和兴趣,跟人们交流。不管怎么说,实用软件的想法都是先从这些地方冒出来的。
Ricki Sickenger 是 Syntax Meditation 博客的作者,他在自己的一篇文章中,从流程的角度出发,认为敏捷本身就是一个流程和一系列工具的集合:
TDD、XP、Scrum 和看板(以及其他所有)都是流程和工具。这些东西所有的构成部分都要求你必须无条件遵循流程,不管是什么情况。如果你的敏捷没有实施好,那就是因为你没有遵循流程!
他接着说:
敏捷很棒,像 Scrum、TDD 和 XP 这样的方法论也是很好的推进器,帮助完成从理念到产品发布的转换。但是它们不能解决一个根本问题:糟糕的团队总会失败,不管采用什么流程。
Mike Pearce 在他的博客上从团队角度进一步阐述:
……流程本身没有创建和使用流程的人影响更大,他们使用的工具没有这些一起工作的个体的影响更大,尽管这些个体会创建流程,创建或使用工具来支持自己的工作。有流程很重要,可如果组织中的人会使用这些流程,并能以达成敏捷原则为目的,调整流程来适应自己的需要,那么这些人就更重要。有正确的工具很重要,但是你怎么使用这些工具、以及拿它们来做什么要更为重要。
说到底,《敏捷宣言》重视流程和工具,但是更重视个体和交互。Mike 得出同样的结论是:
雇佣好的人才,然后放手让他们去干,别挡他们的道。
《敏捷宣言》已经问世十年了,相关的争论和讨论还在继续。我们是不是应该更重视流程和工具?如果是的话,这是否会损害个体和交互?
查看英文原文: Individuals and Interactions are Important, but so are Processes and Tools
评论