SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5684|回复: 3

[原创] IBM Rational Jazz RTC 使用之大局观--之前写的一篇文章,发过来

[复制链接]
发表于 2013-3-21 22:12:02 | 显示全部楼层 |阅读模式
IBM Rational Jazz RTC 使用之大局观! O, d4 H9 |( ]" j7 p$ G
作者:王天邑

2 k% J& A) m0 U$ r% P' M& l内容前言一、安装篇二、配置篇三、流程篇四、配置管理篇五、综合篇

前言

作为第一批去上海参加IBM Rational Jazz RTC学习的学员之一,不知不觉中已经渡过了好几年,RTC如今已从初始的1.0变成了3.0,而且还在快速的发展中。我也在2个项目中使用了一段时间,现在因为需要又将3.0.12部署了。感觉这里有很多走过的经验可以做一些分享和记录,更多的是从宏观上,进行一些思考。

首先我想说的是,要搞明白RTC到底是一个什么东西?如果不明白RTC到底是一个东西那么自然也不会去用它!

我们知道军事上有一个词语叫做:C4ISR,什么是C4ISR呢?什么是C4ISR系统呢?C4代表指挥,控制,通讯,计算机,四个字的英文开头字母均为“C,”所以称“C4。”“I”代表情报;“S”代表电子监听;“R”代表侦察。C4ISR是军事术语,意为自动化指挥系统。它是现代军事指挥系统中,7个子系统的英语单词的第一个字母的缩写,即指挥Command、控制Control、通信 Communication、计算机computer、情报Intelligence、监视Surveillance、侦察Reconnaissance。C4ISR系统是现代军队的神经中枢,是兵力的倍增器。

实际上,软件开发,和打仗特别的类似,都是要带领一个团队,通过一个过程,完成一个目标。打仗是完成战役战术任务,软件开发是完成软件项目或产品。

那么在军事上有C4ISR,在软件开发中,是否也有一个类似的指挥控制系统呢?如果有的话,那么RTC就是这个C4ISR系统。

有人说,没有RTC这样的C4ISR,我们照样也可以开发项目,完成产品。当然,当年八路军没有C4ISR也照样打败了国民党,但是指挥控制系统还是有的,只不过是更多的通过人工方式进行,而没有自动化。

如果我们的开发团队在地理位置上,都处于同一个地点,团队规模上不太大,项目的时间进度要求不严格,并且对过程监管也不太需要(往往这种情况过程监管是走走形式或者不存在),对任务的完成情况也不去量化,那么,的确是可以靠传统的办法来开发的。但是,如果你指挥的是一只海陆空,卫星,导弹,网络战,信息战,心理战,多种火力,多层次,多维度空间的战斗,那么,没有C4ISR这样的系统,显然是不可能的。

换而言之,如果你想做到开发流程得到切实执行,项目任务能够很好的量化,项目进度可以有根有据的得到实时显示,对团队的管理可以有条不紊的清晰执行,对每个团队成员的任务绩效可以精确量化,能够管理地理位置上分布式的团队,能够和项目干系人实时的“看到”项目进展,那没有RTC这样的工具,是不可能做到的!

那么,实际上,用和不用RTC,是一个综合管理层次上不上台阶的问题,是项目的精细化管理是否能够落实的问题。因为项目过程中,很多元数据能够服务于你的项目管理和度量,但是这些元数据的统计和使用,是需要工具支持的!而Jazz平台--RTC的后台架构,是能够使用这些元数据为项目开发过程服务的。

关于这个层次的思考,还有很多方面的内容,但是最核心的一句话就是:RTC是软件开发的C4ISR系统。

一、安装篇

软件安装,好像给我们的感觉,无非就是“下一步”、“下一步”这样就行了。但实际上,这的确是我们被微软给宠坏了,IBM的软件,尤其是这种企业级的软件,安装起来是没有那么简单的。

  • 安装方式多:有下载一个很小的“引子”安装包,然后在线安装的!有下载完整的服务器端,客户端安装的,也有可以通过云的方式来使用的。在这里,推荐使用下载完整的服务器端和客户端软件包的方式。因为如果用在线安装,需要在安装过程中持续下载,且第二次安装,又需要下载,很不划算,而且网络连接出了问题--中国这里的速度不是很快,容易半途而废。
  • 安装规划:是选择什么平台--windows,linux,小型机,大型机?选择什么位数,是32位,还是64位?选择什么版本?是免费版,标准版,企业版?选择什么中间件,是tomcat,还是websphere?选择什么数据库?是自带的小型数据库,还是DB2?DB2的什么版本?或者是Oracle?
  • 部署规划:是选择所有的软件都安装在一台服务器上?还是选择多个Jazz服务器分布式部署?数据库,中间件服务器是如何部署?数据库要不要做HA,中间件要不要做多节点?如何保证高可用性?等等......如果真正考虑企业大规模使用,这些都是要考虑的。
  • 用户的认证方式:是直接让RTC来管理,还是采用企业已有的LDAP?如何管理用户?
  • 授权模式:是使用浮动license?还是固定license?每种license各购买多少个?相关的数据库的license对RTC的不同版本的支持(标准版,企业版),中间件的license等待。
    3 i* b$ s9 n* z+ t  S) t

