关于敏捷软件开发的研究越来越多了,与以往的软件项目过程管理方法变革不同,这次在国内似乎引起的争论远超过以往。
很多人认为传统重型的方法应该用于大型项目,而新的敏捷的方法应该只能适用于几个人的小项目。暂且不讨论目前国内到底能有多少需要近百个人年的开发项目。就纯粹从对敏捷方法的理解上就有很多误区,敏捷的方法不仅仅适用于小型项目同样适用于大型项目。容易引起误会的可能是XP,许多人一提起敏捷方法就会马上联想到XP,不要文档,代码就是设计等等。需要解释的是XP并不等同于敏捷软件开发,只是众多敏捷软件开发方法中的一种。
“敏捷”在管理领域本来就不是什么新名词,敏捷制造、精益生产理论早就是现代企业管理理论的核心思想了。这次从传统管理领域引入到了软件项目管理领域,应该视作管理思想发展的必然。
这次项目管理方法体系的变革跟上一次面向对象软件工程的变革有着本质不同。OOSE与传统面向过程的软件工程方法相比,更多的是在分析、设计、代码一系列方法发生了改变,整个软件工程管理思想体系没有太大改变,改变更多的是体现在具体文档和代码表达方式上。
“敏捷软件开发”引起的变革不仅仅是几个实践方法的改变。而“敏捷”软件开发的根本在于管理指导思想发生了改变。
“敏捷”软件开发并不在于重新创立新的方法体系,相反,以往的UML、Design By Contact等方法依然适用。“敏捷”思想的精髓在于以人为本,充分分析过程以消除传统软件工程方法中的浪费、低效率行为,如只编写必要的文档,这样做旨在提高整个团队的警惕性,消除侥幸心理,每个人都会对外界的变化产生迅速的反应,项目管理人员也能掌握真正的项目进展情况(对比以往的开发经验,很多项目经理仅仅看程序员编写的报告,对延期、实际产品质量缺乏了解,一出问题往往无法处理)。
所以,我们在引入“敏捷软件开发”应该仔细考虑其思想精髓,重要的是对比敏捷的原则、方法检查我们现有的过程管理方法中有哪些无用低效的环节,从而进行改进。改进应该是持续的,不能照搬国外的方法和经验,我们的环境不同,我们要把握根本的“敏捷原则”——消除、减少不必要的、低效的工作环节和工件产品。