Quest 2008-6-28 12:05
我先抛块砖,希望大家贡献玉
[font=宋体]我先抛块砖,希望大家贡献玉[/font]
[font=Times New Roman] [/font]
[font=宋体]引子:[/font]
[font=宋体]认识新朋友是件快乐的事情,但是在介绍自己的工作时,我一般会说自己的是软件工程师,这样别人就知道,“哦,程序员”,于是就不会接着问了,而偶尔也会说自己是配置管理人员,这一下就麻烦了,“哦,管理者啊,牛啊,管多少人啊?”于是就需要多费几番唇舌,“哦,我不管人,我只管代码,管程序。”“那有什么好管的啊?”刚刚还两眼放光,现在就显出点鄙夷的神色了,他一定在想我在试图暗自抬高自己的身份,试图混到管理者队伍中去。好吧,无论如何,我需要纠正他对我的误解。“给你举个例子吧,比如甲和乙两个程序员都想改代码,但是一不小心就会造成甲把乙刚刚改好的代码覆盖掉。这种情况就需要我们出马了。”“哦,那你还是管人,让他们不要干这种蠢事。”“哦,是啊,我们只是提供一套方法,让他们避免出现上面提到的糟糕情况。所以不是管理工作,只是支持工作。”“原来不是官儿啊,只是个敲边鼓的喽啰。”“恩,我敲的越响,他们干的越欢。”[/font]
[font=Times New Roman] [/font]
[font=宋体]问题:[/font]
[font=宋体]谢天谢地,上面遇到的是完全的门外汉,如果是业内人士,跟我讨论配置管理,我一样会晕。很简单,我发现越是基本的概念越难解释清楚,或者说我就没有理解透彻。[/font]
[font=Times New Roman] [/font]
[font=宋体]下面我就抛块砖,希望大家多多贡献玉。[/font]
[font=Times New Roman] [/font]
[font=宋体]还是从自己的工作说起,我在项目中负责软件配置管理、缺陷管理、产品集成、编译、发布,还会制定或者完善一些和这些工作相关的流程([/font][font=Times New Roman]process[/font][font=宋体])或者支持过程([/font][font=Times New Roman]procedure[/font][font=宋体])。[/font]
[font=Times New Roman] [/font]
[font=宋体]除了软件配置管理,其他的都是那么显而易见,只是从名字上就知道是干什么,至于怎么干,当然是各有各的方法和策略。[/font]
[font=Times New Roman] [/font]
[font=宋体]软件配置管理,先分解成三个词:软件、配置、管理。相信最难说明白的词就是“配置”了,中国人大多数是官儿迷,对于管理自由一套学问,也就都有自己的理解,虽然套用过来不一定正确,但是他总是明白个大概,唯有这“配置”成了最难解释的。[/font]
[font=Times New Roman] [/font]
[font=宋体]于是,[/font][font=Times New Roman]google[/font][font=宋体]之。[/font]
[font=Times New Roman] [/font]
[font=宋体]找到了下面这个说法,原始链接忘了,但是显然下面这个说法中有很多“蹩脚”的翻译。[/font]
[font=Times New Roman] [/font]
[font=宋体]×××××××××××××××××[/font]
[font=Times New Roman]configuration[/font]
[font=宋体]通常,配置是安排--或者是造成安排的处理--整体中的部分的过程。 [/font][font=Times New Roman] [/font]
[font=Times New Roman]1) [/font][font=宋体]在计算机和计算机[/font][url=http://networking.ctocio.com.cn/][color=windowtext][font=宋体]网络[/font][/color][/url][font=宋体]中,配置通常指的是在设备附加、容量和能力,以及系统构成方面的硬件和软件信息。 [/font][font=Times New Roman] [/font]
[font=Times New Roman]2) [/font][font=宋体]在网络中,配置往往意味着网络拓朴结构。 [/font][font=Times New Roman] [/font]
[font=Times New Roman]3) [/font][font=宋体]在安装的硬件和软件中,配置有时指的是它们提供的各种处理方法选项的定义[/font]
[font=Times New Roman] [/font]
[font=宋体]×××××××××××××××××[/font]
[font=宋体]又发现了[/font][url=http://en.wikipedia.org/wiki/Configuration][color=windowtext][font=Times New Roman]http://en.wikipedia.org/wiki/Configuration[/font][/color][/url][font=宋体],[/font]
[font=Times New Roman] [/font]
[size=10.5pt]The term configuration has several meanings:[/size]
[list][*][url=http://en.wikipedia.org/wiki/Computer_configuration][color=windowtext][font=Times New Roman]Computer configuration[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Electron_configuration][color=windowtext][font=Times New Roman]Electron configuration[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Configuration_%28geometry%29][color=windowtext][font=Times New Roman]Configuration (geometry)[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Configuration_%28mathematics%29][color=windowtext][font=Times New Roman]Configuration (mathematics)[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Molecular_configuration][color=windowtext][font=Times New Roman]Molecular configuration[/font][/color][/url][font=Times New Roman] [/font][*][font=Times New Roman]In sociology, [/font][url=http://en.wikipedia.org/w/index.php?title=Figuration&action=edit&redlink=1][color=windowtext][font=Times New Roman]figuration[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/w/index.php?title=Product_configuration&action=edit&redlink=1][color=windowtext][font=Times New Roman]Product configuration[/font][/color][/url][font=Times New Roman] [/font][*][font=Times New Roman]In software, [/font][url=http://en.wikipedia.org/wiki/Configure_%28computing%29][color=windowtext][font=Times New Roman]configure[/font][/color][/url][font=Times New Roman] is the output of [/font][url=http://en.wikipedia.org/wiki/Autotools][color=windowtext][font=Times New Roman]Autotools[/font][/color][/url][font=Times New Roman] and used to detect system configuration. This is referred to as "./configure" in [/font][url=http://en.wikipedia.org/wiki/Unix][color=windowtext][font=Times New Roman]Unix[/font][/color][/url][font=Times New Roman]. [/font][*][font=Times New Roman]in software, a [/font][url=http://en.wikipedia.org/wiki/Configuration_file][color=windowtext][font=Times New Roman]configuration file[/font][/color][/url][font=Times New Roman] is used to configure the initial settings for a computer program. [/font][*][font=Times New Roman]in software, more generally, a system comprised of a specified set of [/font][url=http://en.wikipedia.org/wiki/Components][color=windowtext][font=Times New Roman]components[/font][/color][/url][font=Times New Roman] or elements of specified versions (or version ranges). [/font][*][font=Times New Roman][/font][/list][font=宋体]我试图蹩脚的翻译一下最后一句:在软件产品中,配置是指由一组特定的组件版本构成的系统。[/font]
[font=Times New Roman] [/font]
[font=宋体]我的理解是,配置是软件产品的各个部分的信息的一个集合,而各部分之间的联系不是杂乱无章的,是有机的结合在一起的。[/font]
[font=Times New Roman] [/font]
[font=宋体]换言之,软件产品各个组件的(版本)信息有机组成了软件的一个配置。[/font]
[font=Times New Roman] [/font]
[font=宋体]顺着这个链接,我找到了[/font][url=http://en.wikipedia.org/wiki/Configuration_management#cite_note-0][color=windowtext][font=Times New Roman]http://en.wikipedia.org/wiki/Configuration_management#cite_note-0[/font][/color][/url]
[font=Times New Roman] [/font]
[size=10.5pt]Configuration management[/size][size=10.5pt]Configuration management (CM) is a field of [url=http://en.wikipedia.org/wiki/Management][color=windowtext]management[/color][/url] that focuses on establishing and maintaining consistency of a product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.[url=http://en.wikipedia.org/wiki/Configuration_management#cite_note-0#cite_note-0][color=windowtext][1][/color][/url] For information assurance, CM can be defined as the management of security features and assurances through control of changes made to hardware, software, firmware, documentation, test, test fixtures, and test documentation throughout the life cycle of an information system.[url=http://en.wikipedia.org/wiki/Configuration_management#cite_note-1#cite_note-1][color=windowtext][2][/color][/url][/size]
[size=10.5pt]History[/size][size=10.5pt]Configuration management was first developed by the [url=http://en.wikipedia.org/wiki/United_States_Department_of_Defense][color=windowtext]United States Department of Defense[/color][/url] in the 1950s as a technical management discipline. The concepts have been widely adopted by numerous technical management models, including [url=http://en.wikipedia.org/wiki/Systems_engineering][color=windowtext]systems engineering[/color][/url], [url=http://en.wikipedia.org/wiki/Integrated_Logistics_Support][color=windowtext]integrated logistics support[/color][/url], [url=http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration][color=windowtext]Capability Maturity Model Integration[/color][/url] (CMMI), [url=http://en.wikipedia.org/wiki/ISO_9000][color=windowtext]ISO 9000[/color][/url], [url=http://en.wikipedia.org/wiki/Prince2][color=windowtext]Prince2[/color][/url] project management methodology, [url=http://en.wikipedia.org/wiki/COBIT][color=windowtext]COBIT[/color][/url], [url=http://en.wikipedia.org/wiki/Information_Technology_Infrastructure_Library][color=windowtext]Information Technology Infrastructure Library[/color][/url] (ITIL), [url=http://en.wikipedia.org/wiki/Product_lifecycle_management][color=windowtext]product lifecycle management[/color][/url], and [url=http://en.wikipedia.org/wiki/Application_Lifecycle_Management][color=windowtext]application lifecycle management[/color][/url]. Many of these models have redefined configuration management from its traditional holistic approach to technical management. Some treat configuration management as being similar to a librarian activity, and break out change control and [url=http://en.wikipedia.org/wiki/Change_management][color=windowtext]change management[/color][/url] as separate areas of discipline (as Prince 2); some break out the traditional elements of revision control and engineering release into separate management disciplines; others treat CM as an overarching management discipline.[/size]
[size=10.5pt]Traditional configuration management[/size][size=10.5pt]Traditionally configuration management has four elements:[/size]
[list=1][*][font=Times New Roman]Configuration identification [/font][*][font=Times New Roman]Configuration change control (or change management) [/font][*][font=Times New Roman]Configuration status accounting [/font][*][font=Times New Roman]Configuration verification and auditing [/font][/list][size=10.5pt]These terms and definitions change from standard to standard, but are essentially the same.[/size]
[list][*][font=Times New Roman]Configuration identification is the process of identifying the attributes that define every aspect of a configuration item. A configuration item is a product (hardware and/or software) that has an end-user purpose. These attributes are recorded in configuration documentation and baselined. Baselining an attribute forces formal configuration change control processes to be effected in the event that these attributes are changed. [/font][/list][list][*][font=Times New Roman]Configuration change control is a set of processes and approval stages required to change a configuration item's attributes and to re-baseline them. [/font][/list][list][*][font=Times New Roman]Configuration status accounting is the ability to record and report on the configuration baselines associated with each configuration item at any moment of time. [/font][/list][list][*][font=Times New Roman]Configuration audits are broken into functional and physical configuration audits. They occur either at delivery or at the moment of effecting the change. A functional configuration audit ensures that functional and performance attributes of a configuration item are achieved, while a physical configuration audit ensures that a configuration item is installed in accordance with the requirements of its detailed design documentation. [/font][/list][size=10.5pt]Configuration management is widely used by many military organizations to manage the technical aspects of any complex systems, such as weapon systems, vehicles, and information systems. The discipline combines the capability aspects that these systems provide an organization with the issues of management of change to these systems over time.[/size]
[size=10.5pt]Outside of the military, CM is equally appropriate to a wide range of fields and industry and commercial sectors.[url=http://en.wikipedia.org/wiki/Configuration_management#cite_note-2#cite_note-2][color=windowtext][3][/color][/url][/size]
[size=10.5pt]Standards[/size][list][*][font=Times New Roman]ANSI/EIA-649-1998 National Consensus Standard for Configuration Management [/font][*][url=http://en.wikipedia.org/wiki/Federal_Standard_1037C][color=windowtext][font=Times New Roman]Federal Standard 1037C[/font][/color][/url][font=Times New Roman] [/font][*][font=Times New Roman]GEIA Standard 836-2002 Configuration Management Data Exchange and Interoperability [/font][*][font=Times New Roman]IEEE Std. 828-1998 IEEE Standard for Software Configuration Management Plans [/font][*][url=http://assist.daps.dla.mil/quicksearch/basic_profile.cfm?ident_number=106772][color=windowtext][font=Times New Roman]MIL-STD-973 Configuration Management[/font][/color][/url][font=Times New Roman] (canceled, but still good reference) [/font][*][font=Times New Roman]STANAG 4159 NATO Material Configuration Management Policy and Procedures for Multinational Joint Projects [/font][*][font=Times New Roman]STANAG 4427 Introduction of Allied Configuration Management Publications (ACMPs) [/font][/list][size=10.5pt]Guidelines[/size][list][*][font=Times New Roman]IEEE Std. 1042-1987 IEEE Guide to Software Configuration Management [/font][*][url=http://assist.daps.dla.mil/quicksearch/basic_profile.cfm?ident_number=202239][color=windowtext][font=Times New Roman]MIL-HDBK-61A CONFIGURATION MANAGEMENT GUIDANCE[/font][/color][/url][font=Times New Roman] 7 February 2001 [/font][*][font=Times New Roman]ISO 10007 Quality management - Guidelines for configuration management [/font][*][font=Times New Roman]GEIA-HB-649 - Implementation Guide for Configuration Management [/font][*][font=Times New Roman]ANSI/EIA-649-1998 National Consensus Standard for Configuration Management [/font][*][font=Times New Roman]EIA-836 Consensus Standard for Configuration Management Data Exchange and Interoperability [/font][*][font=Times New Roman]ANSI/EIA-632-1998 Processes for Engineering a System [/font][/list][size=10.5pt]See also[/size][list][*][url=http://en.wikipedia.org/wiki/Business_Technology_Optimization][color=windowtext][font=Times New Roman]Business technology optimization[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Change_detection][color=windowtext][font=Times New Roman]Change detection[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software][color=windowtext][font=Times New Roman]Comparison of open source configuration management software[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Dependency_%28project_management%29][color=windowtext][font=Times New Roman]Dependency[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/List_of_software_engineering_topics][color=windowtext][font=Times New Roman]List of software engineering topics[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Netconf][color=windowtext][font=Times New Roman]Netconf[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Network_management][color=windowtext][font=Times New Roman]Network management[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Programming_tool][color=windowtext][font=Times New Roman]Programming tool[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Revision_control][color=windowtext][font=Times New Roman]Revision control[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Software_configuration_management][color=windowtext][font=Times New Roman]Software configuration management[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Software_engineering][color=windowtext][font=Times New Roman]Software engineering[/font][/color][/url][font=Times New Roman] [/font][/list][size=10.5pt]References[/size][list=1][*][url=http://en.wikipedia.org/wiki/Configuration_management#cite_ref-0#cite_ref-0][color=windowtext][font=Times New Roman]^[/font][/color][/url][font=Times New Roman] MIL-HDBK-61A CONFIGURATION MANAGEMENT GUIDANCE 7 February 2001[/font][url=http://assist.daps.dla.mil/quicksearch/basic_profile.cfm?ident_number=202239][color=windowtext][font=Times New Roman][1][/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Configuration_management#cite_ref-1#cite_ref-1][color=windowtext][font=Times New Roman]^[/font][/color][/url][font=Times New Roman] [/font][url=http://en.wikipedia.org/wiki/National_Information_Systems_Security_Glossary][color=windowtext][font=Times New Roman]National Information Systems Security Glossary[/font][/color][/url][font=Times New Roman] [/font][*][url=http://en.wikipedia.org/wiki/Configuration_management#cite_ref-2#cite_ref-2][color=windowtext][font=Times New Roman]^[/font][/color][/url][font=Times New Roman] ANSI/EIA-649-1998 National Consensus Standard for Configuration Management [/font][/list][font=Times New Roman]Retrieved from "[/font][url=http://en.wikipedia.org/wiki/Configuration_management][color=windowtext][font=Times New Roman]http://en.wikipedia.org/wiki/Configuration_management[/font][/color][/url][font=Times New Roman]"[/font]
[font=Times New Roman] [/font]
[font=宋体]下面说说我对[/font][font=Times New Roman]scm[/font][font=宋体]的理解:[/font]
[font=Times New Roman] [/font]
[font=宋体]软件配置管理是指通过执行版本控制、变更控制的流程和规定,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。[/font]
[font=Times New Roman] [/font]
[font=宋体]软件配置管理([/font][font=Times New Roman]Software Configuration Management[/font][font=宋体],[/font][font=Times New Roman]SCM[/font][font=宋体])作为[/font][font=Times New Roman]CMM 2[/font][font=宋体]级的一个关键域([/font][font=Times New Roman]Key Practice Area[/font][font=宋体],[/font][font=Times New Roman]KPA[/font][font=宋体]),在整个软件的开发活动中占有很重要的位置。正如[/font][font=Times New Roman]Pressman[/font][font=宋体]所说的:[/font][font=Times New Roman]“[/font][font=宋体]软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计来([/font][font=Times New Roman]1[/font][font=宋体])标识变化,([/font][font=Times New Roman]2[/font][font=宋体])控制变化,([/font][font=Times New Roman]3[/font][font=宋体])保证变化被适当的发现,以及([/font][font=Times New Roman]4[/font][font=宋体])向其他可能有兴趣的人员报告变化。[/font][font=Times New Roman]”[/font]
[font=Times New Roman] [/font]
[font=宋体]好吧,我还是先引用一下[/font][font=Times New Roman]IEEE[/font][font=宋体]对软件配置管理的定义,来把你砸蒙。[/font]
[font=Times New Roman] [/font]
[font=宋体]软件配置管理是一整套应用技术、管理和监督相结合的方法,通过标识并记录配置项的功能和物理特性,控制这些特性的变更,记录并报告变更的过程和状态,并验证它们与需求是否一致。[/font]
[font=Times New Roman] [/font]
[font=宋体]谢天谢地,你还没有蒙,你的抗击打能力真强。[/font]
[font=Times New Roman] [/font]
[font=宋体]好吧,我继续说说自己的理解:首先是一套方法,这套方法结合了技术上、管理上和监督的手段,后面的几句就是对这三个词的进一步解释,标识并记录配置项的功能和物理特性是技术手段,控制特性的变更,是管理方法,记录并报告变更过程和状态,是监督机制,而验证是否与需求一致,就是目标,如果不一致,其他一切都是白扯。[/font]
[font=Times New Roman] [/font]
[font=宋体]这里还涉及到了一个概念,配置项([/font][font=Times New Roman]configuration item[/font][font=宋体],[/font][font=Times New Roman]CI[/font][font=宋体]),就是配置管理的对象。这个解释真“牛”,解释配置管理的时候用到配置项,解释配置项的时候又用到了配置管理,循环引用,你说牛不牛。[/font]
[font=Times New Roman] [/font]
[font=宋体]好吧,我对配置项的理解是,它回答了“[/font][font=Times New Roman]what to be managed[/font][font=宋体]”的问题,也就是管什么的问题,不同的软件项目根据不同的需求,会对软件开发过程中所涉及的代码、文档和工具等进行标识,作为配置项进行管理。凡是纳入配置管理范畴的工作成果统称为配置项。配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。[/font]
[font=Times New Roman] [/font]
[font=Times New Roman]Pressman[/font][font=宋体]对于[/font][font=Times New Roman]SCI[/font][font=宋体]给出了一个比较简单的定义:[/font][font=Times New Roman]“[/font][font=宋体]软件过程的输出信息可以分为三个主要类别:([/font][font=Times New Roman]1[/font][font=宋体])计算机程序(源代码和可执行程序),([/font][font=Times New Roman]2[/font][font=宋体])描述计算机程序的文档(针对技术开发者和用户),以及([/font][font=Times New Roman]3[/font][font=宋体])数据(包含在程序内部或外部)。这些项包含了所有在软件过程中产生的信息,总称为软件配置项。[/font][font=Times New Roman]”[/font]
[font=Times New Roman]IEEE[/font][font=宋体]对基线的定义是这样的:[/font][font=Times New Roman]“[/font][font=宋体]已经正式通过复审核批准的某规约或产品,它因此可作为进一步开发的基础,并且只能通过正式的变更控制过程改变。[/font][font=Times New Roman]”[/font]
[font=宋体]所以,根据这个定义,我们在软件的开发流程中把所有需加以控制的配置项分为基线配置项和非基线配置项两类,例如:基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。[/font]
[font=Times New Roman] [/font]
[font=宋体]说白了,管理配置项,就是为了维护软件产品在不同阶段的一致性状态。比如今天发布了一个产品,两年后还要在这个产品上修改[/font][font=Times New Roman]bug[/font][font=宋体],如果今天的这个软件版本没有保存,或者无法识别,不能重现这个问题的话,那开发人员怎么修改这个[/font][font=Times New Roman]bug[/font][font=宋体]呢?[/font]
[font=Times New Roman] [/font]
[font=宋体]简而言之,配置管理就是对软件产品的配置项进行控制和管理。它的目标是最大限度的减少错误和混乱,保证软件项目工作产品在整个生命周期内的完整性和一致性。[/font][font=Times New Roman] [/font]
[font=宋体]引申:[/font]
[font=宋体]大家都喜欢类比,这里我试图跟装修项目类比一下,当然有些地方是牵强的,但是经历过装修的人都会感同身受。[/font]
[font=宋体]一般情况下,我是习惯把业主在装修项目上的作用比作项目经理的,这里就说说这位项目经理需要完成的一些配置管理相关的工作。[/font]
[font=Times New Roman] [/font]
[font=宋体]目标很简单,装出一个漂亮的家。但是这个说法不够具体,当设计师拿出一个令你满意的设计图纸,而你也做出了一份比较满意的装修预算之后,目标就比较明确了。注意这两个文档中,设计可以作为基线配置项管理,而预算可以作为非基线配置项管理。[/font]
[font=Times New Roman] [/font]
[font=宋体]除此之外还有哪些配置项呢?[/font]
[font=宋体]第一个容易想到也容易被忘掉的就是房子,其他的还有各种建材。[/font]
[font=Times New Roman] [/font]
[font=宋体]一定要进行标识,否则施工过程中发生偷樑换柱的情况,你都没有办法察觉。发现没有,做配置管理比较琐碎,也比较累。而真装出一个漂亮的家之后,功劳又是项目经理的,当然也会夸夸施工手艺(开发人员),天啊,什么时候会想到我们配置管理人员呢?[/font]
[font=宋体]好,现在我们假设在施工过程中,客户(其实就是业主)突然想改变设计方案,天啊,别忘了这个方案可是个基线配置项,对它的改变必须遵循严格的流程,因为会涉及施工人员(开发人员)、设计师([/font][font=Times New Roman]Architecture[/font][font=宋体])还有业主(项目经理),别忘了,很可能会重新做预算的。终于,各方协调之后,签字画押,该修改的修改,该继续的继续。设计进入[/font][font=Times New Roman]2.0[/font][font=宋体]版,经历过一次设计变更,你就再也不想有第二次了。装修项目不象软件项目,不能很好的回溯到历史版本,只能打掉重新来。如果可以保留部分成果,比如水电改造的话,那么水电改造的设计图就非常重要,否则在修改过程中,如果洞穿水管电线可不是好玩的,所以水电改造的线路图也需要作为基线配置项进行管理。[/font]
[font=Times New Roman] [/font]
[font=宋体]扯太远了,就此打住。[/font]
[font=Times New Roman] [/font]
[font=宋体]结束语:[/font]
[font=宋体]配置管理离不开[/font][font=Times New Roman]“[/font][font=宋体]人、工具、规范[/font][font=Times New Roman]”[/font][font=宋体]三个要素,我们若把软件项目比喻成隆隆向前的战车的话,配置管理人员便是战车的机械师,负责及时通报战车的性能、方位,排除系统故障;配置工具则是战车的传送带,平稳而准确地推动着战车前进的步伐,确保它到达一个又一个新的目标;配置规范就是润滑油,有它在,战车的各个部件才能精确地耦合运转。配置管理对项目是如此重要,没有它的保障,项目[/font][font=Times New Roman]“[/font][font=宋体]战车[/font][font=Times New Roman]”[/font][font=宋体]便是一堆废铁。[注:这个比喻是引用别人的。][/font]
[font=Times New Roman] [/font]
[font=宋体]谢谢。欢迎拍砖。[/font]
CMStruggling 2008-6-28 14:57
不错。
配置管理的知识自己也总是混混沌沌的;
从开始的一窍不通到后来的有些体会;
到现在又迷茫;
可能理论的知识都是这样;
不结合实际总是很难深入体会;
配置管理方法论当更有些深奥了。
最近也正在拜读流水先生的《未雨绸缪——理解附件配置管理》,
也在不断体悟中。
callmechen 2008-6-28 17:13
其实,写这么多,还是在回答一个问题,什么是SCM。。。
CMStruggling 2008-6-28 18:03
[quote]原帖由 [i]callmechen[/i] 于 2008-6-28 17:13 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=100918&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
其实,写这么多,还是在回答一个问题,什么是SCM。。。 [/quote]
根据这口气,看来callmechen对SCM的理解当是很深入了;
可以在这里也发表一下高见啊;
大家都可以学习一下。
callmechen 2008-6-28 19:06
[quote]原帖由 [i]CMStruggling[/i] 于 2008-6-28 18:03 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=100936&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
根据这口气,看来callmechen对SCM的理解当是很深入了;
可以在这里也发表一下高见啊;
大家都可以学习一下。 [/quote]
我可没那个意思。
只是觉得大家好像一直都在为一个类似于“什么是人类”的问题而困扰,而且都想用自以为别人会理解的词汇去描述它。
CMStruggling 2008-6-28 19:31
[quote]原帖由 [i]callmechen[/i] 于 2008-6-28 19:06 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=100943&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
我可没那个意思。
只是觉得大家好像一直都在为一个类似于“什么是人类”的问题而困扰,而且都想用自以为别人会理解的词汇去描述它。 [/quote]
反正我也比较迷惑。
Quest 2008-6-29 11:15
回复 沙发 的帖子
恩,这本书确实不错。
Quest 2008-6-29 11:16
其实不是回答
[quote]原帖由 [i]callmechen[/i] 于 2008-6-28 17:13 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=100918&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
其实,写这么多,还是在回答一个问题,什么是SCM。。。 [/quote]
其实不是回答,只是把自己的理解写出来而已,从理解到说出来的这个过程还是有进步的。仅此而已。
Quest 2008-6-29 11:20
欢迎讨论
[quote]原帖由 [i]callmechen[/i] 于 2008-6-28 19:06 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=100943&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
我可没那个意思。
只是觉得大家好像一直都在为一个类似于“什么是人类”的问题而困扰,而且都想用自以为别人会理解的词汇去描述它。 [/quote]
难道你不觉得跟别人解释cm而没有解释清楚是一件很尴尬的事情么?
callmechen 2008-6-29 15:00
[quote]原帖由 [i]Quest[/i] 于 2008-6-29 11:20 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=100983&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
难道你不觉得跟别人解释cm而没有解释清楚是一件很尴尬的事情么? [/quote]
不尴尬,我会告诉他/她:具体的概念一句两句说不清。我只是基于配置管理这个视角和平台,对整个研发过程进行监控和改进。这就是我的工作。至于具体做什么,我解释的越多,对方越朦胧,还不如不解释。
CMStruggling 2008-6-29 15:39
[quote]原帖由 [i]callmechen[/i] 于 2008-6-29 15:00 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=101001&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
不尴尬,我会告诉他/她:具体的概念一句两句说不清。我只是基于配置管理这个视角和平台,对整个研发过程进行监控和改进。这就是我的工作。至于具体做什么,我解释的越多,对方越朦胧,还不如不解释。 [/quote]
就说自己是网管好了;
只是管理软件的更多一点;
相信大家都能明白了。
::em53::
Quest 2008-6-29 19:34
[quote]原帖由 [i]callmechen[/i] 于 2008-6-29 15:00 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=101001&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
不尴尬,我会告诉他/她:具体的概念一句两句说不清。我只是基于配置管理这个视角和平台,对整个研发过程进行监控和改进。这就是我的工作。至于具体做什么,我解释的越多,对方越朦胧,还不如不解释。 [/quote]
其实有时候,把自己的工作给别人讲明白,是在给自己创造谋生的机会。
Quest 2008-6-29 19:36
[quote]原帖由 [i]CMStruggling[/i] 于 2008-6-29 15:39 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=101004&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
就说自己是网管好了;
只是管理软件的更多一点;
相信大家都能明白了。
::em53:: [/quote]
网管一般属于IT部门,而CM属于开发部门吧。
callmechen 2008-6-30 10:38
[quote]原帖由 [i]Quest[/i] 于 2008-6-29 19:34 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=101011&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
其实有时候,把自己的工作给别人讲明白,是在给自己创造谋生的机会。 [/quote]
呵呵,他连CM都不知道,都要问你,怎么可能给你谋生的机会??
见人说人话,见鬼说鬼话.
scmscmscm 2008-6-30 11:39
[quote]原帖由 [i]callmechen[/i] 于 2008-6-30 10:38 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=101061&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
呵呵,他连CM都不知道,都要问你,怎么可能给你谋生的机会??
见人说人话,见鬼说鬼话. [/quote]
有时候,说做软件开发,也不见得对方能有多明白,但软件开发这个词常见,对方就不接着问了。
echo 2008-6-30 13:43
配置项、变更、过程、报告,大家都偏重于第一个,关于配置项的比喻也较多,有没有关于变更、过程及报告的比喻呢?
mst75 2008-7-1 10:31
碰到这种人你直接告诉他你是网管就可以了。不是“人管”。
it_scm 2008-7-2 09:32
感谢楼主的分享,在这里谈一些我的看法:
1、从权利上来说,将配置管理定位成一个支持性的工作可能更加合适,但是随着中国软件业对配置管理的重视,以及配置管理从业人员水平的提高,配置管理会逐步从支持型工作向管理型工作转变;
2、针对于结束语部分,搂主将软件配置管理分成三个主要部分:人、工具、规范。对于规范部分不是简单的理论而要蕴含配置管理的精髓以及最佳实践在里面,规范是有一定的科学在里面的。
Quest 2008-7-2 22:57
[quote]原帖由 [i]it_scm[/i] 于 2008-7-2 09:32 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=101475&ptid=13753][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
感谢楼主的分享,在这里谈一些我的看法:
1、从权利上来说,将配置管理定位成一个支持性的工作可能更加合适,但是随着中国软件业对配置管理的重视,以及配置管理从业人员水平的提高,配置管理会逐步从支持型工作向管 ... [/quote]
说的不错。
casszuizui 2008-7-11 15:42
很想看看《未雨绸缪--理解软件配置管理》