软件配置管理是一门应用技术、管理和监督相结合的学科,通过标识和文档来记录配置项的功能和物理特性,控制这些特性的变更,记录和报告变更的过程和状态,并验证它们与需求是否一致。 “配置第一”这个理念是一位IT公司的项目经理告诉我的,他用了“深刻教训”四个字来为这个言论作注脚。他告诉我这样一件事: 这家公司曾为电信企业开发一个手机收费的中间业务系统。按规定,系统的收费平台应根据第三方传来的手机资费信息进行扣款。其中,负责网络通讯的路由器是由多家厂商提供的。 在项目试运行阶段,系统运行一切正常。这时,有一家路由器厂商(以下简称A厂商)要升级运行程序,网络通讯接口要变,A厂商向电信提出了修改接口程序的提示。负责项目开发的这家IT公司很快完成了通讯接口修改,和A厂商联调测试无误后,准备将接口程序发布运行。负责程序发布的老兄嫌版本发布流程太麻烦,便走捷径,私自将程序更新上线了。未料到,接口的改变影响了电信与其他厂商路由器的数据通讯。途经A厂商路由器的通讯数据没有问题,可其他品牌的路由器却收不到信息了。后果是:当天电信用户的手机资费信息数据报大量遗失,相关电信资费损失无法挽回。 负责软件承包的IT公司境遇可想而知。“痛定思痛,痛何如哉!”从此,该公司痛下决心,买工具、定规范、搞培训,将配置管理切切实实地作为日常重点管理工作来抓。 配置管理是什么“东东”,它真这么重要吗? 软件配置管理是一门应用技术、管理和监督相结合的学科,通过标识和文档来记录配置项的功能和物理特性,控制这些特性的变更,记录和报告变更的过程和状态,并验证它们与需求是否一致。 简而言之,配置管理(SoftwareConfigurationManagement,简称SCM)就是对软件产品的配置项进行控制和管理。它的目标是最大限度的减少错误和混乱,保证软件项目工作产品在整个生命周期内的完整性。 配置管理的对象是配置项,主要包括:接口描述、过程描述、需求、设计、测试计划、测试结果、代码及模块、工具、系统参数、版本描述等。配置项与配置人员、配置工具、配置规范等构建起了整个配置管理体系。 配置管理的出现是项目发展的必然结果 软件技术迅速扩展,项目开发日趋复杂,人员数量不断扩充,系统开发平台多样化,开发及测试场所分布各地,开发规模日益扩大,随之而来的管理复杂性急剧增加。 软件开发永远不变的特点就是变化,需求变更、技术更新、人员变化、环境变化、架构变化等层出不穷,所有这些使项目风险大大增强,如何应对并追溯变化,从而控制变化,是一个重要课题。 软件系统越做越大,产品组件动辄上千,多者上万,版本控制如何着手,令人头痛。 “乱世出英雄”,配置管理便在这样的环境下应运而生了。 配置管理的管理范围恰是项目开发、协调最混乱的地方: 交付给用户的软件产品(需求、源代码等) 软件产品的外部产生“环境”(操作系统参数、编译程序等) 对项目内部而言工作产品(过程描述、流程控制等) 那么,这种管理的特点是什么呢?它到底能带来什么好处呢? 特点 相对独立。配置管理相对独立于其他管理控制活动,它可以在其他活动都未开展或还不成熟的时候独立进行。 是其他各项管理的基础。需求管理、需求变更、资源变更、系统维护、、计划管理、文档管理等都是在配置管理这个“平台”基础上进行的。 优点 对项目产品单元进行统一的版本变更管理,统筹安排系统的修改、发布以及系统资源的使用,预防开发的进程混乱,保证系统版本的完整和一致。 支持并行开发与维护。软件开发过程时常要求多个开发人员同时在同一个软件模块或项目文档上工作,同时对同一个代码或文档部分作不同的修改,配置管理能满足这样的要求,同时使跨平台、跨地域的并行开发成为可能。 使项目管理人员能掌握项目开发进度。配置管理系统可以提供配置状态报告,对每日变更完成的工作量、开发中存在的问题等会有详尽的反映。 减少人员变动对项目带来的影响。项目的变更轨迹可跟踪,文档的增删、代码的修改、参数的改变、配置项的状态、基线之间的差异等都有案可查。参照变更的原因、内容描述等内容,我们便可对项目的开发进程有详细而完整的把握,从而避免对相关人员的过分依赖。 配置管理的重点工作描述 1)配置项识别 软件配置管理工具的选择 “工欲善其事,必先利其器”,配置工具的选择对配置管理的好坏影响巨大。 配置工具是配置管理的自动化平台,是一个管理具体实施的基础。一套功能强大、实施容易、管理方便的配置管理工具,可以极大地提高配置管理的实施效果。
信息发布:广州名易软件有限公司 http://www.myidp.net
|