对比其它软件方法评估敏捷和Scrum2013-11-30 infoq 译:武鑫一般来说,选择一种软件开发方法,更像是加入一个邪教组织,而不像是做出了一个技术决策。许多公司 甚至从未试图去评估这些方法,而仅仅是盲目采用最流行的方法,这就造成了如今五花八门的各种敏捷方法。 因此本文将使用包括功能点、缺陷移除率(DRE)、质量成本(COQ)以及总拥有成本(TCO)在内的一些标准 的度量指标,对现代软件开发方法的样本进行比较。目前有约55种已命名的软件开发方法正在使用, 还有更大数量的混合方法。这些开发方法中包括传统的瀑布方法、各种花样的敏捷、Rational统一过程(RUP )、团队软件过程(TSP)、V-模型开发、微软解决方案框架、结构化分析和设计技术(SADT)、持续演进开 发(EVO)、极限编程(XP)、PRINCE2、Merise和基于模型的开发,以及更多的其它开发方法。数据 本身是来自于对一定数量的客户的研究成果,这些客户集体使用了各式各样的开发方法。预测部分使用了作者 的专有工具Software Risk Master,这个工具可以创造所有55种软件开发方法的理论模型。引言目前有超过55种的软件开发方法存在,而且每一种都有其忠实的追随者,这个事实表达了一个强烈的 信息:在这55种软件开发方法中,没有任何一种有能力处理所有规模和种类的软件应用。其中一些方 法最适用于小型应用程序和小型团队;而其它一些方法适用于大型系统和大型团队;一些适用于复杂的嵌入式 应用;一些适用于高速的Web开发;一些适用于高安全性的军事应用。是否有可能选择出一种最佳方法来适用 于各种具体项目呢?一种方法足够吗?或者企业是否应该基于他们需要开发的项目的种类,使用数种方法?不幸的是,由于缺乏量化的数据和方法之间的比较,选择一种软件开发方法更像是加入一个邪教组织 ,而不是一个技术决策。许多公司甚至从未试图去评估那些替代方法,而仅仅是采用当时最流行的方法,无论 此方法是否适用于他们所构建的软件的类型。当这些软件方法被评估后,其结果使我想起了古代的佛教寓言:盲人摸象。不同的开发方法分别有着最快 的速度、最高的质量和最低的总拥有成本。(在原来的寓言中,摸到大象鼻子的盲人认为大象像一条 蛇。摸到大象侧面的盲人认为大象像一堵墙。摸到象牙的盲人认为大象像一只长矛。摸到尾巴的盲人认为大象 像一根绳子。)影响软件项目的因素组合理想的解决方案应是遍历各种规模和类型的软件来评 价各式各样的方法。然而由于组合的复杂性,这是很困难的。所以我们只考虑那些众所周知的会对软件项目结 果产生影响的主要因素:

由于对每一个因素都进行考量会导致 组合数量过于庞大,所以本文将做出一些简化的假设,从而让我们主要专注于软件开发方法因素,而不是所有 其它因素。在这篇文章中的基本假设是: