最近的市场趋势
对于商业上可利用 SCCM 产品来说,成本通常是是否采用这个产品的主要因素,由于 SCCM 组合的多个方面,许多公司正在朝着更简单的“利用并学习”的工具的方向发展,尤其是开源 SCM 解决方案,比如 Subversion 或者 Mercurial。
IBM Rational 利用他们自己集成的产品组合,多年来一直领先于开发工具市场。从传统的眼光来看,他们没有超越他们自己工具组合的集成;然而,最近他们获得了一个更广阔的市场机会,尤其是利用开源区域的工具。
许多组织已经意识到他们不再需要过于复杂的配置管理解决方案,只要他们更多的强调变更管理解决方案并将工具,像 Rational ClearQuest 置于开发的中心就可以。
迁移您的变更管理解决方案
进入软件开发生命周期每个过程中心的是变更管理过程。对于组织来说,如果没有一个变更管理解决方案,实现它的好处将十分清晰且引人注目。
对于已经拥有变更管理产品的组织来说,几乎业务的每个方面都可能拥有软件变更管理过程。更进一步说,这些过程在以后多年的时间里会逐步被构建并提炼。将它们从它们现存的变更管理解决方案迁移倒一个新的产品的确是一件意义重大的事业,而不是轻而易举的事情。问题不是您是否应该变更,而是如何权衡潜在的利益与迁移成本的问题。
公司认为从他们的变更管理解决方案中迁移必须完成下面的可能性和临时费用:
.丢失或者破坏基于历史数据或者统计分析的报告(通常对于有 SLA 协议的公司来说是必要的)。
.广泛商业变更管理工具的大多数都使用备份中的数据库;然而,重新创建一个模式和行为是很有挑战性的。
.暴露遗留在个人或秘密组件中的信息。
.迁移教本语言的,自定义的行为和现存的产品集成。
.现存的集成以及客户门户网站。
.在短时间框架内对所有用户进行培训,同时管理到业务的分裂。
.对远程用户和客户的影响。
公司必须询问他们自己将他们的变更管理产品转换成一个可选择的方案是不是一个明智的决定,而且不是简单地自动迁移到一个新地变更管理工具,因为他们的版本控制产品是变化的。如果没有其它问题,任何正在考虑 SCCM 解决方案迁移问题的公司都应该在可管理的阶段迁移——例如,首先迁移这个版本控制,然后在最初的迁移被证明成功以及稳定之后再迁移这个变更管理。
关键问题是“您如何选择和实施这样一个能够满足如此广泛请求集合的 SCCM 解决方案?”答案是创建一套能够合并非常好的实践并容易携带的过程,无论这些技术和软件产品是否在它们周围。
在正确的区域重点前调投资
从传统意义来将,任何 SCCM 解决方案的核心都是配置管理(版本控制)。最低限度,任何配置管理解决方案都必须:
.当跟踪和维持历史的时候必须注意版本和管理文件以及目录。
.提供审核性能。
.管理基线和发布版本。
.允许平行开发以及管理来自不同分支机构的合并。
.提供用户使用权(简单地管理数据安全性以及用户使用权)。
.可靠的并且是可伸展的。
.集成到开发环境中(IDE)。
.提供容易的应用软件生命周期管理。
.支持多种平台以及跨越平台实现。
.使手工或者容易出错的任务自动化。
当今大多数独立的配置管理解决方案都提供这种功能作为标准。它通常在变更管理中接受投资比配置管理有更好的回报,因为更广泛的读者使来自变更管理系统的信息可以利用(请求,设计,缺陷,增强,构建信息,发布版本通告,等等)。控制和管理整个组织的信息流,变更管理系统将会很快变成软件开发的焦点。
许多组织都在寻找 ALM 简单的方法,从而能够管理工作中小而独立的活动,控制它们与其它活动的集成。对于记录,恢复,以及开发任务的报告的必要请求是由类似于 Rational ClearQuest, Jira, Trac, Bugzilla,等工具所提供的性能。
变更管理工具不可避免也就变成了所有信息的焦点。确保变更组合在这个变更管理工具中自动记录的价值是无法估量的:
.如果一个记录需要重新操作,那么最初的变更组合文件列表是可以检查到的。
.发布版本注释(一直到具体文件变更的层次)很容易就被提取。
.这个变更管理工具可以用来驱动一个完全自动化的持续集成和合并过程。小组领导或者构建大师是从完整的活动列表中挑选出来的,那些在下一个构建中是需要的。这个变更管理工具读取了变更组合列表,并在记录的变更组合中执行了合并过程。
Subversion 的出现
在2000年早期,Karl Fogel 和 Jim Blandy 发起了一个新的项目,从而修正哪些是与 CVS 的集成不合格的。起初这个团体很小,但是一旦 Subversion 简单的目标 变成公共常识后就会迅速发展。
他们并没有尝试去编写一个繁冗复杂的配置管理工具,类似于 CVS 的集成却有着改良的性能。他们还想处理当今的一些软件开发挑战。
Subversion 的好处
.成本。在 Debian Free Software 的方针下, 1 Subversion 是免费下载,修改以及重新分配的。
.可靠性。毫不夸张地说,开源的最大优势之一是每项工作都是可靠的,而且很容易就可以下载和利用。当然也有缺陷,但是用社区中精湛的技术预览很快就会被解决。最可靠的统计数据表明 Subversion 正以每月 20 多万次的速度增长,有着 250 万的用户。
.灵活性。Subversion 的这个构架已经仔细且清晰地设计了相关的性能,实用性,以及可延展性。此外,它是使用 Internet 技术和分布式开发思想发展来进行构建的,与许多可利用的旧工具有所不同。
.使用方便。那些有着 CVS 经验的应该可以很快理解 Subversion。与 Subversion 集成的第三方图形界面(Tortoise, Eclipse, NetBeans,等等。)能够有效地将 Subversion 分布到后台中去。Subversion 的布署和维持相对还是比较简单的。
.开放性。信息是可见的而且对安全性是开放的。这样能够帮助合作公司和用户计划新的发布版本或者评估如何使一个最近的交付增强成为不断地进展。
Subversion 适合想要用安全且灵敏的方法的开发人员,但是同时包括这个文件版本水平的少量的控制。这不仅仅是有技术思想的开发人员需要为项目注册文件变更,同时还有少数技术意识业务用户需要管理构件相关的非代码。安装一个冗长的配置管理工具即使对于有技术思想的人来说也是十分令人气恼的事情。然而, Subversion,是直观地使用和安装。
图 1 描述了开发人员基于活动进行变更文件;每个活动都是独立且完备的。这些活动一次集成一个从而形成一个集成流,此后他们被构建并部署到适当的测试环境中。管理者们对文件版本并不感兴趣,只对完成的构件,或者,更重要的是,什么还没完成并可能影响最后的期限,这样他们就可以给关键决策人和客户一个准确的报告。

图 1: 基于活动的文件变更,这些活动一次集成一个集成流,此后他们被构建并部署到适当的测试环境中。