在软件行业中,随着SLC、CMMI、PMP等项目管理的相关概念不断被引入,越来越多的项目管理体系和软件开发模式逐渐为人们所熟知,国外同行领先的项目管理最佳实践也越来越多的被引入国内并得到实施。
我所在的部门也较早通过了CMMI Level2 的评估并取得了证书,我有幸亲身参与到了整个CMMI的培训和评估过程,接触到了整套的CMMI软件管理体系和项目管理模式,并在之后的2年中,亲自实践了CMMI软件成熟度模型推荐的有关项目管理的最佳实践,在软件项目的整个生命周期过程中,按照CMMI的标准和最佳实践的模版,完成了项目的立项、需求调研、系统分析与设计、代码开发、软件测试、系统实施以及项目验收各个过程的项目管理活动,并编写了整个项目管理过程中的各种管理文档,可以说在理论知识的基础上积累了一定的实战经验。对于软件开发过程中的项目管理和最佳实践模型在项目中的应用,我也有一点粗浅的认识和想法,在这里与各位一起探讨。
由于计算机软件的种类千差万别,国内的软件企业也多以中小企业为主,整个行业在组织结构和项目管理方面没有形成通用的标准,这也使软件行业中的项目管理带有鲜明的个性色彩,与其它行业的项目管理不尽相同。比如说建筑行业,由于其整个行业已经比较成熟,对每个建设项目的管理程度可以做到十分精细,项目计划甚至可以精确到每天垒几块砖的地步,这样的项目关俩对于软件行业来说,简直就是个可望而不可及 “神话”。
对于软件行业来说,项目管理模式的选择应该结合行业自身的特点,既然没有通用的行业标准可供选择,那么就应该选择最适合自己的项目管理方法和模型。就如同,人人都知道共产主义是好的,但是我们必须从社会主义初级阶段开始,必须要先建设具有中国特色的社会主义,而不能完全照搬苏联的模式(事实也证明这是明智的选择)。项目管理模型的选取,贵在切合实际,套用一句广告词就是——“只选对的,不选贵的”。大家千万不要被名目繁多的各种项目管理体系中提供的各种成熟度模型和最佳实践中的开发管理模式给弄晕啊。
项目管理模型选取的适合与否,如人饮水,冷暖自知。只有亲历项目的人才知道所用的开发管理模型是否合适,而这与该模型和所属的项目管理模式的名气大小无关。
所谓软件成熟度模型,顾名思义,这个模型必然是从千千万万个具体的项目中抽象而来的,是“来源于生活而又高于生活”的。CMMI模型中所展示的情景具有普适的特点,是放之四海而皆准的“一般”规律,这个抽象的过程也就是从“具体”到“一般”的过程。然而实际情况总是千差万别,经过抽象的这个“一般”(一般性规律)恐怕无法顺利的适应到每个“具体”(具体的软件项目开发环境)当中去。为了给使用该模型的组织提供具有可操作性的项目管理指导,CMMI模型提供了许多具体的、来自世界各地的高水平的软件开发组织提供的最佳实践模型,来帮助软件组织完成从“一般”回归到“具体”的过程。
最佳实践模型是完全来自实践当中的,是在某些软件组织中已经实践过的成功案例,是对抽象的软件成熟度模型的有益补充,对实施了CMMI的组织有实际的指导意义。但是,这些最佳实践都是在某个特定的时间、特定的地点、特定的环境下,由特定的组织和人员完成的一系列成功的软件开发实践活动,尽管可能非常成功,对其它项目组织具有很大的指导意义,但它的成功在很大程度上也依赖于项目所处的具体环境和特定因素(这点与软件成熟度模型不同,如果说最佳实践是“具体”,那么软件成熟度模型就是“一般”),很难被复制,只有当我们的项目环境与模型中的项目环境非常接近时,这个最佳实践模型才可能是真正意义上的“最佳”。