ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用Jazz/RTC 2.0 实战Scrum 项目开发,第 2 部分

使用Jazz/RTC 2.0 实战Scrum 项目开发,第 2 部分

原创 Linux操作系统 作者:habug 时间:2009-09-27 10:05:25 0 删除 编辑

作者:祝 天光, 软件测试工程师, IBM

转自;http://www.ibm.com/developerworks/cn/rational/r-cn-jazzrtc20scrum/index.html

前言

前文已经介绍了如何搭建和配置 Jazz 服务器,本文将结合 Agile 理论中最为流行的 Scrum 模式,以一个项目的管理者的视角,介绍如何在 Rational Team Concert 2.0(RTC 2.0)中创建一个 Scrum 项目并规划项目的开发周期,及如何定义团队成员的角色并为他们分配不同的权限等。

我们都知道,在通常情况下,一个软件产品从立项,开发到发布,需要经过需求分析建立,开发程序,质量控制也就是测试等等过程,这期间会有很多担任不同角色,负责不同工作的人协作进行。作为一个团队,如何协同配合,提高沟通效率,提高开发质量,从而降低产品的开发成本等,成为项目管理者最为关心的问题,而 RTC 恰恰提供这样一个平台,它使开发人员和质量控制人员的沟通更加便捷高效,是对目前流行的开发模式 - 敏捷开发(Agile)理论的完美诠释。按照 Agile 理论,当开发人员开始编程工作的时候,测试人员也同时进入,而不是像传统开发模式那样,测试相对于开发有一定时间的延迟,从而导致开发和测试相对脱节。可见 Agile 模式更需要开发和测试人员的及时沟通和协作。所以如果你正在或正准备应用 Agile 模式到产品开发中,那么使用 RTC 的确是个不错的选择。

Scrum 方法简介

Scrum 是目前最为流行的 Agile 开发方法,它简单易懂,并且易于采用。Scrum 实施的重点是团队领导和需求管理,强调对客户需求的快速反应以及团队的共同协作和自我管理。Scrum 方法通过将整个开发过程划分为若干个固定时间长度的 Sprint(迭代,有人也习惯叫 Iteration,其实是同一个概念),在每个 Sprint 结束时得到一个可以执行并演示的产品的增量版本,来推动产品的不断演进,直到最终发布。

Scrum 中的角色

在 Scrum 方法中共有 3 种角色:

  • Product Owner(产品负责人):负责制定软件开发需求,确定待开发产品各项功能需求的优先级,并为产品的最终发布负责。
  • Scrum Master(Scrum 导师):对整个 Scrum 过程负责,主持并参与所有 Scrum 工作会议。指导并督促全体项目成员遵从 Scrum 规则和实践,定期检查整个 Scrum 项目的执行情况。
  • Team(开发团队):负责软件的具体开发测试。负责在每一个 Sprint (迭代)实现规划的软件功能,并在 Sprint 结束时生成可运行、演示的产品的增量版本供全体成员预览并检查。

Scrum 开发流程

Scrum 项目开发的大致流程如下图所示:


图 1. Scrum 流程图
图 1 Scrum 流程图

Scrum 项目的起点是由 Product Owner 制定的待开发项目的 Product Backlog (需求列表)。这是一张包含功能性需求和非功能性需求的清单,并且按各项需求的优先级进行排序。然后,在此基础上,Product Owner 与开发团队一起进行评估并制定软件开发计划,计算出需要多少个 Sprint(迭代)来完成该项目。注意:Product Backlog 里的内容以及优先级会随着项目的进行而不断变化,这是由于 Agile 开发注重对客户要求的快速反应所决定的。

在每个 Sprint 将要开始时,从 Product Backlog 中拿出优先级较高的部分需求来实现,并按不同的开发组将需求的开发测试分解成各个不同的 Task(任务),从而制定该 Sprint 的开发计划,也就是 Sprint Plan。一个 Sprint 的时间是固定的,通常是 1 个月或 2 个星期。

在 Sprint 开始后,所有团队成员每天都要进行一项重要的 Scrum 实践,那就是 Daily Scrum Meeting(每日例会),时间十五分钟,会议的目标是检查开发进度,并协调团队工作。每位开发团队成员都需要回答三个问题:1. 从上次例会后的一天里你做了什么?2. 从现在到下次例会的一天时间里,你准备做什么?3. 在实现 Sprint 和项目目标的工作中,你碰到了什么困难?

