|
在学习、传播和实践敏捷的过程中,我们发现国内对敏捷过程存在着以下一些误区。
敏捷不只是XP
有不少人误认为“敏捷就是XP”。事实上,敏捷并不等于“极限”。Kent Beck等人发明的XP(极限编程)只是众多敏捷方法中的一种,国际上除XP外还有Agile UP、Scrum、FDD、DSDM等许多成熟的、著名的敏捷过程和方法。
“敏捷”代表了一整套价值观、原则和实践方法,把敏捷宣传简单狭隘地等同于推广XP将会阻碍敏捷在我国得到更为广泛的认同和应用。
有一种偏见认为XP是“咱们”程序员自己提出来的“草根”方法,这种看法显然是幼稚和片面的。实际上,像TSP、UP、XP等等各类著名的过程方法均是由世界上开发不同应用的各类优秀程序员在软件工程历史上的不同发展阶段分别提出来的。这些过程方法各有各的适用性,无绝对的好坏之分,只有根据自己项目和团队的实际情况选择适用的方法才是明智之举。
伪敏捷案例者众
我们还发现国内不少公开报道的XP、UP应用案例实际上采用的并不是真正意义上的XP或UP。
一方面许多自诩的敏捷实施者并没有真正理解XP、UP这些经典过程方法的含义,另一方面许多“软件原教旨主义者”又满腔热情地打着大师崇拜的旗号追求纯而又纯的XP、UP或CMM过程,认为它们都是钢板一块,断不可以修改定制。我们知道越是极限、极端的东西,其适用面往往也就越小。
还有些人总是把CMM、ISO与敏捷对立起来,可为什么我们不能学习Kent Beck,在实际过程中吸收XP的TDD、重构、结对编程、持续集成等聪明的做法?当然可以。而且,说不定这种混合集成的、符合中国企业自身特点的敏捷统一过程比“纯洁、标准、绝对”的XP、RUP或TSP风险更小、收效更大。
敏捷在国内推广的两大挑战
在我国推广和实施敏捷面临着一些重要挑战。敏捷化进程是我国软件企业管理从过去的粗放式模式转变为现代化精细式模式的一个提升过程和发展契机,而软件开发的敏捷性也并不是任何人可以轻易获得的。
国际软件的领导企业15年来早已完成了相应的基础工艺升级和变革,而据我们观察,国内的软件开发目前仍然是以陈旧的类瀑布式过程为主,高于具体编程语言的OO(面向对象)技术也未得到深入、广泛和扎实的运用。敏捷企业要成功,能否很好地实施迭代过程、提升OO技能是关键。
此外,软件工程、过程的敏捷化也不仅仅是软件开发人员单方面的事情,敏捷过程实施的成功在很大程度上依赖于客户的支持与配合。国内不成熟的行业客户往往习惯于“瀑布”思维,在招投标阶段既固定项目的费用和工期,又固定项目的功能范围(笔者称其为“三固定”),结果往往导致项目质量的损失,而许多项目最终的真实状况往往是既延期又超支,费用、工期、范围实际上一个也确保不了。这种盲目的客户合同与合作方式不但明显违背科学规律,也给软件企业、行业的健康发展带来了严重障碍。
|