上面说了一大堆,还只是服务器端的事情,对于客户端,也有要考虑的地方。

客户端是和什么IDE集成?是和RSA这样的重量级工具集成,还是和普通的Eclipse集成?还是和微软的VS集成?要知道仅仅一个RTC客户端的能力是仅仅限制在C4ISR方面,要是作为IDE,功能是很弱的,所以必须和某种功能强大的IDE集成,才能发挥综合作用。

关于安装,其实应该仔细的规划,详细的考虑,制定一个完整的部署方案和采购计划(如果打算花钱)包括硬件,系统平台,网络拓扑。

二、配置篇

其实,RTC的配置,分为3个阶段:

第一个是安装过程中,就要配置很多URI,用户名,密码,选择安装具体的application(RTC本身类似于一个J2EE的 application,是部署在中间件和数据库之上的),dw的用户名,密码,等等。这里建议大家安装的过程中,把这些配置的参数,记录下来,不要安装结束后,自己忘记了。同时,像URI这样的参数,是在后期不可以修改的,如果你要是安装RTC在一个公网上(internet)上,那么相应的域名,DNS等等要提前设计,设置好!甚至是部署在局域网上,也应该提前规划好IP地址等。

第二个是安装结束后,要配置很多RTC服务器的管理方面的信息,因为RTC的管理是分级的,在服务器管理这个级别上,有jazzAdmin,jazzDWadmin,jazzGuest,jazzUser,每个层次的权限当然是不一样的。那么进入到RTC里面的“人”在服务器层次上,要有一个设定。除了在jazz这个层次上,还有一个“Client Access Licenses”的层次,分别有Developer,Contributor,Build System,以及CC,CQ Connector,甚至还有RRC和RQM的相关权限级别。都需要设置好,而且这个Licenses都是有数量限制的(花钱购买)。

第三个是在项目过程中,首先你要在RTC的控制面板中,新建项目,要选择项目模板--包括有带需求也带测试管理的;带需求管理不带测试管理的,不带需求也不带测试的,以及另外的一些模板。同时,还要为这个新建的项目选择过程--process,有Scrum,OpenUP,等等,需要根据你的团队掌握哪种过程而选择的不同过程支持(很多团队实际上并没有熟悉任何一种过程,是按照“自然”过程而去开发项目的,很危险,很不规范哟:)),RTC会在开发阶段来支持这个过程的落地!让过程在开发过程中能够得到贯彻!这也是RTC的先进之处。

但是,你和你的团队,必须首先熟悉并了解你所选用的过程,如果你的团队不熟悉Scrum,那么项目之前需要进行Scrum培训!因为RTC对于项目的管理和这些过程的类型是紧密结合的,如果没有恰当的过程类型的支持,对于项目的管理,指标量化,时间管理,都是不能够进行的。请记住,在新建项目时,你仅仅是选择了某个类型的过程,而并没有去设定这个过程的具体细节。

另外,还需要创建团队!一个项目一个团队--好多国内公司都是这么做的。而实际上,一个项目可能会有多个团队,例如,一个项目配备了一个写后台服务的团队,一个写前段页面的团队,一个测试团队,一个需求工程团队,一个部署团队等。在团队这个层次上,也是有角色和权限的。

三、流程篇

当你安装好了RTC,也建立好了项目,具有了团队和团队成员,那么这个时候,你还有一些事情要继续做。具体来说,首先是让你的团队成员和流程角色相结合。具体说来,就是让团队的“张三”作为ScrumMaster,李四作为Team Member,王五作为Product Owner等等。接着你要给项目设置plan,根据你的过程不同,这个plan也有区别。对于Scrum过程来说,发布计划,迭代的sprints等等。这个其实是一个项目管理,相当于很多项目经理在微软的project上做计划估算(在project往往是乱估的:))。但是,RTC的计划是和流程结合的,这个中间会有一个非常不同的地方,就是这些计划会:“倒计时”,例如某个程序员接受了一项任务,那么给这个任务分配的时间是10个小时,那么从程序员接受任务开始,就进行倒计时了。

在这个流程中,需要设置很多东西,具体来说,要设置需求--story,任务--work item,把任务和某个人关联,设置任务的优先级和在哪个迭代周期中完成等等。

