限制 MultiSite 技术的使用。分布式的敏捷项目需要无限制的对单个代码行的访问。ClearCase MultiSite 技术从站点到站点复制完整的数据库。为了避免每个站点所做出的变更的冲突,其实现了一个所谓 mastership(主权) 的概念。这意味着如果一个项目在多个站点上开发,并且开发人员正共用同一个分支,那么每个开发人员在提交变更之前要请求主权。有许多方法来处理这件事(包括创建基于站点的集成分支),但它们都增加了额外层次的复杂度,并且会减慢开发过程。出于这些原因,敏捷项目倾向于避免 MultiSite 技术。这就是为什么开发了 ClearCase Remote Client (CCRC) 技术,它允许基于脱离单个服务器的分布式开发。CCRC 的第一个版本限制了功能,然而,从版本 7.0 开始,它将对大多数分布式项目提供足够的功能。因此它应该成为进行分布式灵活项目的推荐方法。图 3 中的屏幕快照说明了工作于 Eclipse 环境中的 ClearCase Remote Client。
图 3:工作于 Eclipse 环境中的 ClearCase Remote Client
避免 ClearQuest 变更控制的过度自定义。实现一个开放的或可定制的变更请求工作流。IBM Rational ClearQuest 工具提供非常强大且成熟的变更和缺陷跟踪工具。虽然许多使用 ClearCase 的敏捷项目已经完全避免使用 ClearQuest 的了,但是越来越多的项目在着眼于 ClearQuest 以及 UCM,看看是否可以用于帮助满足组织遵从和法规的需求。的确,ClearQuest 可以在自动化获取、划分优先级,及变更请求和特性储备的分配上占有地位,如我在本文开头所提到的。然而,过多的过程强制或过小的管理会令开始致力于新的变更任务的开发人员感到时间紧迫。如果不小心实行,这会严重地减慢整个开发过程并减少敏捷项目的生产率。为了避免这一点,敏捷项目实现轻量级的或可定制的 ClearQuest 变更请求工作流。当 ClearQuest 用于整个组织中时,这是尤为恰当的。在那些组织中的一些项目可能会需要更多的控制和管理,许多会嵌入 ClearQuest 工具中。然而,敏捷项目可能不需要或期望同等程度的过程控制和管理。在这种环境中工作的组织通过令变更请求工作流可以让每个项目来配置而取得成功。然而,这种实现需要对 ClearQuest 工具和不同项目过程需求的详细了解,并且应该不容易着手。
适合于敏捷方法的过程
在本文中,我已经讨论了敏捷 SCM 的概念以及如何利用 IBM Rational ClearCase 和 IBM Rational ClearQuest 来实现的最佳实践。希望该讨论可以使您确信,可以找到并实现合适的过程来支持敏捷项目。值得注意的是敏捷 SCM 的实现不是只限于敏捷项目的。有许多项目不认为自己是敏捷的,但已经有类似的 SCM 需求。这些趋向于较小的 IS/IT 项目,类似环境的配置会非常实际。但值得注意的是甚至是较大的项目也可以通过实现更轻量级的且精心设计的 SCM 过程,例如这里所介绍的,来得到一些东西。特别是,构建自动化(包括编译和测试)、预构建好的二进制码的执行,和复合发布的实践可被所有项目采用。
没有理由说企业级 SCM 工具集,例如 IBM Rational 工具集,不能用于支持敏捷开发方法的实现。关键是,定义并实现一个着重于支持,而不是限制,敏捷团队的敏捷 SCM 过程。对于这样的团队,找到正确的管理模型会是一个棘手的训练,但是一般建议从更开放的过程开始,只在必要时实现限制。反馈也是敏捷开发方法的必要部分。SCM 可以有助于此反馈机制的一种方式是通过自动化的构建和测试(及部署)过程。因此推荐您投入大量时间关注您整个过程中的这个方面。
注释
1 要了解敏捷和传统的开发方法相对比的优缺点和成功方面的讨论,请参见 Barry Boehm 和 Richard Turner 的优秀书籍,Balancing Agility and Discipline: A Guide for the Perplexed: Addison Wesley 2004 年。另外,要了解关于敏捷开发方法的最新讨论和案例研究,您可以访问并订阅The Agile Journal(http://www.agilejournal.com)。
2 Stephen P. Berczuk 和 Brad Appleton,Software Configuration Management Patterns. Effective Teamwork, Practical Integration。 Addison Wesley 2003 年。另参见 Brad Appleton et al.,Streamed Lines: Branching Patterns for Parallel Software Development。PLoP Conference:1998 年。http://www.cmcrossroads.com/bradapp/acme/branching/
3 参见 Appleton,1998 年,Op. cit。
4 要了解更多关于如何为敏捷项目设立自动化的构建环境的信息,请参见 Kevin A. Lee,IBM Rational ClearCase, Ant and CruiseControl。The Java Developers Guide to Accelerating and Automating the build process。 Addison Wesley 2006 年。
| 第1页: 敏捷开发 | 第2页: 敏捷 SCM |
| 第3页: 敏捷 SCM 和企业 | 第4页: 限制 MultiSite 技术的使用 |