UML软件工程组织

 

 

将 IBM Rational 变更管理与 Subversion 结合起来
 
2008-08-15 作者:Gerry Tombs 来源:IBM
 
本文内容包括:
阅读本文了解有关在软件变更和配置管理方面不断演进的需求,以及包括开源 SCM 产品 Subversion 的出现与成功,和如何将开源技术与 IBM Rational 变更管理解决方案结合起来。

 软件变更与配置管理(Software Change and Configuration Management,SCCM)考虑到软件开发的完整的生命周期,从变更最初的出现(请求、顾客增强、缺陷)一直到实现、构建、测试,以及最后软件发布的形成和同一父本中同一级别事件的管理。软件配置管理(Software Configuration Management,SCM)单纯关注软件中跟踪以及控制变更的过程(也因此成为 SCCM 的一个组件)。

主要软件提供者使用了各种 SCCM 标准;然而,有效软件开发的基石是十分清晰且容易被人理解的。复合产品的存在能够使终端到终端的 SCCM 策略和过程有效地实施并能够日复一日地运行。不尽人如意的是,尽管当今有许多商业上可利用的免费的开源解决方案,但是仍然有许多公司继续使用电子表格和纸制系统。

这篇文章讨论了 SCCM 市场的时间相对较近的变更问题,尤其是开源 SCM 产品 Subversion 的出现和成功。这篇文章的目标读者是 SCCM 决策者或构架师,这些能够定义和强制他们的组织中有这些过程和方针的人群。SCCM 产品财务经理也可能在这里找到他们的兴趣点。

软件变更和配置管理的历史

源代码管理的基本原则最初由 Leon Pressor 教授在二十世纪六十年代记载。然而,首个较严肃的源代码管理解决方案直到二十世纪七十年代才出现。早期解决方案的创建是用来帮助个人管理个人空间的数量较少的文件;而现代工具却能够处理不同地区成千上万用户的更多种类更复杂的文件。

在商业市场最大的变更之一是 1992 年 Atria Software 创建(随后被 Rational Software 收购,最后又被 IBM® 收购)。 ClearCase 与它的 Dynamic View 方法有着根本上的不同,最后导致IBM 开发了(并且购买)多种工具来管理终端到终端的软件开发过程,比如 IBM Rational®ClearQuest®, IBM Rational RequisitePro®, IBM Rational Build Forge®等等,并创建了更受欢迎的 SCM 方法, IBM Rational Unified Process®(RUP®)。

开源 SCM 的产生

在当前经济下,每个组织都严格检查成本和查找可能较低成本的机会。同时开发人员想利用更少的过程,约束以及控制,而采用更简单更倾向于变更和配置管理的解决方案。Subversion 似乎能够满足 SCM 两方面的需求:没有许可成本,使用简单,学起来快速,并且对管理和维持的费用也不是很高。

Subversion 确实有一些不足之处,在下面有具体的描述。更重要的是,Subversion 只是这个模式的一半,因为有效软件开发过程的另一个关键组件是变更管理。不管组织采用了哪个 SCM 策略,在众多案例简明的集成中最有价值的是在变更管理和版本控制工具之间。在一个变更管理工具中记录一个变更组合能够激活或者简化下面的能力:

  • 使用一个标准过程进行持续集成
  • 完全审计,跟踪,以及变更的详细历史
  • 改进的通信和可视化贯穿整个组织(包括与客户的交流)
  • 减少重复的工作——例如,相同的缺陷记录了很多次
  • 自动化构建
  • 自动且详细的发布版本通知
  • 改进的测试——例如,每个请求都能够在发布版本之上进行特定的测试
  • 遵从标准,比如 ISO 和 Sarbanes-Oxley,等等。
  • 贯穿个体开发人员的管理和工作平横的问题
  • 改良的报告和管理信息

尽管比较重要,但是通常认为能够简单地将软件和数据迁移到新的配置管理工具中,比如 Subversion,而不是将变更记录和过程移到一个新的变更管理工具中。

开源软件的成功之处在于,毫无疑问,对传统的供应商方案来说有一定的作用。聪明的供应商比如 IBM 包含有开源解决方案,从而展开他们的产品并提供灵活且完整的功能开发环境,从而帮助他们满足软件开发组织的需求和请求。

SCCM 的挑战

软件开发行业很清楚,变更和配置管理工具需要增加价值,提高软件质量,以及减少正在进行的成本,尤其是当开发小组逐渐变得庞大,且分布在不同的地方,需要开放更加复杂的产品时。要支持有效的软件开发,对这些工具来说它已经不能满足需独立存在的需求,他们需要集成的,灵活的,且能够适应的工具。

