技术开发 频道

CMMI之配置管理

    各种控制库的划分是根据其访问权限来定义的,在没有进行CMMI认证的公司,通常项目组的配置库只起到“开发库”的作用。

    以CMMI配置管理SP1.2中的理论为依据,“开发库”对项目组成员具有比较宽松的“CheckIn”和“CheckOut”的权限。不会给大家的工作带来不便,根据大家的需要随时都可以对其保管的配置项进行各种操作。

    “受控库”对项目组成员来说是没有“CheckIn”和“CheckOut”的权限的。对“受控库”的操作只能由配置管理员来完成。因为受控库中存放的是等待评审的文档或待测试的程序。假如有份文档要送去评审,会议的主持人已经将其进行了分发,可是这份文档却保存在“开发库”中,如果这时被别人修改了,那么之前所分发的文档就是旧的,那随后的评审也就没有意义了,这就是“受控库”存在的意义。

    “基线库”就是对“受控库”中通过验证的工作产品所形成的基线进行统一管理,并且新的基线将按照要求发送给项目的相关人员并与其分享项目的状态和信息。大家回想一下以往发布给客户的版本是否可以找到全部的程序和文档,如果找不到那就请从现在开始使用“基线库”进行管理吧:)

    (四)软件变更管理 

    软件开发项目经常出现变更,但大家千万不要对项目中的变更产生恐惧,在项目管理的先进理念中“变化是永恒的,不变是短暂的”,“没有计划就没有变化”。大家应该正视软件变更的存在,它是软件世界中客观存在的一种现象,就像初一、十五大海的潮汐一样。在CMMI配置管理的SP2.1中就变更管理的流程和规范进行了定义。

    软件变更的起因

    为什么会出现软件变更呢?这要从软件项目的性质出发进行探讨。PMP定义的项目特点是“临时性”和“独特性”,大家就算把已经完成的项目重新再做一遍,其过程也不可能是一模一样的。其实软件开发就是将客户脑子里主观的思想转换为客观的代码行,主观的东西都是虚无缥缈的,根据人的意识会经常改变的;另外软件开发就是将企业的非常好的实践转化为客观的产品,接受需求调研的客户一般都是他们行业中的佼佼者,他的思想就是企业的非常好的实践,这些非常好的实践也许连他的同事都不一定完全理解,何况是我们这些做软件开发的技术人员。通过以上软件开发项目的特点进行分析,大家应该也理解了为什么软件开发会有那么多的变更了吧。除了应该理解变更的起因外,还应该让我们的客户对变更的起因有所认识,做到大家互相理解,和谐的项目才是共赢的。

    另外大家不要以为变更给项目带来很多麻烦,有时变更也会为项目带来效益,技术的革新就是一种特殊的变更,在我国实现现代化建设的过程中不知道有多少技术革新为国家带来或挽回数以亿计的财富,在我们的软件项目中一些新的技术或架构,也一样会减少项目的开发周期和成本。

    软件变更的必要性

    变更会有其相应的流程,有流程就会有工作量,有人会觉得变更太麻烦没有必要,在笔者进行CMMI咨询时往往推荐两种级别的变更:“一般变更”和“重大变更”。

    “重大变更”常指里程碑的延误、项目组成员的变化、项目成本的变化,具体每种变化有多大才算是重大变更呢?这就要针对不同公司的不同情况来定义。为什么重大变更没有定义软件范围也就是需求的变更呢?因为需求的变更可以通过项目里程碑的延误或项目成本的增加来判断。重大变革要走正规的变更流程,并且要通过“变更控制委员会”CCB的评审通过后才能实施。

    除了“重大变更”以外的都属于“一般变更”,例如项目进度虽然有延迟,但是不会影响项目里程碑。“一般变更”不再需要CCB的评审,项目负责人就可以全权处理。通过对变更级别的划分,给项目负责人一定的权利,这样项目变更就不会让人觉得繁琐了。

    (五)配置管理的审计

    配置审计的目的是配置管理员要确保配置库中的配置项和基线的完整性和正确性,这就是CMMI配置管理SP3.2所提到的概念。在“开发库”中的配置项是不需要进行审计的,一旦带有缺陷的配置项进入“受控库”或“基线库”,那么将会给项目带来不小的负面影响。配置管理的审计分为“物理审计”和“功能审计”两种。

    “物理审计”比较简单,配置管理员只需根据项目组提交的“入库清单”逐一检查文档或程序是否存在,命名规则是否符合规范既可。

    “功能审计”的理解会相对比较复杂一点,“功能审计”是对配置项的内容是否正确进行检查。但配置管理员有可能是不懂技术的,那么他将如何开展功能审计呢?进入“受控库”或“基线库”的文档肯定是经过并通过评审的,代码程序也肯定要经过并通过测试的,因此配置管理员可以利用这些验证的结果来间接对其入库的内容进行检查。这样配置管理员就可以保证其功能的正确。

    (六)总结

    通过以上内容的介绍,相信大家应该对CMMI配置管理的概念和重点有所认识了。配置管理工作是贯穿整个项目生命周期的核心工作之一,只有利用配置管理的理论把项目条理化、清晰化,那么才能开展例如需求、设计、开发、测试等其他工作。通过本篇文章笔者希望大家知道什么是配置项和基线,配置库是如何划分的,为什么软件项目会有变更,同时我们也要正视和接受变更的存在,以及配置管理员是如何进行功能和物理审计的。

0
相关文章