文档介绍:软件配置管理
——对软件成果的有效保护
林锐博士
rui@
上海漫索计算机科技有限公司
目录
1. 什么是软件配置管理
2. 为什么需要配置管理
3. 人的问题
4. 软件配置管理规范:概念与流程
5. 软件配置管理规范:配置管理计划
6. 软件配置管理规范:版本控制规则
7. 软件配置管理规范:变更控制规则
8. 软件配置管理规范:配置库操作
9. 软件配置管理规范:配置审计
10. 常用配置管理工具
参考书:《软件工程与项目管理解析》,林锐著,电子工业出版社,2003
1. 什么是软件配置管理
忏悔录
曾经有一个很好的配置管理工具在我面前,我没有理睬,直到版本混乱的时候才后悔莫及,工作中最大的痛苦莫过于此,如果上天再给我一次机会的话,我向对它说三个字:我要你。如果非得加一个期限的话,我希望是一辈子。
概念
不要和“计算机零配件组装”搞混淆。
软件配置管理(Software Configuration Management, SCM)是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
配置管理与任何一位项目成员都有关系,因为每个人都会产生工作成果。配置管理是否有成效取决于三个要素:人、规范、工具
1. 什么是软件配置管理
配置管理的商业理念
企业的商业需求决定了配置管理的力度,我们不必追求完美无缺的配置管理,而是让开发团队恰好够用就行,并将为配置管理所付出的代价控制在预算之内。
富有成效的配置管理的特征:
任何项目成员都要对其工作成果进行配置管理,应当养成良好的习惯。不必付出过多的精力,最低要求是保证重要工作成果不发生混乱。
配置管理规范应当清晰明了,便于执行,不必在细节方面要求太多,不给项目人员添加过多的负担,不使人厌烦。
选择配置管理工具应当综合考虑价格、易用性和功能因素,而不是购买最先进的工具。令人满意的工具通常是价格低廉、简便易用、功能恰好够用。
CMM/CMMI对配置管理过程域论述得十分清楚详细,假设完全按照CMM/CMMI的要求执行的话,你可以得到100分(满分)的配置管理成绩。
出于商业利益考虑,我不向往100分的成绩,因为代价太高了。我更愿意付出前者的30%左右代价获取60-70分(及格)的成绩,这样最划算。
70-100分的配置管理成绩对于大部分商业软件而言没有多少意义,那属于锦上添花,如果我们没有足够的精力的话,那么就以最低的代价达到及格分数就行了。
2. 为什么需要软件配置管理
如果没有软件配置管理,将有什么坏处?
最大的麻烦是工作成果被覆盖。如果不采用配置管理软件来保存工作成果的历史版本的话,人们在同一个文件上修改内容,保存之后,那么新的内容覆盖了老的内容。
多数情况下新的内容比老的内容好,覆盖了也没关系。但是总有不少意外,例如程序员修改了老程序员之后,突然发现新程序是错误的,而老程序却是对的,可是老程序被新程序覆盖了,再也无法恢复。
怎么办呢?还能怎么办,只好重新写老程序再覆盖新程序呗,可是过一阵子又发现新程序也又可取之处,这时却无法恢复新程序了,只好重新写新程序再覆盖老程序,…如果你经常碰到这样的事情,你会发疯的。
为了避免成果被覆盖,很多人采用最原始的手工管理版本的方式,例如给文件加后缀“-01”、“-02”以表示版本。天长日久,工作目录下就会有一堆带数字后缀的文件,而且你自己也忘记了数字后缀代表什么内容,管理起来非常麻烦。
我在读大学的时候,我自己以及周围的人都不知道软件配置管理,所以大家都有上述经历。幸好在学校里的人时间不值钱,工作成果也不值钱,可以穷折腾。但是在企业里工作,我们可不能不懂软件配置管理,否则就贻误工作浪费金钱了。
2. 为什么需要软件配置管理
使用软件配置管理,将有什么好处?
最直接的好处是工作成果的所有版本都被保留着,不会丢失也不会被覆盖,你不会气得发疯了。
如今硬盘的存储空间价格低廉,用于保存历史版本的存储空间的成本可以忽略不计。如果你保存了工作成果的100个历史版本,哪怕99版本都是“垃圾”,只有一个版本里有“黄金”,那也值了。所以你尽管放心保存历史版本好了,累的是计算机又不是你,你怕什么。
间接的好处是,项目的所有工作成果被完整地保留下来,这是企业的知识财富,可以被人们很好地分享利用。而且减少了人员辞职造成的损失,企业老板可以放心很多了。
因为如果没有配置管理的话,人走了,即使他把成果刻录成光盘交给接收者,别人也搞不清楚那些成果的演化过程。
我在事业部推广CMM的时候,有一天事业部总经理郑重其事地找我商谈,说某个产品线的经理要“跳楼N次”,请大家帮忙“解救”。因为他把更新北京客户的软件安装到天津客户那里,却把更