沙漠飞雪 2008-5-9 00:49
【未雨绸缪-理解软件配置管理】赏析一
赏析的第一篇。
从今天起,我们的活动就拉开帷幕o(∩_∩)o... 欢迎大家积极参与
《未雨绸缪—理解软件配置管理》 作者:流水先生
作者以形象的比喻,生动的笔触,将读者引入配置管理的世界……
沙漠飞雪 2008-5-9 00:50
[b][color=blue]以下节选了本书前言和第一章的精彩内容,欢迎大家积极参与讨论[/color][/b]
[b][color=darkslateblue]== 致读者的信 ==[/color][/b]
据说我小的时候,吃西瓜就喜欢吃尖儿。一桌西瓜刚切好,大人一不留神,就有很多块儿已经没尖儿了。这说明的第一个问题是,打小我就不是个老实本分的孩子。这说明的第二个问题是,西瓜数尖儿最好吃,最甜。如果肚子容量不大的话,应该先吃它。
我现在要做的事,就是和本书的读者们一起,去吃西瓜尖儿。软件配置管理(Software Configuration Management, SCM)可是个大西瓜,涉及很多方面,有很多细节在里面。作为广大读者,特别是并不以软件配置管理为生的读者,恐怕没这个闲心,钻研每一个方面的每一个细节,吃到西瓜露出青皮儿。这本书介绍的是软件配置管理的基本概念、基本思想、基本方法和基本要点,总之,是最核心的内容,框架性的内容。本书的目标是,让读者用几个小时的时间,掌握软件配置管理的基础知识。
软件配置管理与软件研发中的所有角色都有关系。开发人员需要版本控制来帮忙,以避免版本混乱,工作成果丢失。测试人员需要缺陷跟踪系统来帮忙,防止自己发现的缺陷,程序员忘了改,最后连自己都忘记了。项目经理关心项目进度,这同样和软件配置管理有关。所以,不论您现在专注于什么工作,不论您将来的理想是什么,只要与软件研发相关,相信本书都会有利于您的成长。
[color=navy][b]== 第一章中,用打比方的方法领读者入门 ==[/b][/color]
[b] 保险柜[/b]
软件配置管理为软件开发提供了一个保险柜。保险柜里,存的都是值钱的东西。存进保险柜,是因为怕自己不小心弄丢,或者被偷走。软件资产也一样,甚至比金戒指之类的更值钱。软件资产也会丢失,特别是源代码。比如,一个软件项目完成后,如果没有进行存储/归档等工作,等再过几个月,想基于版本1.0开发版本2.0的时候,可能会发现1.0的源代码找不着了……无奈,只好从头写。这是自己不小心弄丢的情况。软件资产还有可能被窃取或泄漏。虎视眈眈的竞争对手,无孔不入的商业间谍……所以,一定要把软件资产放进类似保险柜的地方。
[b]岩钉[/b]
这是来自攀岩者的经验。系上保险绳,每向上攀一小段,就在岩壁上打个岩钉。这样,即使偶尔失手,也不会从半山坠到谷底,只是向下滑一小段。软件开发也是一样,适当的保存历史版本,可以在失手的时候回退到上一个安全的地方。这里的版本,不仅仅指具体某个文件的版本,也指整个产品的版本。不仅指源文件,也包括需求、设计、测试用例……当我们关心软件产品的部署和运行情况时,版本还意味着,某个软件,上次安装的版本是多少?这次升级到哪个版本?如果升级失败,应该回退到上一个版本。
[b] 脚印[/b]
一步一个脚印。这有两个含义。首先,先走好这一步,踩实了,踩稳了,再走下一步。软件研发也是这样,需要里程碑;需要基线;需要每个迭代结束时,内部或外部的发布。这些是项目的脚印。在每个脚印处,我们要认真检查,是不是踩实踩稳了。这可能是通过相关人员的评审,领导的审批,可能是通过软件测试,也可能是通过某些检查。
其次,一个个的脚印,就构成了足迹。它告诉我们,我们是如何一路走来的,走的是哪条路。必要的时候,我们可能会回顾。还有可能,我们会回到半路,以便从那里再闯一条新路出去。对应到软件开发,我们就是要保存历史上的版本,已备将来的不时之需。
……
[[i] 本帖最后由 沙漠飞雪 于 2008-5-9 00:59 编辑 [/i]]
流水先生 2008-5-9 21:59
岩钉和脚印的比喻,不见于其他专家的著述,纯属流水先生的一家之言。如有不妥,欢迎大家指正!
流水先生 2008-5-9 22:01
《致读者的信》是博文视点的林建峰编辑([email]linjianfeng@broadview.com.cn[/email])帮忙缩编的。在此致谢!
CMStruggling 2008-5-10 12:48
《未雨绸缪—理解软件配置管理》
《未雨绸缪—理解软件配置管理》
一目了然,
相信大家和我一样,
第一眼肯定是对这本书的书名感兴趣!
未雨绸缪的意思相信大家也都知道,
就是说做任何事情都应该事先准备,以免临时手忙脚乱..
希望流水先生来这里谈谈当时起这个名字时候的心境,
和广大读者朋友共同分享!!
谢谢!!
CMStruggling 2008-5-10 13:07
我也谈谈我的看法。
先说下大家熟知的故事;
电视剧《士兵突击》相信很多朋友都看过,
其中许三多他们正式成为老A的一员时,
关于老A的称谓,
袁朗和他们有过精彩对话:
训练完的老A们集结列队中,袁朗在训话:"这话是对新来的同志们说的,咱们为什么称自己为老A?"
许三多下意识看看齐桓,齐桓没看见他一样,肃立。
吴哲:"因为ABCDEFG,A是老大。"
袁朗:"战场上有生死没老大,谁要真这么想我削他。A是老大这种话听起来是不是很讨厌?就是编出来让你们讨厌的。"
许三多又看齐桓,齐桓做个鬼脸,立刻恢复严肃。
袁朗脸上有些调皮的表情:"现在解释老A的真正意思,你玩牌吗?"他问的是许三多。
许三多:"我,我不玩牌,玩牌没意义。"
袁朗笑了笑:"那你体会就不会太深刻了,这基地流行的一种玩法,A是总得藏着掖着,最后用来出奇制胜的那张牌。老A就是藏着掖着的那张牌,藏着掖着,才能出奇制胜。"他特意看了看新来的几个,果然都有些哑然。
袁朗:"还有第二个意思,你看来有上网聊天的习惯?"这回问的是吴哲。
吴哲:"报告,明白了。网聊说A是骗的意思,我A你一下就是我骗你一下。第二层意思是兵者诡道,对敌人要A,对我们……他存心让话里有点其他意思--更加要A,老A嘛。"
袁朗:"这里有个举一反三的家伙。玩笑到此,我们是把刀,我们的训练主要就是把这把刀捅出去再收回来,尽可能不损锋刃地收回来。我保证一点,你们光练这个捅出和收回花费的精力,足够把两门外语学会像母语一样好。"说着,他挥了挥手,"练吧。"
从网上找的他们的对话,有点长,但看过这部电视剧的人应该都会记忆犹新;
老A的称谓可谓是一种特色,
兵法上常说的有句话叫“兵不厌诈”,
或许有些跑题,
但“一理通,万理明”,
软件配置管理做的也正是如第一章中所说的保险柜的工作,
不对,
确切的说应该是不仅要重视这个保险柜,更是如何更好的管理这个保险柜;
首先它是个保险柜,
即使里面没有什么东西,
但如果一旦外面在锁着,看不到,
外人心里踹度里面结结实实的定全是宝贝!!
正如文中所说,
如今信息战,商业战..
让软件配置管理工作者更如履薄冰,也更要用心!!
个人观点,
希望大家都来说说自己的看法。
CMStruggling 2008-5-10 13:18
[quote]== 致读者的信 ==
据说我小的时候,吃西瓜就喜欢吃尖儿。一桌西瓜刚切好,大人一不留神,就有很多块儿已经没尖儿了。这说明的第一个问题是,打小我就不是个老实本分的孩子。这说明的第二个问题是,西瓜数尖儿最好吃,最甜。如果肚子容量不大的话,应该先吃它... [/quote]
这说明的第三个问题是,西瓜就尖儿那儿最容易吃,可以一口就吃掉,甚至不用吐籽;
先不说后面的“吃到西瓜露出青皮儿”,
仅是现在的吃尖还不用吐籽,相信大家应该都乐于去做吧..
若是这个都不愿意动动,
那真的是“没有意义”了!!
OK,
时正值夏天,
天气已经开始炎热难耐;
就让我们一起去吃西瓜尖儿吧。。
::em64::
CMStruggling 2008-5-10 13:32
[quote]岩钉
这是来自攀岩者的经验。系上保险绳,每向上攀一小段,就在岩壁上打个岩钉。这样,即使偶尔失手,也不会从半山坠到谷底,只是向下滑一小段。软件开发也是一样,适当的保存历史版本,可以在失手的时候回退到上一个安全的地方... [/quote]
记得上大学的时候,
学校的攀岩队也是真牛,是学校的一大亮点,
平日里能经常看到他们训练不咋的,
可当他们去参加比赛夺得冠军回来的时候,
不得不让大家对他们另眼相待,
毕竟确实牛啊!!
也确实没想到流水先生把软件配置管理和攀岩联系到一起,
有才,
佩服!!
软件配置管理貌似和生活中日常有太多类似,
比如流水先生的那篇“包子的配置管理”,
也确实太有才了,
如此生动的笔触让我们在不知不觉中收获很多。
::em71::
CMStruggling 2008-5-10 13:39
[quote]脚印
一步一个脚印。这有两个含义。首先,先走好这一步,踩实了,踩稳了,再走下一步。软件研发也是这样,需要里程碑;需要基线;需要每个迭代结束时,内部或外部的发布。这些是项目的脚印。在每个脚印处,我们要认真检查... [/quote]
相信这里的说法很实际了,
做过项目配置管理的人都应该清楚理解这里的意思。
我也举个例子;
路遥的《人生》相信很多朋友也都看过,
路遥在《人生》中引用了作家柳青的一段话:
“人生的道路虽然漫长,但紧要处常常只有几步,特别是当人年轻的时候。
没有一个人的生活道路是笔直的,没有岔道的。有些岔道口,譬如政治上的岔道口,事业上的岔道口,个人生活上岔道口,你走错一步,可以影响人生的一个时期,也可以影响一生。”
很经典的话语!!
相信不用多说,
大家也都能明白了,
至少我对这个是理解最深刻……
蓝色天空 2008-5-10 14:28
首先,我想说通过阅读入门这部分我基本对配置管理从大的方面有了一些认识.
1.保险柜来形容配置管理资产的容器真的很形象,我想作者这样比方主要是要强调配置管理的软件资产的高价值性吧.不过呢,这个保险柜估计只能由一个保险柜管理员经管吧,不能任何人都能随便开柜子的,所以其他人员想使用里面的资产就要登记了,保险柜管理员除了要把柜子里的东西整理的井井有条明明白白外,还要把登记表整的很清楚了以便给领导查看吧.我自己瞎说到这里,觉得自己有点把保险柜和配置库类比起来了,但是觉得保险柜真的又不能跟配置库相比吧,觉得保险柜太死里面装的是完整的东西(不可更改的),而配置库里装的就多了(包括过程中的以及最终产品什么的),所以呢,希望专家指点我该不该把他们相比较呢?如果可以相比较的话怎么样让我看到他们真正的类似处呢?我也希望书中下文能找到相关的解除我疑惑的地方呢.
2.关于岩钉和脚印的比方我觉得比较容易接受,学习了.
[[i] 本帖最后由 蓝色天空 于 2008-5-10 14:31 编辑 [/i]]
流水先生 2008-5-11 11:22
呵呵,这个全不是我的功劳啊,原书名就是《理解软件配置管理》,懂老大说,应该让书名吸引人一点,博文的编辑也这么说,可我又想不出来…… 问周围的同事,“prepare for tomorrow”中文怎么翻译最好,同事说,“未雨绸缪呗”。于是就未雨绸缪了~
[quote]原帖由 [i]CMStruggling[/i] 于 2008-5-10 12:48 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=90131&ptid=12394][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
《未雨绸缪—理解软件配置管理》
一目了然,
相信大家和我一样,
第一眼肯定是对这本书的书名感兴趣!
未雨绸缪的意思相信大家也都知道,
就是说做任何事情都应该事先准备,以免临时手忙脚乱..
希望流水先 ... [/quote]
流水先生 2008-5-11 11:30
回复 7# 的帖子
馋了~ 现在西瓜还太贵,再等等…… 书面市的时候就差不多了大概~
流水先生 2008-5-11 11:35
是啊是啊,“任何比喻都是蹩脚的”,没有完全恰当的比喻,“A就像B”,但是A不是B。
保险柜,只要能做到“有且仅有适当的人能开”就可以了。软件配置管理可比这个复杂多了。用保险柜作比,只是用来引入。
[quote]原帖由 [i]蓝色天空[/i] 于 2008-5-10 14:28 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=90152&ptid=12394][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
首先,我想说通过阅读入门这部分我基本对配置管理从大的方面有了一些认识.
1.保险柜来形容配置管理资产的容器真的很形象,我想作者这样比方主要是要强调配置管理的软件资产的高价值性吧.不过呢,这个保险柜估计只能由一 ... [/quote]
CMStruggling 2008-5-11 14:57
[quote]原帖由 [i]流水先生[/i] 于 2008-5-11 11:22 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=90257&ptid=12394][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
呵呵,这个全不是我的功劳啊,原书名就是《理解软件配置管理》,懂老大说,应该让书名吸引人一点,博文的编辑也这么说,可我又想不出来…… 问周围的同事,“prepare for tomorrow”中文怎么翻译最好,同事说,“未雨 ... [/quote]
原来还有这个小插曲呢;
未雨绸缪确实不错的哦.
“prepare for tomorrow”..
魔术师约翰逊 2008-5-12 10:46
流水先生的比喻的确生动、形象,对于初步涉足SCM的人而言,这样的比喻能让他们更快明白SCM到底在做什么。事实上,现在市面上这类比较容易入门的书太少了,而作为相对冷门的SCM领域而言,就更需要这样的书,能够很快的把初学者领进SCM的大门,流水先生的确做了一件很有意义的工作。
asukataozi 2008-5-12 12:11
比喻很形象,其实类似的比喻在我们生活中都是显而易见的,只是很多东西都已成习惯,或者是理所应当的事.
比如:我们刷银行卡,信用卡,都会有消费记录,这些记录我们可不可以将他们看作是版本,每次消费是一次变更呢?
又比如:学校里的学籍管理,记录着学生的成绩,表现等,每次的升学考可不可以理解为一个BaseLine.
这些其实就是信息管理,就其概念而言,其实是配置管理的基础:版本,变更.作为配置管理还要考虑到产品的安全性,风险性和配置项的复用性等!是信息管理的升级版!!~作好配置管理不容易啊.
呵呵,比喻打得不好,大家别见笑啊!~
scmscmscm 2008-5-12 13:06
脚印这个比喻,如果是平时在路上走,不太会看到自己走过的路留下的脚印,也不能根据脚印回到某个地方再找一条路去走。
但如果是在雪地上,就可以了。而且因为雪地上可供参考的标志也不多,容易迷路,根据脚印来找自己走过的路也比较有用。
可以说是“雪地上的脚印”。对应的就是“悬崖上的岩钉”,或者“珠峰上的岩钉”,用来传递火炬。
“保险柜”放在哪里还没有想好,“公司里的保险柜”?
CMStruggling 2008-5-12 19:31
[quote]原帖由 [i]scmscmscm[/i] 于 2008-5-12 13:06 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=90433&ptid=12394][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
脚印这个比喻,如果是平时在路上走,不太会看到自己走过的路留下的脚印,也不能根据脚印回到某个地方再找一条路去走。
但如果是在雪地上,就可以了。而且因为雪地上可供参考的标志也不多,容易迷路,根据脚印来找自 ... [/quote]
说的相当好,能联想这么多,也都有一定的道理的。
同时个人觉得是不是有点太咬文嚼字了;
本来流水先生用这几个比喻保险柜、岩钉、脚印其实也是用一种打比方的方法引大家入门,
若在这里都说的那么深,
还反复的细挖了这么多,貌似不是什么很好的事,会给人有点啰嗦累赘的感觉;
个人观点:em19 。
流水先生 2008-5-12 23:14
[quote]原帖由 [i]CMStruggling[/i] 于 2008-5-12 19:31 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=90590&ptid=12394][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
说的相当好,能联想这么多,也都有一定的道理的。
同时个人觉得是不是有点太咬文嚼字了;
本来流水先生用这几个比喻保险柜、岩钉、脚印其实也是用一种打比方的方法引大家入门,
若在这里都说的那么深,
还反复 ... [/quote]
同意同意!建议大家也举些平时自己用的比方,或者向其他同志解释软件配置管理的方法。
boaczy 2008-5-16 10:14
正打算在公司与PM们分享CM的经验,岩钉、脚印的比喻让我眼前一亮。
确实,在以往的软件公司中,CM更注重的是保险库,所有项目完成后,必须放入资产库,然后做统一整理,有新项目的时候,就得出库。随之产生了入库、出库流程……
但是现在我在一家网络公司,常用的应用程序代码随时会随用户需求改变。在这种状态下,如何更好的保证代码的稳定性就是重中之重,而以往软件公司的入库出库流程简直就是多余,没有一个开发人员会接受如此繁琐而且没有效率的流程。他们要求的是,我们的代码在一起,我们随时能改,随时可以提交测试,随时可以上线,互联网,要的就是更快的给用户眼前一亮。
ok,这样,作为CM,就必须保证上线的代码是稳定的,任何一个处在并行开发的成员所用的代码都是稳定的。每次分享的时候,都会从开发的角度出发去说明CM的工作如何做,如今,流水先生的岩钉,确实是非常贴切的说法,相信有更多的开发人员可以理解他,CM的工作水到渠成了。
至于脚印,公司的文化决定了tx们更多的关注结果,在快速响应快速产出的情况下,最容易被忽视的是过程。但是,现在的工作势必是多角色合作完成的,一个PM能从需求挖掘一直做到项目总结吗?当然我不否认有这样的高手,但是这样的工作流程恐怕是10年前的了。项目有里程碑,每个里程碑的执行人不同,专业不同,如何让项目顺利进行,甚至于多个项目并行(这在我们这太常见了),脚印一定是需要留下的。对于代码来说,这同样是一份不可或缺的资产,说的严重些,这些脚印经过了整理,即使某天,代码发生了灾难,要做的无非是照着原有的设计写代码,损失能有多大?但是,如果没有这些,那对于你的团队来说,简直就是世界末日了。