前言

据说我小的时候,吃西瓜就喜欢吃尖儿。一桌西瓜刚切好,大人一不留神,就有很多块儿已经没尖儿了。这说明的第一个问题是,打小我就不是个老实本分的孩子。这说明的第二个问题是,西瓜数尖儿最好吃,最甜。如果肚子容量不大的话,应该先吃它。

我现在要做的事,就是和本书的读者们一起,去吃西瓜尖儿。软件配置管理(Software Configuration Management,SCM)可是个大西瓜,涉及很多方面,有很多细节在里面。广大读者,特别是并不以软件配置管理为生的读者,恐怕没这个闲心去钻研每一个方面的每一个细节,吃到西瓜露出青皮儿。这本书介绍的是软件配置管理的基本概念、基本思想、基本方法和基本要点。总之,是最核心的、框架性的内容。本书的目标是,让您用几小时的时间,掌握软件配置管理的基础知识。

本书是写给所有与软件研发有关的人士的,而不仅仅是写给软件配置管理专业人员的。原因之一在于软件配置管理的特殊性。软件配置管理与软件研发中的所有角色都有关系。开发人员集中精力于编写代码,但是需要版本控制来帮忙,以避免版本混乱,工作成果丢失;测试人员集中精力于测试,但是需要缺陷跟踪系统来帮忙,防止自己发现的缺陷开发人员忘了改,最后连自己都忘记了。项目经理关心项目进度,这同样和软件配置管理有关:如果能正确地运用分支这个手段,让不同的工作(比如系统测试和开发人员继续开发)并行起来,可以大大加快项目的进展速度。还有需求管理人员、系统架构师、用户文档编写人员、质量保证人员……每个人都要面对软件配置管理,都应学习使用它,并从它那里受益,因为软件配置管理为软件研发提供了基础性的支持环境。

另一个理由是,在很多情况下,软件配置管理应该怎么做,深深地受当时特定情况的影响。而这特定的情况、特定的背景,往往是研发团队的其他成员要比软件配置管理工程师更清楚。就好像衣服穿多了还是穿少了,要听本人的意见,冷暖自知。

对于正在从事或打算从事软件配置管理工作的读者,这本书也是颇有价值的。日常的工作,可能会让我们只见树木,不见森林。而通过这本书,可以概览软件配置管理的全貌,系统地了解我们要做的事情,了解我们的使命。另一方面,本书所给出的软件配置管理的基本原理和基本方法,来自于业界的最佳实践和已经形成的解决模式。这些为解决特定研发背景下的具体问题,提供了很好的指导。我们需要做的是,考察具体问题、具体情况,融会贯通地运用软件配置管理的基础知识,产生优秀的具体解决方案,并付诸实施。

至于本书的书名,其中的“未雨绸缪”有如下三层含义。首先,记录历史,以供不时之需,这是软件配置管理的重要功能之一。其次,在软件研发中,随着软件研发规模的不断扩大,软件系统复杂性的不断增长,对软件配置管理的需求也会越来越强烈。因此,了解软件配置管理,是在为明天做准备。最后,本书帮助读者充实自己。谁不想成长呢?不论你现在专注于什么工作,不论你将来的理想是什么,只要与软件研发相关,相信本书都会有利于你的成长!

最后说一下本书的风格。就像这篇自序的风格一样,本书通俗易懂,偶尔还诙谐一下。希望读者在阅读时,能分享我写作时的愉悦。