在 Sprint 的结束后,所有人一起召开 Review Meeting,对团队提交的可运行的产品增量版本进行检查及评审,保证所实现的功能与需求一致。紧接着开始下一个 Sprint,周而复始,直到所有需求开发完成为止。

项目实例介绍

既然是 RTC2.0 实战,当然要结合实际的项目开发实例。假设我们现在要开发一个文件搜索的小工具,就像 Windows 资源管理器的文件搜索所做的那样。我们把这个项目叫做“File Finder 1.0”,我们希望最终的产品看起来就像下图所示的样子。


图 2. 文件搜索小工具界面图
图 2 文件搜索小工具界面图

客户端介绍

首先来了解一下连接到 Jazz Team 服务器(即 RTC Server)的两个常用的客户端,RTC Eclipse 客户端(后文简称 RTC Client)和 Web 界面客户端(后文简称 Web Client)。Eclipse 客户端主要面向客户应用,其功能是本系列文章讲述的重点,所以在此暂不作过多介绍。

而 Web 界面则偏重于管理功能,它包括了很多 RTC Client 没有提供的管理功能,如配置 RTC Server 的界面,建立 Repository(即创建数据库),用户管理,邮件通知等等,同时 Web Client 也可以管理 Project Area,像使用 RTC 一样编辑,查看 Plans,User Stories 等等,几乎大部分 RTC Client 提供的功能都可以在 Web 端完成。

虽然 Web Client 的功能强大,但使用却十分的简单,只要在任意浏览器中输入 URI : https://yourjazzserver:9443/jazz,使用正确的用户名密码登录即可,Jazz Server 会自动根据当前登录用户的角色,显示对应的用户界面。需要注意的是,在 Repository Permission 中具有 JazzAdmins 权限和 JazzUsers 权限的用户,登录后所显示的界面是不同的,普通用户无法查看管理界面。


