2.2.2 成熟之路
只有成熟的软件开发组织,才能快速适应组织规模的变化,才能持续不断地递交成功的项目成果,才能最大限度地降低团队开发的成本。
CMM提供了成熟度评估模型。这个模型,可以帮助软件开发组织,围绕着软件开发过程这条主线,通过各种有价值的活动,最终达到软件开发能力成熟的目标。
我相信,在我们这个美丽的星球上,有不少值得尊敬的、成熟的软件开发组织。遗憾的是,我至今还未接触到它们。
这使我充满了幻想。
在软件开发实践中,我们经常会遇见这样的场景。
在项目进行过程中,由于某些原因,项目无法按时完成。于是,为了确保及时交付产品,项目经理会提出两种方案:加班或加人手。
高一级的经理会对这种做法表示赞赏。因为在项目出现延期风险时,项目经理采取了相应的对策。
接下来,项目经理召开了多次会议,讨论软件开发人员的工作安排。由于公司可以提供的资源是有限的,所以往往采用加班这个方案。
类似的会议不断地召开。
最终,项目延期了。
显然,偶尔出现这种场景是正常的。可现实的情况是,这种场景几乎出现在公司的每一个项目当中。我认为,频繁出现上面的场景就是一个软件开发组织不成熟的特征。
我在想,在一个软件开发组织中,为什么没有人对这类问题进行思考并采取行动呢?为什么失败的经验不能减少失败的可能性,而仅仅是增加了失败的合理性呢?为什么有这么多的人宁愿被动地接受项目延期,也不愿到CMM中去努力寻找解决方案呢?
不经历CMM(或类似的工作模式),很难体会到敏捷开发的意义。CMM仿佛是软件开发组织成长中的一个阶段。只有经历过这个阶段,软件开发思想才能更快地成熟。
CMM可以使我们认清软件开发过程中的好与坏、轻与重。
CMM中有解决方案吗?既有,也没有。
说没有,是指当你的项目陷入危机时,它几乎不会提供任何帮助;说有,是指它为你的软件开发组织提供了一个方向,可以确保组织走在一条正确的道路上。尽管你暂时没有好的办法,但是总会在将来的某个时刻拥有解决问题的能力。
这就像武林高手,为了笑傲江湖,必须从马步练起。而马步在临敌之际,给不了你任何帮助。
所以,我更愿意把CMM看作是一条成熟之路。
在这条成熟之路上,最重要的是软件开发思想的修炼。
是的,任何一个软件开发组织的软件开发过程,都是不相同的。当我们的智慧经过积淀和结晶,当这些积淀和结晶被记录在案,当我们拥有了知识基础,当我们的软件开发思想形成体系,我们将可以轻松面对任何变化。