【IT168 技术文章】
方法(论)和过程是值得放在一起讨论的两个概念。
1. 方法和过程是相对独立的两个概念,例如OO方法既可以用于瀑布式过程也可以用于迭代式过程。《净室软件工程:技术与过程》,分别讲技术(方法的近义词)和过程。讲OO的书很多,一般都不讲过程。
2. 本质上Agile是过程。在Agile Software Development一书中,有一个十三个要素的模型,一看便知是个过程“元模型”。
3. 但Agile方法论的叫法似乎更加流行。
Agile的核心人物之一Martin Fowler似乎更喜欢Agile方法论的叫法,他有一篇介绍Agile的文章就叫《The New Methodology》。
本站是这么理解的:随着软件实践的深入,我们的方法论在来自于“对世界的基本看法”的基础上,开始向“对实践本身的基本看法”扩展;例如XP方法极端地强调测试,再例如Agile Modeling基于对建模实践的真知灼见。
正如Alistair Cockburn的那句名言,“方法论源于恐惧”;《软件工程──实践者的研究方法》一书中也有这样一段话:“在一篇短文中,Margaret Davis〔DAV95〕评论了产品和过程的二元性:大约每隔5至10年,软件界就会重定义‘问题',将其焦点从产品转移到过程。这样,我们在结构化程序设计语言(产品)之后有了结构化分析方法(过程),之后又有了数据封装(产品),再后是目前的重点──软件工程研究所的软件开发能力成熟度模型(过程)。
正如钟摆的自然倾向是停在两个极端之间的中间点,软件界的焦点也是在不断转移,因为当上一次摆动停止后,就要加新的力。”