技术开发 频道

软件项目管理先行军

  为应用SCM支招  

  从上述的定义中,我们已经可以归纳出要实施软件配置管理,需要进行哪些活动了。
 
  首先,要进行配置项的标识。所谓配置项,简单地说就是受SCM控制和管理的工作产品单元,也是配置管理的目标。什么能作为配置项进行管理?下面举一些例子,程序(源代码、目标代码、可执行程序、函数等)、文档(需求定义、系统分析、系统设计、高层设计、低层设计、测试规格说明书、测试计划、安装手册、发布说明、用户手册等)、数据(测试数据和项目数据)、执行文件等,都是典型的配置项。但有几个问题需要讨论:一、配置项划分的颗粒度问题。也就是说,配置项实际上是逻辑的概念,不完全对应物理上的文件,因此为了便于管理,就要进行一定程度的划分,比如典型的,可以把用来生成一个“构件”的几个代码文件设定为一个配置项,这样在进行变更时就需要同时对这些文件进行修改。二、不一定要把所有的工作产品都作为配置项。有些工作产品,比如状态报告,相当稳定,不容易变化,同时对最终产品发布没有直接影响,就可以考虑不作为配置项进行管理。为什么要这样考虑呢?因为如果作为正式的配置项,需要进行配置项的标识、控制、报告等等工作,会给项目增加不必要的成本。因此,可以考虑对这些产品仅仅进行简单的管理就可以了。但是对诸如项目计划文档,仍然需要进行软件配置管理。三、对于一些没有实际物理文件,但仍然需要进行配置管理的工作产品,比如操作系统参数、编译器描述、物理特性、版本描述等,为了能进行配置管理,需要对其进行描述,并形成文档,再以配置项形式进行管理。比如进行技术变更时,就有可能需要改变系统参数。

  其次,进行变更控制。可以这样说,我们所熟知的版本管理,其本身并没有什么直接作用,而真正起发挥作用是为变更控制进行支持。为什么这样说呢?我们仔细考虑一下,我们通过自动化的方法或者手工化的方法,保存了所有的配置项的所有版本,但是什么时候会有用处呢?往往没有进行变更控制的时候,就会发现所有的版本仅仅占用磁盘空间,而从来不会使用,甚至真正想找到以前某个状态时,反而难于查找。主要的原因是,所记录的配置项的所有状态,只有和变更控制进行配合,将变更的原因和变更的结果(配置项的某一版本)联系在一起,才能以变更为主线,将所有版本变为“有理由的”(reasonable),才能形成基线,真正发挥变更控制和版本管理的作用。

  第三,要进行配置管理的状态监控和报告。这部分内容比较具有技术性,并且相对单一,基本上依照项目对配置管理的要求进行统计和分析。但是,配置管理状态报告往往能从另一个方面反映项目的进度情况,甚至有时比项目进度状况报告还要准确。比如,变更请求状态分布报告,就可以客观地反映按照计划应该完成多少变更请求,而实际上完成多少变更请求,这实际上客观地反映出已完成和未完成工作量。这方面的内容在项目进度报告中很难客观反映,从而造成项目实际情况与进度报告不符。

  第四,就是要进行配置审核。可以说这个环节是配置管理达到效果的重要手段,但是在一般配置管理执行时,往往忽略配置审核,造成在产品测试、产品发布是仍然出现混乱。

  最后,也是非常重要的配置管理活动,就是在项目开始之前就进行配置管理计划。配置管理计划往往和项目开发计划一起产生,并相互影响。配置管理计划的目标是规划整个项目的配置管理活动,尤其是重要的比如发布、基线管理等问题。配置管理计划的主要内容包括配置项的标识和命名规范、配置管理环境方案、配置管理活动计划和时间表、基线计划、发布计划等。可以说,配置管理计划直接决定了项目配置管理的方针,以及配置管理活动的准则。忽略配置管理计划,将使整个配置活动甚至项目都受到影响。

  以上是配置管理的基本活动。

  不要忽略SCM

  从CMM的实施情况来开,配置管理实际上是项目管理的基础工作之一。原因如下:

  一、软件配置管理是一个相对独立的管理活动,也就是说,配置管理活动不一定依赖其他的管理活动的开展。在很多企业中,配置管理完全可以在其他的管理活动没有开展或者还不成熟时独立进行。

  二、其他许多的管理活动,多数都要以完善的配置管理作为基础。比如说需求管理,对需求管理而言,无论需求的变更影响分析,还是需求的变更执行都是依赖在变更控制和配置管理基础上的。其他的比如项目计划管理、质量管理、项目跟踪管理、子合同管理等都是类似的情况。

  三、从实际经验的总结来看,配置管理是诸多管理活动中最易操作、最容易实现并且能在项目最先体现出效果的管理手段。配置管理相对其他的管理,技术性较强,变化不大,对开发人员来说收效明显,接受的程度高。

  因此,我们将配置管理比做项目的“先行军”,意味着企业在实施CMM或项目管理时,首先要抓好的是建立一套完整的配置管理制度,有条件的还要建立配置管理工具环境,并在项目中推广实施。只有在此基础上,才能为今后更加深入的项目管理提供基础。

  但是,仅仅意识到配置管理的重要性以及可行性还是不够的。根据大量的实践经验,还需要有一套配置管理自动化的平台,也就是一个配置管理工具作为实施的基础。一套功能强大、实施容易、管理方便的配置管理工具,可以极大地提高配置管理的实施效果,尤其是可以得到项目组开发人员的大力支持。在市场中已经有了一些较好的产品。其中CA公司推出的AllFusion Harvest Change Manager就是满足上述需要的一套非常优秀的配置管理工具。AllFusion Harvest Change Manager将配置管理和变更控制紧密地结合在一个产品中,并提供灵活的变更控制流程定制,支持从小团队开发到大型项目实施的各种规模软件项目,并具有简单易用、快速实施、安全稳定的突出特点。在国外市场上市场占有率非常高,现在正在被越来越多的国内用户认可。

  我们相信,在不久的将来,配置管理将成为所有软件开发人员和管理人员所依赖和熟悉的管理手段。

0
相关文章