![]() | ![]() |
|
||||||||||||||
|
![]() |
|
![]() | ||||||
![]() | 分布式异地开发:GDD 项目生命周期中的一天 | ![]() | ![]() | |||
![]() | ||||||
![]() |
![]() |
分布式异地开发是一种能够使业务在位于不同地区、国家或时区的项目团队之间进行合作的软件开发模式。本文通过一个普通的场景举例说明了GDD 模式是如何在 24 小时周期中运行,这使得假定在印度班加罗尔和美国丹佛的团队协同工作成为一体。
然 而,认识到这些竞争优势的挑战是十分重要的。这其中主要的是需要在由防火墙、距离、时区、国界线、语言及文化--或是上述所有因素所带来的障碍之间进行准 确而清晰的通信。由于管理所有软件开发生命周期多个纬度的需要,在一个分布式环境中通过一个可重复的过程,同时维护有效的安全性,这些问题被进一步地合并 在一起 --例如软件需求、变更及资产、测试、编码等等。 本文第一部分 介绍了GDD以及其业务需求,并展示了 IBM 软件开发平台是如何能够对一个成功的 GDD 策略提供支持得。第一部分同时还论述了核心战略的考虑,例如什么样的项目最适合于一个 GDD 解决方案。 现在,在第二部分,我用一个示例场景举例展示了关于应用 IBM Rational 工具以支持 GDD 的一些可能性。 GDD 的布局基础 每个 GDD 项目中都包含着独特的业务以及涉众需求。这些需求依次定义了工作目标以及子任务职责所处的工作模式。例如,对于一个新系统项目而言,你在GDD环境中所选 择的管理需求变更的方法,与关联于第三方的遗留维护合同的管理需求变更方的法将有很大的不同。这就是为什么GDD工具的实施不同于“一种尺寸适合所有需 求”的解决方式。为了最优化地支持不同的业务需求,定制产品下层基础平台以及灵活的集成相关工作是必须的,因此GDD场景的支持工具需要是可配置的。 但 是虽然每个GDD项目是不同的,仍然存在着一些公共的部分。在许多GDD场景中,同时关联着本地以及远程开发资源。那些在本地能够最有效运行的规则以及任 务有着高度的“面向客户”的活动,例如业务建模、需求定义以及可配置性。而能够高效地在远程执行的工作包括代码开发及测试--规则主要与开发团队相关而不 是应用客户。本地以及远程站点也许都需要他们自己的测试或集成以及变更管理规划。同时虽然总体的项目管理责任处于本地级别,但某些级别的项目管理也许场需 要在远程进行。 网络性能以及服务器基础结构也在很大程度上决定了是否能够良好的对一个GDD项目进行组织。GDD项目经理需要考虑:
另外,例如网络拓扑以及安全策略会进一步使得配置及开发GDD工具变得更复杂。业务需求及基础结构性能将联合起来帮助对一个特定的GDD环境进行最优化的工具配置。 一个GDD场景 问 题中的项目包括对一个企业级用户应用软件的正在进行中的维护以及重要的特性增强。关键任务应用是统一用于销售的客户关系管理系统、建议系统和合同管理能 力,以及支持 Alcrohm 的所有三个部门(工业产品、客户包装以及自动化部分)中的团队。当前的版本是由一个大部分由C++编写的用户界面的传统桌面型客户/服务器应用软件。 Alcrohm不得不在短期时间内继续维护代码。但是,与维护工作相比,Alcrohm计划实现一个新的应用软件版本,这个版本能够通过标准网络浏览器访 问,加上Java语言的服务器端代码以及业务逻辑。这个新版本的开发将能够更有效的进行配置以及管理,因为它能够减小客户端安装以及升级的需要。它还将能 够与Alcrohm跨越整体IT基础结构的包括面向服务的体系架构(SOA)的长期目标更好地进行吻合。 这个项目使用每天24小时、每周7天(7×24)的分布式开发模型,包括两个独立的地理场所:位于美国科罗拉多州丹佛的 Alcrohm 中央办公现场内;以及位于印度班加罗尔的海外开发中心。我们称现场的场所为“Site A”,非现场的场所为“Site B”。 这 种GDD场景为 Alcrohm 提供成本以及时间计划上的优势,例如可变化的人员安排、减小国外劳动率,并通过保持项目能够通过“昼夜不停”(也就是说,当位于东半球的开发团队在家或睡 觉时,西半球的开发团队是在办公室中工作的)的运作以减小上市时间。但是这些优点的出现同时也增加了风险。这个项目有着很重大的技术困难,这些难题也会检 验协同位置的团队有效协作、理解需求、交付高质量成果的能力。Alcrohm 选择了来自 IBM Rational 的强壮的、集成的软件工具以解决这些问题,并支持成功的成果。 建立任务 在 Site A 执行的任务包括:
在 Site B 执行的任务包括:
在 进行了成功的单元测试后是在Site B开发下面维护版本的运行,Site B将代码发送给Site A,Site A执行确认、功能以及系统测试。项目规约以及与现有应用软件的维护版本有关的需求变更、模型和图表在Site A及Site B之间进行通信。项目管理是在Site A处理的核心能力,所有Alcrohm应用软件的组件以及资源组合都在这里进行监控。 这些强有力的任务划分允许Alcrohm以相对低的风险得到GDD的常规经验,特别是其非现场的合作伙伴。如果所有这些在次一级项目中都进行的很顺利,Alcrohm也许在未来会选择利用其它分布式开发模型,例如新特性组件开发。 确定资产位置及访问 对 两种版本应用软件的需求在Site A被本地的捕获。Site A因此需要对需求的读/写访问,同时包括业务模型以及用例图。对需求特性的更新以及大部分对需求的更改也都将在Site A发生。Site B也需要对需求的读/写访问。因为他们随着时间对现存的应用软件进行维护,Site B的团队将需要增加需求,对现存需求进行修正,对需求文件添加辅助信息,并分配属性,例如优先级、难度以及状态。Site B的团队成员还将需要在需求间跟踪关系的能力,这样,他们可以测量改变的影响。 虽然两个团队将在不同分支上进行工作,然而两个站点都将需要对共享代码库进行访问。两个站点还需要浏览、创建以及修正变更请求,增加需求以及缺陷报告。 为了达到这种高等级的共享访问,两个站点需要在本地服务器上对关键数据进行复制。 配置IBM Rational工具
同步数据存储 IBM Rational ClearCase MultiSite 和 IBM Rational ClearQuest MultiSite内建的复制能力保持了最新的以及简化的同步过程。ClearCase MultiSite 和 ClearQuest MultiSite数据库同时被复制。这保证了资产之间连接的数据更新。图一举例说明了这种安排是如何工作的。 ![]() 图1:IBM Rational 工具和资产存储 对任何时间或任何地点访问的选择 在Alcrohm GDD环境中,Site A和Site B有足够的能力和管理资源以使得在两个站点的IBM Rational工具有最高等级的功能需求时,无论在哪里都可以通过它们内建的接口被访问。但是项目仍然存在极为重要的网络客户端的使用。特别是在 Site B中的团队成员需要RequisiteWeb客户端对需求进行访问。 除了RequisitePro外,许多其它的IBM Rational工具支持基于网络的或是基于Citrix的客户端选项。例如:
运转中的工具:Alcrohm GDD项目生命周期中的一天 在丹佛的 Site A 的拂晓,而在班加罗尔的 Site B 是黄昏。对Alcrohm GDD 项目从这个观点来看 ―― 在许多其他的活动中 ―― 一个对当前应用软件的被计划的维护版本在很好的运行中。将新版本加入到临近的完全产品中的工作正按照预定的日期进行。 在丹佛时间 07:00 ,Site A和Site B中的IBM Rational ClearCase 和 IBM Rational ClearQuest数据存储分别使用IBM Rational ClearCase MultiSite 以及 IBM Rational ClearQuest MultiSite进行同步。当Site A中的SCM管理员吃早饭时,他使用自己家中电脑上的浏览器通过Rational ClearCase MultiSite Administrator Web接口远程访问副本。他确认预定的复制完成时没有错误。 我们将要追踪的活动流程从业务分析开始,在Site A进行工作,输入将要得到的应用软件维护版本至IBM Rational RequisitePro中。 工 作于Site A的项目经理负责维护发行,她得到一个发给她的新需求的 email 通知。为了检查这个变更的影响,项目经理检查她在IBM Rational ClearQuest中所创建的“Current Workload”图。这张图向她显示了Site B中所有开发者当前的工作量,这是从每个人当前工作的变更请求数量来看的。 再次使用Rational ClearQuest时,项目经理输入变更请求并将其分配给Site B中的一个开发者。这个新请求会出现在这个开发者下次登陆进入ClearQuest时的“to do”列表中。并且在分配这个变更请求后,它的状态会自动被更改为“Assigned”。 现在,一个新的需求已经被增加了,这对于其能 够通过一个新的测试用例来测试来说是极为重要的。项目经理使用Rational RequisitePro 和IBM Rational TestManager之间的集成以在Rational TestManager中对新的需求进行访问。当她创建了新的测试用例时,这个用例会自动的被连接到需求。 维护项目的系统设计师也通过 e-mail 通知获知了新的需求。使用IBM Rational Software Modeler,设计师编辑项目模型来更新用例图以反映新的需求。首先,他检出特定文件进行更新。一旦他将新需求关联到正确的模型元素,更新便被完成,他 再检入文件。RSM和IBM Rational RequisitePro之间的集成自动地维护模型元素以及需求之间的联系。为了使更新后的模型对于在两个地点中涉众能够通过网络浏览器进行访问,无论在 他们的桌面上是否有Rational Software Modeler,设计师都可以使用IBM Rational Software Modeler的网页发布特性。 另一个通过 e-mail 被通知新需求的团队成员是系统架构师。从她位于丹佛的桌面,她使用IBM Rational Software Modeler以及与IBM Rational ClearCase的集成检出适当的文件。在更新这些系统架构图以及适当的序列图之后,她将这些文件检入。同时,她也使用网页发布特性以使得这些新的图对 位于Site B与Site A的团队成员来说都是同等可见的。 现在,我们预测丹佛的夜晚,当然,在班加罗尔是早晨。在丹佛时间的19: 00,Site A和Site B中的IBM Rational ClearCase 和 IBM Rational ClearQuest数据存储再一次使用IBM Rational ClearCase MultiSite以及 IBM Rational ClearQuest MultiSite进行同步。正如她的同事在早些时候做的那样,Site B的SCM管理员使用她的膝上电脑的网络浏览器从她家中访问副本,并检查复制是否成功。 当开发者到达Site B开始他们的工作日时,他们使用本地的Windows界面登陆IBM Rational ClearQuest以检查他们的对新变更请求任务的“to do”列表。来自Site B的远程工作开发者可以通过IBM Rational ClearQuest的基于浏览器的接口检查新任务。 被 Site A的项目经理分配新的变更请求的开发者将看到他有一个新的“高优先级”的工作条目。他首先访问更新过的用例图以及序列图来看看这个新变更是如何影响整个应 用软件,以及他正在工作的组件的。和任何地点的所有团队成员一样,如果开发者需要核实正确的工作流程或是“下一步骤”,他可以通过他的网页浏览器访问 RUP以检查可视化的、显示整个开发生命周期中在各个项目流程之间交互的图表。 下一步,要使用对IBM Rational RequisitePro的基于Web的接口,开发者可以查看新需求的详细内容。他为需求文档添加注释,然后创建一个讨论条目以提出一个问题。 Rational RequisitePro自动追踪讨论进程,因此任何有授权的团队成员都可以很容易的看到注释以及后续的回复。 由于新的变更请求有高的优先级,并且将对他正在进行中的其它工作产生影响,开发者决定立即对其进行工作。为了确定哪一部分的代码需要进行更改,以及需要检出哪些文件,他要浏览Site A的系统设计师和架构师所做出的更新。 从 他安全的个人IDE工作区,他使用IBM Rational ClearCase检出需要更新的代码,在这一天中,他做出了所需的修正。当开发者准备好时,他使用IBM Rational PurifyPlus更新单元测试。Rational PurifyPlus向他通告任何内存泄漏,确保每一行代码都被测试。一旦测试完成,他将代码检入回IBM Rational ClearCase,并且向一个集成流中交付这个更改而不需要离开他的IDE。他还更新IBM Rational ClearQuest中适当的记录以指示出他的活动状态为“resolved”,以及新代码已经为功能测试准备好。这些内建的工作流程管理特性能够帮助避 免工作传递的问题。 下一次项目存储进行复制及同步时(在丹佛时间07:00),开发者的更改随着所有其他对代码库做出的修正一起发送至Site A。 Site A中的构建团队通过创建新的代码基线并使用Rational ClearCase将其提升入构建发布中以开始一天的工作。QA团队然后在新的构建上使用IBM Rational TestManager运行功能、系统以及性能测试。失败的错误导致在Rational ClearQuest中的缺陷记录创建。Rational TestManager 和 Rational ClearQuest之间的集成允许QA经理直接从Rational TestManager中输入缺陷。项目经理可以使用Rational ClearQuest将缺陷分配给Site B中的开发者。对于通过测试的缺陷,相应的变更请求记录状态被自动更新以反映出这个错误已经被修正。Site B中的开发者也可以使用Rational ClearQuest检查分配给他们的变更请求状态。 下面,构建团队使用Rational ClearCase向集成流中交付变更。新的基线与当前基线合并,然后进行比较。当到了对应用软件新版本进行部署的时候,发布工程师可以使用 Rational ClearCase创建新的系统“构建”,并将其发送给测试组以在对产品环境进行配置之前进行最终确认。 同时,为了 保持项目对于下一个维护版本的快速解决部署日期处于跟踪中,项目经理使用IBM Rational ProjectConsole以监控开发的所有维度,例如不同优先级缺陷的数量,重要需求的数量,以及代码改动量。这些定量的度量能够帮助确保新发布按时 准备好,并且完全被测试。如果产生了可能能够危害到进度的问题,项目管理者可以预先进行在各个级别采取减小风险的措施。 许多 GDD 选择 从建议到部署,在分布式环境中,一些GDD模型要求软件开发工具支持整个软件或系统开发生命周期。其它的,例如模块化团队开发也许仅仅需要配置管理以及能够跨越分布式环境工作的开发工具。
![]()
| ![]() |
|
或是邮件反馈可也:
askdama[AT]googlegroups.com
订阅 substack 体验古早写作:
关注公众号, 持续获得相关各种嗯哼: