|
国际软件过程领域的敏捷运动源于2001年敏捷联盟在美国成立和《敏捷宣言》的正式发表。
敏捷软件运动代表了21世纪互联网时代软件开发模式的一种先进理念和价值观,相比传统过程,敏捷更强调快速灵活反应,主动迎接和适应变化,主张更紧密的客户与开发商协作和以人为本的企业可持续发展。
典型的敏捷过程模型有XP(极限编程)、FDD(特性驱动开发)、Scrum以及敏捷的统一过程(AUP)等。
发展现状
我国软件人员了解、尝试敏捷大概始于2001年前后一批XP敏捷系列图书在国内的引进出版以及早期相关文章的探讨和报道。总体上敏捷过程在我国发展得还比较缓慢,可以说是刚刚起步。
当前采用敏捷方法的企业以外资、成熟、领导型企业居多,大部分国内企业目前可能还处在了解、观望的阶段,对敏捷过程、方法的认知接受程度也偏低。这种媒体热、企业冷的犹豫现象一方面可能与五年来的CMM考级热有关,另一方面也可能与市场上某些对XP极端做法、敏捷功效神乎其神的夸大宣传有关。
软件过程改进是我国软件企业提升竞争力、获得可持续发展的一条重要途径。一方面,大多数以快速短迭代为特征的敏捷过程有助于消除错误实施ISO、CMM带来的官僚主义、形式主义等消极后果。另一方面,许多软件客户和技术主管们对有些XP拥护者鼓吹几乎不留设计文档、主要依赖源代码说明的做法存有很大的疑虑,这种工作方式与强调过程文档化、数字化的ISO 9000、CMM理念有着显著差别,却得到了我国许多本来就不善于抽象表达设计的程序员们的热烈“拥戴”。
关于国内企业具体采用的典型过程种类,虽然偶尔有零星的XP案例报道,但我们发现实际采用类RUP/UP过程的远比XP多,FDD偶尔有听说,Scrum则很少。有一种比较流行、可能比较接近现实的说法是:70% 甚至更多的国内软件企业实际上采用的既不是RUP、XP,也不是TSP、PSP,而是一种“什么都像、什么也都不像”的自酿过程。
目前国内已有500多家软件企业通过了各级CMM评估,而2005年标志着CMM时代的结束,取而代之的是CMMI(集成的过程能力成熟度模型)。CMMI框架相比CMM更加成熟、更加健全,也更加灵活和敏捷。
CMMI过程的敏捷化以及原本实施CMMI的软件企业过程的敏捷化是一个值得我们关注的方向。在看到CMM由热趋冷、敏捷由冷转热的同时,我们还应看到以RUP为代表的统一软件过程(UP)家族的兴起。
RUP的独特之处在于它采用OO技术对软件开发过程本身进行业务建模,在一个成熟灵活的抽象框架之内统一、集成了迭代开发、用例驱动、UML可视化建模、OOAD、架构设计、变更配置管理、质量管理、项目管理等许多主流先进的当代软件工艺。在统一过程基础上结合敏捷实践的敏捷统一过程(AUP)也成为很多企业的现实选择。
趋势与机会
假如问软件产品、系统的客户、软件企业的老总们,您欣赏什么样的软件开发过程?成熟、集成、敏捷、统一、先进……可能没有人会拒绝这些美丽的话语,如此过程必然也是所有人(包括广大程序员在内)的追求。
何谓“成熟”的软件过程?不同行业、不同领域的软件开发可能有各自不同的定义和评判标准。我们认为,软件过程的敏捷化、统一化(含集成化)是必然的趋势,21世纪的软件过程没有敏捷、统一的要素又怎能称之为“成熟”?
我国软件要不要走规模化的产业之路?没有规模化,中国软件就没有出路。规模化并不会必然导致官僚、臃肿、迟钝等大企业病。
15年来,CMM/CMMI、RUP、XP等经典过程模型方法的出现标志着国际软件工程、工艺的空前发展和高度成熟,遗憾的是我国民用软件工程在开发过程、工艺标准等方面似乎一直是乏善可陈。
造成这一差距的原因可能就在于我们过去始终乐于忙忙碌碌,却没能及时很好地总结自己的经验教训。
敏捷、统一是当代成熟软件过程发展的主旋律,我们认为参考CMMI框架、结合RUP、XP、Scrum等最佳实践的敏捷、统一、集成的过程之路更适合以中小企业居多的中国软件行业的现状,我国软件企业和产业迫切需要建立属于自己国家和地域的“审美标准”,应该而且有条件提出有中国特色的软件过程评价标准和参考模型。
贯彻先进理念的关键在于执行。用好敏捷方法首先应搞清楚“敏捷”的真正含义,搞清楚AUP、XP等经典敏捷过程、方法、模型的适用范围与优缺点以及它们与传统过程、方法的区别与联系,然后再根据企业的实际因地制宜。
另一方面,软件过程改进的成效、过程能力的提高往往取决于所有干系人(包括客户、管理者和开发者)的思想认识和观念的契合程度。
我国软件从业人员应努力提升逻辑思辨能力,注意避免受到一些缺乏专业性的技术媒体不当宣传的影响和干扰。敏捷运动(或变革)在我国的健康发展需要软件界与出版传媒界、顾问咨询界一道始终秉持科学精神与科学态度,并坚持不懈地为之共同努力才有可能实现。(张恂,www.zhangxun.com)
|