图 3. 管理用户登录界面(查看大图
图 3 管理用户登录界面

图 4. 普通用户登录后界面(查看大图
图 4 普通用户登录后界面

角色介绍

概念

Jazz 产品为我们推荐了一些常用的角色,让我们先来大概的了解一下这些角色的主要任务及如何配置,后文还有详细介绍:

  • Server and repository administrator

主要任务是安装,配置并管理 Jazz 服务器,创建 Repository,管理用户和邮件通知等等。在 Web 管理界面的用户管理选项中配置。

  • Project administrator

主要任务可能包括定义开发计划和阶段,创建 Team,定义 Team Process,创建 Sprint,查看报表等等。可在 Project 的 Administrators 区域定义,用来控制 Project Area 的访问。

  • Team lead

主要任务可能包括定义团队成员,创建 Iteration Plan,分配任务,跟踪任务完成状态等等。可在 Project 的 Members 区域定义,用来控制 Project 的访问。

  • Team member

主要任务是完成被分配的任务。可在 Project 的 Members 区域定义,用来控制 Project 的访问。

应用

在 Jazz 中,一般是利用角色来控制权限,而应用角色的大概可以分为三个区域:

  1. Server 区角色与权限:

当创建用户是,需要为用户指定 Repository Permission,以便控制用户对 Repository 的访问。通常只有 Sever Administrator 才会被分配给 JazzAdmins 权限,而其他用户一般都是 JazzUsers 权限。

  1. Project 项目的角色与权限

当 Project 创建后,需要将用户添加到 Project 的 Members 区域,并为其指定 Team Member 或者 Scrum Master 等角色,从而控制用户对整个 Project 的访问。

  1. Project Area 区的访问控制

作为一个 Project Administrator,如果没有和 Product Owner 相同的角色,而要拥有创建和定义 Sprint 的权限,就需要将该用户加入到 Administrators 区域。

好了,相信你对这些概念性的东西都耳熟能详,甚至厌倦了,让我们马上开始 RTC 的使用之旅吧。

连接 Repository

在创建 Project 之前,首先我们要连接到一个 Repository,在本系列的前一篇中,我们已经介绍了作为一个 Server Administrator 如何创建 Repository。打开在 RTC Client,我们在左边的 Team Artifacts 视图中,只需右键选中 Repository 节点,选择 New -> Jazz Repository Connection, 然后在打开的“Create a Jazz Repository Connection”窗口 , 输入正确的 URI 及账号即可实现 Repository 的连接。如下图所示:


图 5. Jazz Repository 连接配置界面
图 5 Jazz Repository 连接配置界面 

创建 Project Area

在成功连接到 Repository 后,马上就可以创建我们的 Project,鼠标右键选择已连接的 Repository,在 New 菜单里选择 Project Area,在弹出的创建 Project 对话框中输入项目名称,接下来选择 Project Template,通常我们使用 RTC 提供的缺省模板 - Scrum ,然后完成创建向导就 OK 了。在成功创建 Project 后,再根据自己实际项目的需要编辑一下 Process 就可以了,当然你也可以根据需要创建自己的 Template,这里就不作详解了。下图为 Project 创建后的截图:


图 6. Project 树型结构视图
图 6 Project 树型结构视图

图 7. 使用 Scrum 模板创建的 Project 缺省的 Sprint 结构图
图 7 使用 Scrum 模板创建的 Project 缺省的 Sprint 结构图

很简单,不是吗?而接下来介绍一下如何规划项目开发周期和角色分配。

Project(项目)角色

前文中已经介绍了 Jazz 中的角色,而这里提到的角色,主要是针对 Project 而言的,即在 Project Area 的 Members 和 Administrators 区域中的用户及角色管理。

添加用户到 Members

以我们的项目实例来说,我们整个团队由产品经理,项目经理,开发人员和测试人员组成。其中产品经理 Scott 负责提出产品需求,规划项目开发阶段和周期,及对产品发布的把握,所以他的角色就是 Project Administrator,同时他也可以是一个出色的 Server Administrator。项目经理 Jack 则具体把握每个开发阶段 Plans 的建立及任务的分配,他担任的是 Team Lead 的角色。而其他的成员则是任务的执行者。其中 Calvin 和 Eric 是开发组(Developer)成员,负责开发程序,每天提交 build,并管理所负责的 User Story。而 Sunny 和 Simon 是测试组(Tester)的成员,他们每天获取 build,负责完成测试任务,提交产品缺陷(Defect)等。

  1. 创建角色

好了,清楚了所有团队成员的职责,并规划好每个人的角色,我们就开始在 RTC 中创建并定义这些角色吧。当然,Jazz 中已经为我们建立了几个缺省的角色,我们也可以使用这些默认的角色。

首先,简单介绍一下这些缺省的 Roles(角色),Product Owner 和 Scrum Master 均有管理 Project 的权限,可以修改 Project Area,创建 Product Backlog,Plans 等等,属于管理员用户。而 Team Member 可以连接并使用 Project,创建 Plans、User Story 等,但不能修改 Project Area,属于普通用户。尽管有些角色所拥有的权限是一样的,但我们还是建议创建并使用特定名称的 Roles(角色),如 Developer,Tester 等等,以求清晰,直观的了解某个用户在项目中担当的真实角色。

创建 Project 角色需要在 Jazz 的 Web Client 端完成,输入 URI https://yourjazzserver:9443/jazz ,以管理员身份登录后,在”Project Area Management”选项下,选择我们上面所创建的 Project,选择 Roles 选项,然后在右边的 Role Details 区域,输入并添加 Team Lead,Developer 和 Tester,作为新的 Role,点击 Save 按钮保存结果即可。如下图 9 所示:


图 9. 创建 Role 的 Web 界面(查看大图
图 9 创建 Role 的 Web 界面

  1. 分配权限

定义好了角色,还要为这些角色分配不同的权限,以便控制团队不同成员对 Project 的访问。

需要指出的是,如果没有为当前用户分配角色,则该用户将无法正常访问 Project,如创建或编辑 Plans 等,即使他是 Administrators 组成员。

还是在 Web Client,如上图显示的页面,转到 Permissions 选项下,然后就可以配置权限了。你可以按 Project 配置权限,也可以按 Team 配置,设置对每个阶段 Iteration 设置权限控制,很灵活,一切视项目需要而定。例如 Process 权限控制着 Process Area 的访问,如果用户所处的角色没有这个权限,则该用户对 Project Area 的编辑不会保存生效。不过有个特例就是该用户被添加到 Administrators 区域。而 Save Release 控制着 Project 的 Release Plans 的访问。

当然,除了 Web Client 可以配置权限外,RTC2.0 Client 也提供了配置修改权限的途径。在左边的视图树中选择创建好的 Project,右键菜单选择‘Open’,转到 Process Configuration 选项下,如下图 10 所示:


图 10. RTC Client 中配置角色权限的界面(查看大图
图 10 RTC Client 中配置角色权限的界面

  1. 分配角色

完成角色定义后和权限配置后,我们就可以为每一个团队成员指定角色了。RTC Client 和 Web Client 都提供了相同的功能,我们以 RTC2.0 Client 为例,和在 RTC Client 中配置权限一样,打开 Project Area,在 Overview 选项下的 Members 区域,通过”Add…”按钮打开添加向导,就可以完成添加用户,分配角色的工作,如下图 11 所示。


图 11. Members 定义界面
图 11 Members 定义界面

当然,这些用户是事先已经创建好,或者从 LDAP 导入的。关于如何创建用户,请参考本系列前一篇关于 Jazz 安装和配置的文章,这里不作介绍。

另外,在成功的添加用户到 Members 后,系统会提示是否发送邮件邀请(Invitation)给该用户,成员可以通过邀请信获取 Jazz 服务器及 Repository 和 Project 信息。

添加 Administrators

如果你只是 Team Member 而不是 Project Owner 的角色,为了拥有规划创建 Sprint(即编辑 Timeline 区域,下文将详细介绍)的权限,需要将用户添加到 Administrators 组,缺省情况下,拥有 JazzAdmins 权限的 Server Administrator 会被自动加入该组,如下图 12 所示。


图 12. Administrators 定义界面
图 12 Administrators 定义界面

总之,要拥有创建 Sprint 或者配置角色等 Project Area 的访问权限,有两个途径,分配 Product Owner 角色给用户,或者将其添加到 Administrators 中。

OK所有和用户角色相关的配置工作已经完成了,接下来就开始规划并创建 Iteration 吧!

规划项目开发阶段

根据 Agile 理论,我们将一个 Scrum 项目的开发分成若干个阶段(Iteration),每个阶段大概有两周的时间。所以在项目开始前,产品经理都会根据项目需求,制定 Plans,并规划产品开发,测试,到发布需要的周期。以我们给出的实例来说,由于项目不大,程序的开发大概需要三个 Iteration,这期间,开发和测试工作同步进行,开发人员会及时修正测试人员发现的产品缺陷,当到了第四个 Iteration,程序开发结束,测试继续,当发现 Regression 的缺陷时,开发及时修正,当最后一个 Iteration 时,开发和测试工作基本结束,如果没有发现重大产品缺陷,则项目结束,产品顺利发布。

如下图所示,在 RTC2.0 Client,你可以打开当前项目的 Project Area,在 Timelines 区域,选中“Release1.0…”,然后通过 Create Iteration 按钮创建新的 Iteration,并可以编辑现有的缺省属性。

下面是我们根据 Process Template 中的 Scrum 模板,定义好的一个完整的 Scrum 项目的 Sprint 结构。


图 13. 项目完整 Sprint 结构图
图 13 项目完整 Sprint 结构图

当保存完 Sprint 结构的配置后,所有的定义将会在左边的树结构中看到。


图 14. 项目树形视图结构图
图 14 项目树形视图结构图 

总结

相信通过上文的介绍,您已经对使用 RTC 创建一个 Scrum 项目有了一定得了解,但这些都是从一个 Product Administrator( 项目负责人 ) 的角度来介绍的,而多数的读者可能更关心的普通用户如何使用 RTC2.0 的情况。别急,下一篇,我们马上就会开始第一个 Iteration,介绍普通用户对 RTC2.0 的使用。

免责声明

本文包含解决方案。IBM 授予您(“被许可方”)使用这个解决方案的非专有的、版权免费的许可证。然而,解决方案是以“按现状”的基础提供的,不附有任何形式的(不论是明示的,还是默示的)保证,包括对适销性、适用于某特定用途或非侵权性的默示保证。IBM 及其许可方不对被许可方使用该软件所导致的任何损失负责。任何情况下,无论损失是如何发生的,也不管责任条款怎样,IBM 或其许可方都不对由使用该软件或不能使用该软件所引起的收入的减少、利润的损失或数据的丢失,或者直接的、间接的、特殊的、由此产生的、附带的损失或惩罚性的损失赔偿负责,即使 IBM 已经被明确告知此类损害的可能性,也是如此。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14780873/viewspace-615623/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-07

  • 博文量
    211
  • 访问量
    323629