在软件开放过程中所使用的所有工具中,最简单的集成是变更管理和配置管理之间的集成。此外,这种集成通常能够比其它的集成显示更多的利益 (对投资有最大的回报率)。

达成理想的 SCCM 解决方案

任何一个 SCCM 系统的目标和关键请求都将随着单个用户的角色和任务而变化:

从一个开发人员的角度来看,一个理想的 SCCM 解决方案必须

  • 低调但是用起来很方便。
  • 允许开发人员从事一个或者更多的活动。
  • 赋予他们同时处理不止一个工作项目的能力,但是每个工作项目之间不能相互影响。
  • 将同一次确定的变更记录的决定与其它变更记录联合起来。
  • 使它们的代码能够被测试快速且方便的利用。
  • 记录请求,使它们能够清晰地被理解(XP/Agile)或者定义(RUP)。
  • 管理合并——例如,只合并那些实际上需要被集成的文件。
  • 从一个专门为每个开发人员安排的“待办”列表的工作项开始做(也会允许这个管理人员优先选择工作条目)。

从一个开发团队领导或项目经理的角度来看,理想的 SCCM 解决方案必须

  • 容易接受,评估,以及管理变更请求。
  • 容易分配工作项目或者将一个工作拆分为适合小组或者目标交付的细节的更小的单元——例如,单个的工作可能需要被拆分为更小的单元,因为小组能力,时间限制,或者最初工作条目目标交付灵活度的原因。
  • 区别哪些工作项目是完整的哪些是不完整的。
  • 简单地为一个构建安排工作条目的测试和包含内容。
  • 在各种不同的参差提供可视化,包括项目的状态,发布版本,组件,以及单个变更。这包括管理报告,比如小组成员中变更记录的分配,故障确定的平均时间,等等。
  • 为单个开发人员的工作和进展提供可视化展示。

从一个业务分析师或经理的角度来看,理想的 SCCM 解决方案必须

  • 允许他们请求或登记新的需求。
  • 允许按照人员、成本,项目状态等运行报告。
  • 使他们的客户保持与新发布版本进展的步伐一致。

实现一个供应商的 SCCM 解决方案

所有的软件开发组织都希望 SCCM 解决方案是可扩展的、灵活的、适应能力强的,包罗万象的,并且能够从单一的即将适应现存开发方针和过程(以最低的可能成本为标准)的供应商那理想地提供整个工具(包括穿越测试和部署过程的请求定义)的组合。首先,整个驱动器要避免制造和维护集成,并且实施了可靠且经过考验的不会把集成拆分为新的版本更新解决方案。

通常有这样一种说法“如果我们能够从一个供应商那购买我们自己的完善的开发环境,我们将成为最好的,”但是事实上这种情况很少发生。原因各种各样:每个产品的影响力都有它们自己最喜爱的供应商和产品;以前遗留下来的工具深深地扎根于组织中,使它们很难被迁移,随着时间的流逝新的工具进入这个市场,使用带有优于上个月“选择的工具”功能的现代技术。无论您怎样看它,对于大多数组织来说,实际上是一个软件开发产品的混合。

当今 SCCM 市场中供应商的解决方案

在当今软件开发的市场中,存在以下类型的供应商:

  1. 单个的旗舰产品,对于 SCCM 组合的其它方面有着潜在的集成
  2. 来自声称要无缝地进行集成供应商的多个高端产品
  3. 针对端到端 SCCM 的一个产品供应商解决方案
  4. 单一授权,包含全面的应用系统生命周期管理(Application Lifecycle Management,ALM)解决方案
  5. 在远程服务器上托管的解决方案;例如,软件即时服务(SaaS)

其实有很多种选择,任何一个决定都可能是令人吃惊的且十分困难的,每个都有它自己的优势和缺陷。如果您今天开始启动一个开放团队,选择上面的4和5听起来都是明显的选择。但是这些选项的问题是一个解决方案不能满足所有的问题。不可避免,许多组织将会认识到一个可选择的产品能更好地部分满足他们整个的解决方案,他们正为他们将不再使用地部分解决方案买单,或者说这个解决方案对他们的首选的开发技巧来说还不够灵活(XP,敏捷的,迭代的等等。)。这种“不确定” ALM 解决方案得真谛是,所有的客户都不同,因此转化为 ALM 系统中的功能越多,它就越难适应和自定义满足过程和每个客户的解决方案。最好的 ALM 解决方案十分轻巧,而且允许客户调整或者将它们与其它产品集成在一起。

