在我参与过的所有项目中,都有外部顾问的意见,询问我们使用的是什么样的配置管理。在所有这些情况下,顾问都无法定义配置管理。那么这是什么呢?
发布于 2010-12-01 05:00:35
软件配置管理(SCM)可以归结为回答以下问题:
这反过来又会发展成一个相当庞大和丑陋的“过程”。过程问题是为什么大多数开发人员对SCM的提及视而不见,因为这意味着跟踪源文件、缺陷和需求;然后将它们结合在一起,以便您可以审计更改(从管理的角度来看,这是一个理想的世界,因为它为更好地查看他需要哪些资源提供了一个良好的管理工具)。
这与ITIL配置管理不同,ITIL配置管理实际上是软件资产跟踪,什么软件运行在哪里(哪个服务器/工作站)以及该软件的设置。
换句话说,您的顾问可能更想知道的是,您的公司/开发小组是如何回答我回答的三个问题的。
发布于 2010-12-01 00:21:52
配置管理包含与编写代码没有直接关系的“其他一切”。这就是如何管理发行版、如何管理和分类bug报告和特性建议、如何执行构建等等。它还经常包括如何管理源代码(例如,使用什么版本控制、分支策略、有可能如何管理多个并发“发行版”等)。
发布于 2010-12-01 04:03:12
随着时间的推移,配置管理意味着很多事情。我认为这对管理员或操作比直接对开发人员更重要。当您的操作人员试图保持服务器正常运行时,您会担心设置计算机、管理它们的配置并使其继续运行。如果您只是登录到计算机并开始安装软件,并更改计算机上的配置文件,那么您将无法管理该配置。如果那台机器死了怎么办?如果有人在那台机器上修改配置文件,然后一切都开始失控,会发生什么呢?如果您需要启动另一台配置与正在运行的计算机完全相同的机器,该怎么办?你能够办得到吗?
如果没有配置管理策略,你就不能。这就是为什么它很重要的原因。这都是关于可重复性的。开发人员对待可重复性的方式与操作人员的做法不同,因此我们关心重复不同的事情。
有一些很好的开源工具可以帮助你做到这一点:厨师,卡皮斯特拉诺,库克,甚至SVN。为什么SVN只应该被开发人员使用?签入您的配置文件、用于配置计算机的脚本并跟踪它们的版本。组织的那些部分对于保持它的运行是至关重要的。你不会想弄丢那些的。
https://softwareengineering.stackexchange.com/questions/22685
复制相似问题