提到软件配置管理,作为从事软件的人来讲,相必都不陌生。要想真正做到实施好配置管理,对于软件配置管理的意义及其重要性我想应该有必要的认识和理解。

  软件配置管理,software configuration management,其简称SCM;在软件配置管理中,有一个关键的一环是变更管理,而变更管理的基础是配置项的确定与版本管理。要正确理解这些问题,我们不能仅仅将SCM作为一个管理工具或者在项目洽谈与执行中一种合行规定的义务来履行。如果这样,在开展工作的过程中很容易使这种工作变成一种官僚式的绊脚石。往往在我们开展项目时,很多合同对配置管理提出了明确的要求,需要认识的是,我们所需要进行配置管理的目的是为软件开发过程中的不同的角色控制和跟踪管理自已的工作提供支持与帮助。

  很多软件开发过程中遇到的问题都是因配置管理不善而造成的。而发生这些问题需要时间去确定,而且有可能很多可能是重复的问题。有的是不必要的麻烦。比如说一个已花费较大精力和成本解决的高难度的软件错误突然再次出现,已经开发或完成测试的一个特性神密的消失,一个已经通过完全测试的软件系统突然间无法运行。配置管理通过对同一项目中不同人员的所产生的工作产品来帮助我们减少和消除这些问题。问题主要体现在:

  ?? 现在项目的开发大部分都是以叠迭式,渐进式的模型进行开发。在一个版本交付的同时,另一个版本可能还是进行测试,而进行同步开发的后续版本可能还在进行设计与开发阶段。在这个循环的过程中,如果客户发现错误,那么不单只是针对客户的错误在现有的版本上进行修改完成可以,同时要在后续的版本中体现。另外,如果在测试或开发的过程中发现了新的问题,那么对于以前正在使用的版本也需要考虑进行修改。在大系统开发的过程中,问题与修改问题的人,版本都会比较多,很容易出现混乱的情况。

  ??核心代码,或者公用构件和代码。在系统的开发过程中,当涉及到公用构件或代码的修改时,需要使与此相关的人都需要知道。如果没有有效的代码管理与报告与协调机制,对于修改的代码如何使相关人员都提到通知存在一个问题了。

  ??现在的软件项目,大多都是由一个团体协作完成的,那么,涉及到,对于后某人对其所作的工作或输出很容易损害到其它相关人员的工作。如在一个应该系统的开发过程中,数据流程比较密集,如果其接口的变化,可能会引起很多相关地方的变化。

  这些问题是由什么而引的呢,不言而明,在软件开发过程中的缺少规范的管理而导致出这些问题。需要我们花费很大的精力与时间来处理。那么怎么来对这些问题来形成一个有效的解决方案呢,需要我们对以下的问题进行明确:

  ??在公司,目前的配置管理是什么,做了些什么?

  ??目前公司配置管理的状态是何状态?

  ??如何去控制配置的变更项?

  ??对于配置变更,怎么样通知相关的个人和组?

  ??公司的软件项目都有哪些类型的变更?

  ??如果在公司或同一项目组,其它人所做的变更会不会影响你所写的软件部分?