没有人愿意为每个软件开发项目使用一个不同的产品或者供应商,但是如果不从可利用的高端工具广泛的选择中尝试大量不同的产品就很难找到理想的工具。其中的挑战在于需要更紧密更干净的集成。理想的世界应该是,不管潜在的是什么样 SCM 产品,都有一个共同的界面。

SCCM 方针实施者的挑战

在过去的两年内,我们看到了软件开发所有参与方的一个态度转移。历史上,共识都将严格地保护所有的源代码,并严谨地支配它如何被管理。近年来,软件开发技术建议,捆绑地越紧,就越难使它成为及时的,预算之内的,并且达到高质量水平的开发产品。

随着产品上市压力的增加,开发人员不可避免地会花更多的时间进行开发和测试,并跟随他们所认为的官僚的压力,包括复杂的工具和集成的 SCM 构架。相反,Subversion 的开放性开发人员下载并开始使用它在不需要寻求批准或者授权的情况下进行有效地执行公司的方针。 传统的 SCCM 方针实施者想要保持一个干净的过程——是有原因的——但是通常会发现他们自觉没有权力作为开发人员来干涉这个问题。事实上,他们通常拥护这个变更而不是与它作对。

像 Subversion 这类的工具通常会利用最基本的和必要的特性来处理最小量的业务和开放需求。如果他们能够与被核准公司解决方案集成在一起,而且这个方案能够提供所有的备份,安全性,以及为满足一致性指导方针所需的请求,为什么不允许开发人员使用更快速,更有效的工具呢?

最近的市场趋势

对于商业上可利用 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: 基于活动的文件变更,这些活动一次集成一个集成流,此后他们被构建并部署到适当的测试环境中。

Subversion 的缺陷

但是没有一个解决方案能满足所有的理想情况,Subversion 也有许多缺陷。这里列举了一些 Subversion 的不足之处:

  • 将数据迁移到新的 SCM 工具中的成本。我们并不能每次都可以从最初的工具中获取完整的历史。应该注意的是,这对 Subversion 来说并不是唯一的。
  • 这是一个开源。没有一个单一的供应商能够提供支持并能够保证这个产品被继续增强和开发。Clearvision 提供了 Subversion 相关的全面范围的服务,包括支持,培训以及额外的工具。
  • Subversion 相对来说仍然很年轻。因此它缺乏成熟 SCM 解决方案的一些关键性功能。Subversion 的开发有一个清晰和开放的计划,因此这个团体不可避免将执行拼图缺失的部分。

将供应商和 Subversion 联合起来

Subversion 对于传统供应商的影响是十分深刻的。Subversion 继续成为成功的 SCM 产品是绝对没有问题的,除非是价格点、构架,或者功能性的问题。

这些开发 IDE,比如 Eclipse、JBuilder、NetBeans、IBM Rational Application Developer、IBM Jazz,以及独立的 ALM 解决方案,像来自 Intland 的 CodeBeamer,遮蔽了对潜在版本控制工具的需求。在 Q2 2008 中, Clearvision 将为 Subversion 发布一个轻巧的 Rational Unified Change Management(UCM)风格层次。在这之前,第三方干涉界面,比如 IBM、Serena、Perforce,以及 Accurev 提供了用户界面,从而改善潜在变更的实用性以及配置管理工具。

以前一直使用 Rational ClearQuest 和 IBM Rational ClearCase 联合解决方案的公司®,现在正在引进 Subversion,从而利用产品和创建混合解决方案的方法的力量(ClearCase 与 Subversion 的集成),这样可以通过使用来自 Clearvision 的 ClearQuest Subversion 继续把 ClearQuest 当作他们总体变更管理解决方案。任何考虑变更工具中变更的人都必须权衡转变成一个新产品的影响和继续使用现存工具延展性的优势和劣势。

每个工具都有“生命的结束。”问题是您现存的解决方案的每个部分对于当今的环境是否仍然是低效成本以及功能上的适合(同时也考虑到即时投资和用在裁决/执行上的努力,展示,培训员工,以及维持最初的解决方案)。

集成变更管理: ClearQuest 和 Subversion

Rational ClearQuest 是一种工业领导的变更管理,它提供了为了更好的软件和系统开发生命周期需求而需要的灵活的变更跟踪,过程自动化,报告,以及生命周期的可跟踪性。与软件配置管理的集成提供了将开发活动与文件变更链接的能力,记录了 ClearQuest 中变更文件的版本,以及配置管理工具中活动的信息。

