Rational Team Concert 是一个建立在可伸缩,可扩展平台上的团队协作开发工具,提供了很多功能,整合了软件开发项目生命周期的所有任务,包括计划、迭代、流程定义、变更管理、缺陷跟踪、源代码控制和源代码管理、产品构建自动化,和各种各样的分析报告等。
1 介绍 Rational Team Concert
Rational Team Concert 是建立在 Jazz 技术平台上,支持若干种 Agile 开发模型。Jazz 技术平台使软件开发更加灵活,支持团队成员分布在不同地理位置,提供从小型团队到大型企业的可扩展的软件开发解决方案。Rational Team Concert,有时简称 RTC,具有如下特性 :
使用 Rational Team Concert,在软件开发中,能够实现信息的交换和信息集成,如果某个需求变化了,团队成员就会自动收到通知,团队成员也可以通过多种方式了解这种变化。Rational Team Concert 中的各种视图可以让你更详细地了解信息,跟进团队的开发进度和活动。
Rational Team Concert 使开发团队能够轻松和有效地执行和定制流程,这个流程是角色、实践活动、规则、权限的集合。
Rational Team Concert 中,变更管理的主要特点是用工作项跟踪和协调各种任务,这些任务包括故事(story)、缺陷(defect)、计划项(plan item)、以及普通任务(task)等。工作项和工作流程是灵活可定制的,工作项也可以与其他的变更管理系统进行整合和集成。
Rational Team Concert 中提供了工具来保证计划管理能力,对于项目团队,这些工具能够计划、跟踪、平衡项目的工作量,以反映团队的实际状态。对于 Scrum,可以创建和管理迭代计划。
Rational Team Concert 内置的源代码控制管理系统是基于组件的和建立在 Jazz 平台上的,它支持并行和敏捷开发,支持分布在不同地理位置的团队开发,同时它紧密地集成了缺陷跟踪、构建、和以流程为中心的自动化。
对于开发和测试团队,Rational Team Concert 提供了自动地构建识别、构建控制和构建可追溯性。团队成员可以跟踪构建的进度,查看构建的警告信息和结果,提交构建请求,并跟踪构建过程。
Rational Team Concert 的报告组件能够显示项目的进展和项目状态,可以容易地分析某些可能被隐藏的趋势;软件开发过程中的可视化数据和各种分析报告,能够支持有效的决策。
- Eclipse 客户端,Visual Studio 客户端和 Web 界面
这些客户端界面为开发者提供了一个灵活的集成开发环境。
2 Rational Team Concert 与 Scrum
Rational Team Concert 是个非常优秀的 Agile 敏捷开发管理工具,内置了几个过程模板,可以用来支持一些敏捷开发方法,比如 Scrum 过程、OpenUP 过程和 Eclipse Way 过程等等。本文分享一些使用 Rational Team Concert 实现 Scrum 敏捷开发的使用经验。
Scrum 是一个典型的迭代式增量的敏捷软件开发过程。整个开发过程由很多次迭代组成,每一次迭代是一个 Sprint,每个 Sprint 的周期一般是 2 周到 4 周。在 Scrum 中,用 Product Backlog 来管理产品功能或项目的需求,用 Sprint backlog 管理每个 Sprint 的任务。在每个 Sprint 中,Scrum 产品负责人从 Product Backlog 中挑选最高优先级的需求,在 Sprint planning 会议上由团队成员讨论,估算工作量,确定 Sprint backlog 任务列表。在项目进行中,每天要举行 Scrum 例会(Daily Scrum meeting)。在每个 Sprint 结束时,Scrum 团队提交增量的可交付物。每个 Sprint 结束时,团队成员进行总结和回顾,吸取本次 Sprint 的经验教训,为下一个 Sprint 做准备。请参考图 1 Scrum 模型。
图 1. Scrum 模型
Scrum 由以下几个部分组成:
- 角色(Roles)
- 产品负责人(Product owner)
- Scrum 负责人(Scrum master)
- 团队成员(Team member)
- 各种仪式和会议(Ceremonies)
- 每天 Scrum 例会(Daily Scrum meeting)
- Sprint 计划会议(Sprint Planning meeting)
- Sprint 评审会议(Sprint Review meeting)
- Sprint 回顾会议(Sprint Retrospective meeting)
- 工件(Artifacts)
- Product Backlog
- Sprint Backlog
- Burndown Chart
- Impediments List
在 Scrum 中,产品功能或项目的需求会列在 Product Backlog 中。Product Backlog 是一个项目所需的所有需求或功能的优先级列表,这个列表条目常常以用户故事(user story)的形式体现。产品负责人(product owner)维护这个列表,根据项目的进展和商业环境的变化修改优先级列表。产品负责人对产品的成功负责,定义产品特性和产品发布时间表,负责确定各种功能的商业价值,不断完善和优化 Product Backlog。
Scrum 负责人(Scrum master)管理 Scrum 过程,确保 Scrum 的做法是正确的,并且让团队成员理解 Scrum 的价值,消除项目进展中遇到的障碍,并保护团队成员不受外界干扰。
在每个 Sprint 开始的时候,小组举行 Sprint Planning 会议。在 Sprint Planning 会议上,产品负责人为即将到来的 Sprint 展示最想要实现的产品功能或项目需求,让团队成员把握和分析需要实现的功能,产品负责人和团队成员在本次 Sprint 中的目标达成一致,确定未来 2 周到 4 周的工作重点。然后团队成员决定如何完成这次 Sprint 的目标,并分解成所需的任务,这些任务就组成了 Sprint Backlog 的任务列表。在 Sprint Backlog 中,每个任务按小时预估完成时间,团队成员确定是否可以按时完成开发任务,如果没有足够的时间完成某个功能,可以将该功能从当前的 Sprint Backlog 中返回到 Product Backlog。Sprint Backlog 中列出了团队成员已经承诺在本次 Sprint 期间完成的工作。根据团队经验来评估工作量,而不是由 Scrum 负责人或产品负责人决定,这是 Scrum 的一个特点。
在每个 Sprint 结束,需要召开 Sprint Review 会议,评审已经完成的工作。Sprint Review 会议是一个简短和非正式的会议,任何感兴趣的人都可以参加,并从参与者得到一些反馈。
团队成员可以举行 Sprint 回顾会议(Sprint Retrospective),分析项目的经验。通过本次 Sprint 回顾会议,不断改进团队工作方式和不断提高工作效率,为下一个 Sprint 做好准备。
Rational Team Concert 中提供了 Product Backlog 和 Sprint Backlog 的功能,它们同 Scrum 敏捷开发中的重要工件 Product Backlog 和 Sprint Backlog 一致。
在 Rational Team Concert 1.0 中,如果创建 Product Backlog,切换至 Team Artifacts 视图,并在项目区域中,选择 Release 1.0,然后选择 New > Plan。在 New Plan 窗口中,输入 Product Backlog 作为名字。选择 Product Backlog 作为 Plan Type。
在 Rational Team Concert 3.0 中,在 PlansAll plansMain DevelopmentBacklog 下,有默认的 Product Backlog。打开 Product Backlog,点击 Planned Items 项,可以为 Product Backlog 添加工作项,这些工作项的类型为 Epic 和 story,对于 Scrum,类型为 story 和 epics 的工作项,描述了 Agile 中的用户故事,包括项目需求或产品功能。
在添加所有的工作项之后,产品负责人要为工作项设置优先级,优先级属性有 High、Medium 和 Low,这可以定义实现工作项的优先级顺序。
图 2. Product Backlog
图 2 大图
在 Rational Team Concert 中,Sprint Backlog 中包含了来自于 Product Backlog 相关的具体工作项。RTC3.0 含有默认的 Sprint,例如 Sprint1,Sprint2,并且有默认的 Sprint Backlog,对于有多个 Sprint 的项目,如果要创建新的 Sprint Backlog,首先需要创建 Sprint,然后才能为该 Sprint 创建 Sprint Backlog。打开 Sprint Backlog,在 Sprint Backlog 的 Notes 页面上,能够填写 Sprint 的目标,在 Planned Items 页面上,可以为 Sprint 添加工作项,然后,详细分解工作项,定义任务。
图 3. Sprint Backlog
还有另外一种方法为 Sprint 添加工作项,在 RTC 中,打开 Product Backlog 窗口,选择相关的工作项,然后右击并选择 Plan For,把这个工作项指定给某个 Sprint。
图 4. 给 Sprint 添加工作项
图 4 大图
在 Sprint Planning 会议中,团队成员分析需要完成的任务,为每个任务估计时间,
当估计完所有的工作项之后,可以看到每一个故事的总体估计值,以及整个 Sprint 阶段的总体时间估计值。
一般来说,Scrum 负责人分配任务给团队成员,团队成员也可以主动领取,在 Sprint Backlog 的列表内,可以实现将任务分配给团队成员。
图 5. 给工作项分配所有者
图 5 大图
在每个 Sprint,团队成员要每天更新 Sprint Backlog 中的工作项状态和时间估计,这样,根据更新后的工作项,RTC 便可以产生一个 Sprint Burndown 图表,这个 Sprint Burndown 图表以图形方式显示剩余的工作项和工作量,显示项目的进展,预测项目的未来情况。
3 使用 Rational Team Concert 有效地进行每天的 Scrum 会议
Agile 敏捷开发实践中,强调团队的自我管理。在 Scrum 中,自我团队管理体现在每天的 Scrum 会议中和日常的协同工作,在每天的 Scrum 例会中,团队成员一般回答一下几个问题 :
- 昨天完成了什么?
- 今天要做什么?
- 项目进展中,遇到了什么障碍和问题?
整个会议应该少于 15 分钟。这种经常性的沟通,让团队成员能够了解每个人都在做什么,他们正面临着什么问题,有什么事情需要其他团队成员帮助解决,提高团队成员的协作。
在 Scrum 中,要坚持举行每天的 Scrum 会议 , 了解团队成员的工作进展和遇到的问题,Scrum 负责人要维护一个障碍列表(Impediments List),帮助解决团队成员遇到的阻碍和问题,保证项目顺利进行。
每天的 Scrum 会议可以增加团队成员之间的沟通,并帮助团队成员更有效地工作。
在 Rational Team Concert 中,通过集成的视图,团队成员能够了解各种任务、计划、工作项,也可以查看当天需要完成的工作项,当团队成员更新每日的工作项时,其他成员也可以看到。
在 Rational Team Concert 中,通过持续跟进工作项,团队成员可以更好地了解工作项的优先级,集中精力在优先级高的工作项上,保证项目的正常进展。团队成员还可以规划自己的工作内容和更新剩下的工作项。例如,在 Rational Team Concert 的迭代计划编辑器中,团队成员可以直接看到今天或本周的工作项。这些都有助于每天的 Scrum 会议,了解每天的 Scrum 会议中的问题。
Team Central 视图中的 Team Load 部分也可以显示团队工作负荷,在每天的 Scrum 会议之前,Scrum 负责人可以监控团队成员工作负荷。
Rational Team Concert 提供了 My Work 视图以帮助每一位团队成员查看和跟踪自己的工作项状态。在 Sprint 阶段,团队开发人员可以在 My Work 视图中看到任务和工作项。
图 6. My work 视图
Planned Time 视图可以查看工作项的剩余时间,支持 Daily Scrum 会议,团队成员可以根据 Planned Time 视图讨论哪些已经完成和哪些还没有完成。为了帮助跟进每个工作项的工作量,团队成员应该在 RTC 中每一天更新每个任务的剩余时间。
图 7. Planned Time 视图
图 7 大图
开发员的任务面板也可以分配和监视工作项,它显示了每个团队成员的任务。
团队成员可以使用查询来监视工作的进展状况,Rational Team Concert 已经有很多可用的预定义查询,还可以轻松创建新的查询。预定义的查询,预定义了一些查询条件,可以直接用来查询工作项,比如,'Open assigned to me','Recently modified'等,这些预定义的查询可以用于每天的 Scrum 会议,团队成员和 Scrum 负责人可以快速了解每个工作项的进展。
图 8. 创建一个新查询
对于地理位置上分散的团队,每天的 Scrum 会议有时通过电话或视频会议进行。Rational Team Concert 可以更好地辅助管理每天的 Scrum 会议,可以很快捕捉和处理阻碍项目的事情,然后,通过团队成员的协作,完成这些工作项或重新分配这些工作项。
4 在 Scrum 中,用 Rational Team Concert 进行软件源代码控制管理
在 Agile 敏捷开发最佳实践中,持续集成和自动化构建可以保证高质量的软件开发,持续地交付有价值的软件产品来提高客户的满意度。作为软件开发项目,需要一个高效和协作的软件源代码控制管理系统。Rational Team Concert 就是这种源代码控制管理系统,可以进行变更管理和配置管理,帮助开发团队管理源代码、管理文档、跟踪代码和共享代码的各种变化,并保持整个开发团队的高效协同工作;同时,Rational Team Concert 提供了自动地构建增量可交付物的功能,实现了软件开发的持续集成和自动化构建,实现高效的敏捷开发。
下图显示了在 Rational Team Concert 中源代码控制流转过程,开发人员把变更的源代码检入到存储库工作空间;然后提交到共享的开发流中,其他开发人员接受这些变更的源代码,并且装载到存储库工作空间中。
图 9. 源代码控制流转过程
在 Rational Team Concert 中进行源代码检入(check in)和检出(check out),需要连接存储库和项目区域,下载源代码到本地存储库工作空间中。首先把源代码从开发流装载到本地存储库工作空间,然后,在本地存储库工作空间修改源代码,提交变更的源代码到开发流中。开发人员在 Pending Changes 视图中,展开 Unresolved 节点,检入源代码,加上一些注解,然后,在 Outgoing 节点下,通过提交(Deliver)的功能,就可以把变更的源代码提交到开发流中。
当开发人员提交了变更的源代码到开发流中,团队中其他成员就可以接受这些变更,把变更的源代码同步到自己的本地存储库工作空间中。开发人员在 Pending Changes 视图中的 Incoming 节点下,选择变更集,然后,接受(Accept)这些变更,这些变更的源代码就进入了自己的存储库工作区。
5 在 Scrum 中,灵活使用 Rational Team Concert 的工作项
在 Agile 敏捷开发中,以用户故事(user story)的形式定义各种需求,Rational Team Concert 为 Agile 敏捷开发提供了类型为故事(story)和历史(Epic)的工作项,可以定义用户故事,定义的工作项会显示在 Product Backlog 中。在每个 Sprint,Sprint Backlog 中的任务也是一种类型的工作项,同时,工作项也是跟踪、协调开发任务和工作流转的基本机制,它是各种部件和元素之间的联系枢纽。
在 Scrum 过程中,Rational Team Concert 提供了一些常用的预定义工作项类型,这些类型的工作项全面支持 Scrum 敏捷开发。
- 缺陷(defect):定义缺陷和跟踪缺陷。
- 回顾(retrospective):记录先前正常但在最近完成的迭代中不再正常的内容。
- 故事(story):描述用户故事和需求。
- 历史(Epic):用户故事或需求很大而需要在多个迭代(Sprint)中完成,或者由于未知情况过多而无法估计工作量的用户故事。
- 任务(task):描述特定的工作任务。
- 障碍(impediment):跟踪导致无法取得进展的因素。
在 Rational Team Concert 中,Product Backlog 中的用户需求或产品需求是通过工作项来描述,在 Scrum 的每次迭代中,用户需求或产品需求会被分解成为足够小的类型为任务的工作项,放在 Sprint Backlog 里,并且每一个任务是被赋予了优先级。
在工作项中有很多属性,充分和准确使用这些属性,Rational Team Concert 可以让 Scrum 敏捷开发更有效率。
图 10. 工作项属性
摘要(Summary)字段是一个工作项的简短总结和标题,可以让 Scrum 成员和 Scrum 负责人快速理解工作项内容。
工作项的类型(Type)定义了工作项的特性,包括缺陷(defect),任务(Task),故事(Story)等,不同的类型有不同的属性和不同的状态变化。类型为故事(story)的工作项,可以描述 Scrum 的 Product backlog 中的用户需求或产品需求。类型为任务(task)的工作项可以定义 Scrum 中每一次迭代(Sprint)的任务。类型为缺陷(defect)的工作项可以记录每个 Sprint 中测试验证阶段的缺陷,跟踪缺陷的修复状态和进展。
严重级别(Severity)定义了工作项的严重等级。
描述(Description)字段详细描述了工作项的目标和相关信息,描述 Scrum 中的需求和任务。
所有者(owner),显示这个工作项当前的拥有者或执行者。在 Scrum 中,团队成员可以通过这个字段知道自己负责的任务,Scrum 负责人可以分配任务和了解团队成员的任务情况,在每天的 Scrum meeting 时,可以监控 Sprint 的进展。
优先级(Priority)属性指定这个工作项的重要性和优先顺序。高优先级的工作项将会被优先开发并确保完成。低优先级的任务有可能被转入下一个迭代(Sprint)周期继续开发。
计划目标(Planned for)属性指定这个工作项属于某个 Sprint。
状态 / 解决(State/Resolution),显示这个工作项的当前状态。
在 RTC 中,灵活使用工作项,可以提高 Scrum 的执行效率,下面介绍一些使用工作项的技巧:
在摘要(Summary),描述(Description)和讨论(Discussion)字段中,支持粗体("bold")和斜体("italic"),也可以创建与其他工作项的链接。在工作项中,可以选择一些文本,使用上下文菜单中提取工作项的功能(Extract Work Item),提取相关的工作项内容。
在讨论(Discussion)字段中,添加评论,也可以和评论的作者进行聊天会话或发送邮件。
在快速信息(Quick Information)部分 , 可以通过上下文菜单添加订阅者、附件、链接到其他工作项,也可以附加屏幕截图。
可以使用"查找"对话框,搜索包括摘要(Summary),描述(Description)和讨论(Discussion)部分的内容。
在编辑器的工具栏中,可以使用'寻找潜在的重复工作项'(Find Potential Duplicates),发现可能重复定义的工作项。
6 总结
Rational Team Concert 是一个建立在可伸缩和可扩展平台上的团队协作开发工具,整合了软件开发项目生命周期的所有任务,包括计划、迭代、流程定义、变更管理、缺陷跟踪、源代码控制和源代码管理、产品构建自动化,和各种各样的分析报告等。Rational Team Concert 有力地支持了一些 Agile 敏捷开发方法,利用 Rational Team Concert 进行 Scrum 敏捷开发,能够开发出高质量的产品和项目,能够进行高效率的协同工作,持续的集成和自动化构建交付物。
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);