在这个过程中,你要熟悉某种开发流程--例如Scrum,另外,你还要把这个流程和工具结合--也就是要把Scrum这样的流程配置到RTC中!并和RTC的任务管理机制相配合。例如RTC是通过work item来管理任务的。同时,还要考虑到项目管理的方面--例如每个Story Points应该怎么样?以及每个story的“可接受测试”是如何的?总之,这是一个项目计划,任务分配,流程管理,时间安排的综合配置过程,同时也要考虑到如何实现需求,功能,以及测试。

其中把握的要点是要把项目的管理和流程,结合起来,这也是RTC可以让流程落地的地方,不会出现那种,流程是流程,开发过程是开发过程,互相之间脱节的问题。避免了说一套,做一套。

我觉得这个过程,应该是PM和项目组技术经理,团队成员共同讨论,来进行的,而且这个过程对于项目非常重要。

四、配置管理篇

RTC的配置管理有其自身的特点和使用方式,一般来说,传统的配置管理工具如CVS,SVN,都是2级模式--客户端与服务器,但是RTC是分3级,在 RTC 中,为每个开发者在 RTC Server 端建立了 Personal 的 Workspace,所有的变更在 Local 完成后,将先 Check-In 到 RTC 服务器上 Personal 的 Workspace。然后通过 Deliver 将变更提交到 Stream 中,使其他 Team Member 可以通过 Accept 分享你的变更。

另外一个需要注意的地方是,之前的配置管理工具都是以对文件的修改为关注点来设计的,而RTC的配置管理是以对一批文件(保护目录)的修改为关注点来设计的,这里通过一个“变更集”的概念,将关注点从“对文件做了哪些修改”变成“做这样的修改动作(往往涉及到多个文件和目录)是为了什么?”;当进行提交的时候,是以“变更集”为一个单位进行提交,同时,“变更集”也可以非常方便的和“工作项”进行关联,这样,就可以非常方便的看到为了完成某一个任务,进行了哪些改动,使得整个配置管理的关注度由一个个的碎裂的基于文件的操作变成为具备达成某个目标的具体行为,这样对于减轻团队成员之间的代码合并是非常有好处的,否则团队成员在合并代码的时候,往往需要反过去追问,为什么这个地方被修改了。

RTC的代码控制是基于“流”的形式,在控制上非常灵活和方便,能够支持多种开发分支的模式,在开发过程中,可以随意改变指向不同的流,从而工作在某个流上,非常便于支持多个不同版本的开发。

五、综合篇

应该说通过使用RTC能够将我们的软件项目开发过程管理,提升到一个新的层次,从以前的估算式,阶段化管理,过渡到“精确统计,可度量,精细化的模式”,将阶段式汇总统计开发结果过渡到实时报表,实时进度查询的模式。使得软件开发的过程真正可以做到量化管理,实时管理,基于软件开发过程(如Scrum等)管理,团队整体管理!并且RTC是和集成开发环境IDE无缝集成的,使得以前那种项目跟踪,项目管理工具和开发工具分开的模式导致的“数据是后期人为填写”的弊端得到克服,而是在项目过程中,这些数据就会自然而然的被取得,是真实的,实时的,有效的!

如果项目团队打算在项目中使用RTC,要注意:

  • 要全员参与,而不仅仅只是项目经理,或者配置管理员来使用;
  • 要结合某种开发过程--如Scrum,这样才能最好的发挥RTC的威力;
  • 要对团队成员进行充分的前期培训,不要想象这个工具一装上去就能直接用,而需要把整个项目团队成员的思路都统一到RTC这个平台上来,不要将信将疑的采用,或仅仅只用有限的功能;
  • 要循序渐进的使用,并且要坚持使用。第一次用RTC这样的工具,肯定会碰到很多问题,不要碰到问题就退缩而回到传统模式,而要通过一轮,两轮,多轮的不断深入和熟悉,逐步让RTC的使用变成一件“自然而然”的事情,那么这样就成功了;
  • 要结合Jazz平台的其他工具一同来使用,例如在需求建模和写作方面有RRC,在测试管理方面有RQM,如果能把RRC,RQM等等这样的上下游工具都一起使用,那么效果会更好。因为这样可以在底层共享整个项目开发过程中的“元数据”信息,使得项目过程的控制和监管能够更加的“无缝”。
    $ }) I3 i5 U4 T9 Y. D9 N8 y
. M/ i6 G+ c. C* k) _- z

' p0 ?3 Y8 t% b3 O* A( e2 u
发表于 2013-3-22 08:49:14 | 显示全部楼层
不错,虽然文章旧了一些。目前最新版本是RTC 4.0.2
! F3 A- V2 W* g9 t6 z! m; D已经加为精华。
回复 支持 反对

使用道具 举报

发表于 2013-3-28 15:05:15 | 显示全部楼层
真心佩服,写这么长。
回复 支持 反对

使用道具 举报

发表于 2014-8-21 23:29:13 | 显示全部楼层
目前版本是5.0.2,文章依然不错。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-7-16 15:00 , Processed in 0.075383 second(s), 10 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表