文档介绍:[原创]世界软件工程权威评瀑布与迭代流程
为什么 21 世纪的敏捷过程和方法(如 Scrum、XP、AgileUP 等)都不约而同地把 IID(迭代递增式开发)作为基础?我想这背后也有历史的原因。可能国内还有不少人(包括软件的客户和开发商)认为,既然瀑布式开发是目前被大家所熟悉和普遍接受、采用的主流,那么它必然是成熟、先进的,而 IID 和敏捷过程不过是最近几年才冒出来的不太成熟、有待检验的新发明,是国外个别专家的突发奇想和标新立异。其实我们只要稍微了解一下世界软件工程的发展历史,就可以发现这些想法完全是一种误解。
Craig Larman 在《敏捷迭代开发:管理者指南》第 6 章“证据”中列举了自上世纪 70 年代以来,许多来自大家所熟悉的、令人尊敬的世界知名软件工程专家、大师和“权威”的证言。科学技术领域本来没有权威,但我想还是有很多人非常相信权威的话,所以让我们了解一下世界软件工程的权威、泰斗是如何评价瀑布与迭代的,有好处。
Frederick Brooks
Brooks 教授大概是国内知名度最高的一位世界级软件工程大师。他曾经是划时代的操作系统 IBM OS/360 的项目经理,软件工程经典名著《人月神话》的作者。20 世纪 80 年代他主持了美国国防部对软件项目失败的研究。他曾荣获计算机科学和软件工程领域的最高奖:ACM 图灵奖(ACM Turing Award)、IEEE 冯诺伊曼奖(IEEE John Von Neumann Medal)以及美国国家技术成就总统奖(the President's National Medal of Technology)
“在过去的十年中,没有什么(像迭代开发那样)从根本上改进了我自己的实践,并且如此卓有成效。”(No Silver Bullet, puter, )请注意这篇文章的发表时间是 1986-1987 年。
Brooks 教授在当时就反对瀑布型的建议,反对那种主张项目前期制作详细需求规格说明的软件工程,并将许多软件失败归咎于此:
(大意)“许多现行的软件采办过程是基于这样一种假设:能够预先说明符合要求的系统,并对它的构建可以做出准确的预算,然后再进行构建和部署。我认为这个假设根本就是错误的,而且许多软件产生的问题都是源于这个谬误。”
Barry Boehm
Barry Boehm 教授是大名鼎鼎的软件工程估算模型 O 之父、软件过程螺旋式模型之父。他自 20 世纪 50 年代起就开始软件开发。曾经担任 TRW 公司(军事发烧友们知道这是一家世界著名的军工系统承包商)的首席科学家,美国国防部高级研究计划署(DARPA)技术办公室的主任,美。并获得了 Warnier 奖、NSIA Grace Murray Hopper 奖以及 ACM 杰出研究奖(the ACM Distinguished Research Award)。
Boehm 于上世纪 80 年代中期创立的螺旋式模型强调风险驱动,提倡迭代和演进式开发。他长期在 DoD 工作,在数百个 DoD 项目中成功引入了螺旋式模型及其改良方法 MBASE,取得了高达 90% 的成功率。(Balancing Discipline and Flexibility with the Sprial M