但是,数十年后的今天,人们对于软件危机的“恐惧”仍没有丝毫减弱,相反随着软件系统的急速膨胀而越发不可收拾了:对软件开发成本和进度的估计常常不准确,开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见;用户对“已完成”系统不满意的现象也经常发生;软件产品的质量往往靠不住,Bug一大堆,补丁一个接一个;等等。于是,无论是产业界还是理论界,都开始对传统软件工程学思想产生怀疑,甚至背叛。因此,关于软件到底是“工程”还是“艺术”的讨论一度风靡全球。而以迭代式循序渐进开发方式为主,以“人”为核心的敏捷开发方法就是在这样的背景下产生的,它背叛了传统软件工程学中以“过程”为核心,把设计和开发尽可能分开,尽量弱化“人”在整个工程中地位的思想。
近日,当世界软件开发领域最具影响力的五位大师之一、敏捷软件开发方法的早期开拓者马丁·福勒先生来华与国内软件高手论道之际,北京大学软件学院院长阵钟老师再次将软件是“工程”还是“艺术”这一问题摆到了桌面上。而这位软件教父似乎对这一问题早有深入思考,他认为,这一争论的核心应该在于软件设计是否要与软件开发分开,这也正是传统工程化软件开发方法与敏捷软件开发方法的重要区别。
作为敏捷软件开发方法的推动者,马丁先生认为,软件设计应该和软件开发紧密结合在一起,采用迭代式开发。软件开发不能被认为是一个既定的过程,因为软件开发中有太多的变化出现,既定的过程设置不可能达到合适的预想结果。由于需求变化、技术更新、人员流动等问题的存在,许多软件设计工作应该在软件开发到一定程度的时候才能进行,两者不应该在顺序上严格分开。他说:“至于从哲学的角度讲,到底软件开发活动是艺术还是工程呢?我很难清晰地界定,也许都是或者都不是。也许我们应该把软件开发活动当做一个独立的东西来对待。”
文章来源于领测软件测试网 https://www.ltesting.net/