软件敏捷开发与传统方法的深度剖析
1. 不同理念的碰撞
在软件开发领域,存在着两种截然不同的理念。一种观点认为,完成一个功能需要按顺序依次投入8小时进行需求分析、20小时进行设计、12小时进行编码和12小时进行测试,这样能“控制”进度,但却可能抑制创造力。Visa创始人兼名誉CEO迪伊·霍克(Dee Hock)曾写道:“如果我们要设计一个有系统地破坏社区的高效体系,那么我们目前将所有价值货币化并将生活简化为测量暴政的努力再合适不过了。” 而软件工程研究所创始人瓦茨·汉弗莱(Watts Humphrey)则认为:“软件过程管理的目标是按计划生产产品……基本原则是统计过程控制。” 这两人在各自领域都备受尊敬且取得了巨大成功,但他们对于组织及其管理方式的价值观却截然不同。
在实际工作中,有些人能在高级RSM组织那种明确、规范、可测量且精确的文化中蓬勃发展,而另一些人,比如作者自己,则会在这种文化中萎靡不振。不过,为迪伊·霍克工作和为瓦茨·汉弗莱工作的强度可能不相上下,只是工作方式大不相同。组织视角、价值观和原则这些问题在过去的方法论辩论中常常被忽视,但它们恰恰是人们工作方式和动力的基础。敏捷软件开发运动将这些问题推到了台前。
2. 协作价值观与原则
从体育界的例子可以看到协作价值观的重要性。NBA明星约翰·斯托克顿(John Stockton)在一场季前赛前夕膝盖受伤,但他仍坚持完成热身并上场比赛,还压制了一位备受瞩目的新秀。爵士队教练杰里·斯隆(Jerry Sloan)赛后表示:“你可以尽情执教,但如果没有像他这样的球员,你很难取得成功。”
这与“软件开发只是劳动密集型的机械工作”这种观点形成了鲜明对比。软件开发到底是劳动密集型还是能力密集