一旦变更工具有了可见度,并且其中的文件会因为任何活动而变更,那么执行一个复杂的任务,比如将刚刚变更的交付转化为主要开发线路是相对较容易的事情。拥有一个能够允许积分器挑选或者选择功能的哪个条目可以被集成或者从发布版本中逆序恢复的开发过程将给予难于置信的灵活度。然而,没有变更组合的最初记录,它将很难实现。

通常情况下,只有当变更请求提出的时候开发在可以发生。变更请求通常被分为以下三个类型:缺陷、增强,以及新功能。

即使开发处于最初的状态并且被认为是探索性的,工作也应该在变更记录的前提下被注册。即使在最糟糕的情况下,当一个变更记录以模糊的状态或者高层次开始时,它至少要被跟踪和存档。

如果这个过程简单而且没有干涉或者减缓它们进展的时候,开发人员通常是理解变更管理的系统的利益的。

将 ClearQuest 与 Subversion 集成起来

按照惯例,ClearQuest 只与 ClearCase 完全集成。有了 CQ2SVN 2 的介绍(一个 Clearvision 产品),ClearQuest 现在可以完全与 Subversion 集成,允许 Subversion 用户从完整的功能中获利,并且整合变更管理解决方案。

Rational ClearQuest 在变更管理市场被看作是一个行业的领导者。Subversion,如果先对比较新,它就适合许多正在寻找能够减少一般费用的开发环境,它因此也尤其适合工作中敏捷的方法。

CQ2SVN 是如何工作的?

对于那些目前使用 Rational ClearCase 和 Subversion(无论是集成的还是隔离的 SCCM 产品)的组织来说,CQ2SVN 界面能与现存的 Rational ClearCase/Rational ClearQuest 集成(无论是 ClearCase Base 和/或者 UCM)一起很好的配合工作。

Subversion 与 ClearQuest 的 集成在这种方法中十分简单:

  • Subversion 用户委托了一套文件。
  • CQ2SVN 陷入这个承诺中,并在 ClearQuest 库中查询筛选的记录列表(哪些是分配给开发人员的)。
  • 这个记录列表是呈现给客户机器上的用户的。
  • 这个用户可以选择选择一个或者更多他们想要集成的行为的记录。
  • CQ2SVN 然后通过编写与 ClearQuest 记录相对应的文件变更组合从而将检测与活动联合起来,同时编写与 Subversion 修订相对应的 ClearQuest 记录 ID。

CQ2SVN 屏幕图像

下面的屏幕的图的图像提供了一个理想的 CQ2SVN 用户界面。

CQ2SVN 截图

图 2: CQ2SVN 在 Rational ClearQuest 记录中提供了一个额外的 Subversion 键符。

 CQ2SVN 截图

图 3: 自动显示开发人员在 Rational ClearQuest 中的 Subversion 检入注释

CQ2SVN 截图

图 4: Window 允许 Subversion 提交者选择合适的行为

关于 Clearvision

Clearvision 于1997年建立,是一个独立变更和配置管理咨询公司。首个 UK IBM Rational 合作方,我们在配置和变更管理中与世界领导者合作,包括 IBM Rational、WANdisco、Intland、Polarion、CollabNet, 以及 Atlassian。这些关系已经建立了很多年,允许我们销售最新的产品,同时还给我们访问资源和技术援助的机会。

起初在 UK 成立,Clearvision 现在已经在整个欧洲和美国拥有办事处,并且在办公室可以与世界各地的客户进行常规的工作。Clearvision 客户基础包括全球100强公司,比如 CitiGroup、HSBC、Barclays、Ericsson、Sony, 以及更多公司。

最近几年,Clearvision 已经帮助客户将 IBM Rational 变更管理解决方案和灵活性以及开源低成本解决方案结合起来。

Clearvision 在市场中的领导力体现在以下几个方面:

  • CM Training (基于 Web 和便利的课室培训)
  • CM 咨询策略,过程定义,以及产品介绍
  • 产品集成:例如, CQ2SVN 和 Jira2SVN

CQ2SVN 是一个 IBM Ready-for-Rational 认证的产品。请查看 IBM Rational 网站获得更多的详细信息:ClearQuest To Subversion CQ2SVN 页面。

参考资料

  • 参与论坛讨论
  • 您可以参阅本文在 develperWorks 全球网站上的 英文原文
  • 一个专门为 Rational Edge 专刊创建的 新论坛,因此您现在可以针对当前的刊物中或者我们的档案中分享您对这篇或者其它文章的观点。阅读全球其他伙伴的观点,展开您自己的讨论,或者加入到进展中的讨论。点击 这里 开始。
  • 全球 Rational 用户组社区
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号