SCM Introduction

Come from Mr. Flow

------------------------------------------------------------------------------------------------------------
啥叫软件配置管理?——一个通俗的解释
作为一位从事软件配置管理工作的同志,我经常被亲朋好友问到的是,我有时候要向各级领导游说的是,啥叫软件配置管理?
我的经验是:

1. 如果想让他们从迷茫到更迷茫,那就跟他们背一段ISO/CMM里的定义。

2. 如果不想深谈,或者背景实在相差太远,那就跟他们说:
“当很多人在一起编写软件的时候,需要一些专门的管理和技术,让他们能够合作顺畅。
软件配置管理就是其中的一种。”

3. 如果大概讲一下,能有个概念,那就跟他们说:
“软件配置管理是围绕软件资产的管理。
啥叫软件资产呢,就是设计文档啦,源代码啦,可以跑的程序之类的。
那么,有什么要管理的呢?让我们把它和图书馆的图书管理做个对比。

它们有一些相似点。
首先,图书馆图书管理管的是图书资产,软件配置管理管的是软件资产,它们管的都是信息资产。

其次,图书管理,需要把图书进行分类,以便检索,需要图书存放在合适的地方,以便存取,还要防止虫吃鼠咬。
软件配置管理也类似,需要把软件资产——主要是源代码什么的,放在合适的目录结构里,放在合适的地方存储,防止丢失或者弄乱。

再次,在图书馆,要记录谁借出了哪本书,还没还。
而软件配置管理中也类似,需要记录谁借出了什么文件。
不过,跟图书管理不同的是,软件开发人员借出文件,常常是为了修改它。
软件配置管理要记录谁修改了什么文件,为什么修改,等等。

这里就引出了一系列事情要考虑:
比如,每个文件,不断修改,就产生了一个又一个的版本,需不需要存储呢?
一个产品的整个源代码树,也在总体上产生一个又一个的版本,需不需要存储呢?
怎么存储呢?

比如,可能两个人想要同时修改一个文件。这可能会导致一个人的工作丢失。
那么,是让他们一个改完了另一个再改呢,还是让他们同时改,将来合并呢?怎么保证呢?

再比如,有时候,一个公司会生产一系列相似的软件产品,它们之间是不是可以有某些共享呢?
在一个产品上的改动,是不是能比较方便的加到另外的产品上去呢?

所以说,软件配置管理是围绕软件资产的管理:
保证它们的存储;保证改动它们的时候,也就是进行软件开发的时候,不会产生混乱,有条有理,省时省力;等等。”


第3种解释,是我最喜欢的解释。
虽然还不完全(比如,没有说配置/关系),也不严谨(净是用劳动人民的大白话说的),
但是能给没怎么接触过SCM的同志一个比较正确、比较容易接受的第一印象了。
而且让人觉得,SCM确实有用~~~

转载请注明源自www.SCMLife.com,请保留版权. 本贴地址:http://bbs.scmlife.com/viewthread.php?tid=3360

原文地址:https://www.cnblogs.com/allenblogs/p/1762676.html