人称“Bob 大叔”的 Robert Martin 再次掀起了讨论“编程的职业水准”的声浪,他提出“敏捷宣言”应该加入第五项价值:“精益求精胜过按部就班”。
“Bob 大叔”在多伦多举行的 Agile2008 大会上发表了主题演讲,他提议敏捷宣言应加入第五项价值:“精益求精胜过敷衍了事(Craftsmanship over Crap)”。他解释说,这项价值表明:在开发软件特别是在编写代码时,有精益求精的态度非常重要,这远胜过仅仅开发出可用但是见不得人的丑陋代码。
一周之后,Bob 大叔找机会澄清了他的想法,并修正了自己在多伦多提出来的新价值:
我的提议的额外难题在于,它不是一个平衡的价值表述。其他四句表述中,我们同样认为后者有价值,不过我们更重视前者的价值。可在我提出的建议中,敷衍了事对于我们来说没有任何价值。 原来的提议更注重戏剧效果,所以我要把它改成:
- 精益求精胜过按部就班(Craftsmanship over Execution)
大多数软件开发团队都是按部就班,按命令办事,但是他们并没有真正投入到工作中去。我们重视按部就班,但是精益求精的态度更为宝贵。
许多人都回应了 Bob 大叔的文章,提出了他们对于被贬低的原有说法“敷衍了事”的修订,其中包括:(精益求精胜过)个人英雄主义、可用代码、唯工程化、奇技淫巧、险中求胜、效率优先、数量第一、辛苦劳作、缴械投降,甚至还有东拼西凑。
不久之前,Brian Marick 提出了类似的建议,他认为:敏捷团队应该重视技能、修炼、灵性和快乐,并以此作为当前敏捷宣言的补充。多年来,在提到软件开发时,Pete McBreen 一直用“craftsmanship”一词强调个人技能的重要性。Sean Hanly 在文章《禅与软件开发的艺术》中提出 “质量更胜数量”,并论证了敏捷如何能够支持“精益求精”。这几年里,很多人都已经提出了类似的观点,虽然形式不同,但其本质都是认同“将软件作为一门手艺”这样的说法。
简短截说,敏捷软件开发越来越重视“程序员的职业水准”,这并不是什么全新的观念了。极限编程提出一系列技术实践,就是为了达到这个目的。Scrum 强调“技术卓越性”,还有很多其他的例子。问题在于:为什么有那么多团队都做不到这一点?是不是太过隐晦了?为敏捷宣言加入第五条价值能使之显现出来么?它会不会造成不良影响?欢迎读者分享对于此话题的想法和意见。
查看英文原文: Craftsmanship - the Fifth Agile Manifesto Value
作者 Mike Bria 在英文站新闻后的评论中认为:
真奇怪,这似乎一直没有受到多少关注。……不过这就是现状。我是说,这么长时间以来,这本应该是我们这个行业最重要的一个话题(真不幸),可似乎总是没什么人关注(更不幸)。结果,它就继续成为“我们面临的最严重的问题”了。由是观之,是先有鸡,还是先有蛋呢?
评论