IBM 2008 RSDC嘉宾专访
主持人:大家有什么问题的话可以现在提出来。
宁德军:其实Jazz这个东西大家已经听了很多。为什么会做Jazz,这个是爵士乐,你看弹爵士乐的人他们都是专业的人,他们只是做自己的一块,他们通过很好的配合在一起产生爵士乐。软件开发也是一样,虽然说每个人都很专业,但是大家的开发环境千差万别,你看不到也听不到别人在做什么。那么Jazz就是从这个地方产生思想,希望通过Jazz给我们团队一种默契的感觉,通过协作,产出高质量的软件。Jazz提供的是一个平台,大家以前都听过Eclipse,他有统一的界面IDE,为我们解决了5年前几十个不同产品不同的界面造成的问题。给你二三十个软件,如果想让客户全套用的话是非常困难的。一个软件的开发过程,从分析开始,到设计到开发到设计到质量管理和配置管理,其实真正的整个的生产力,其实这些环节当中最弱的部分决定了你的生产力。他如果想提高效率,其实应该把每个软件都用起来,把每个环节都提高他的生产力,项目管理、开发商、配置管理项目都要做好,但是你要全部都做到自动化,你二三十个平台的话就非常的困难。他通过Eclipse同一个界面,可以在这里面既可以做架构、管理、开发、配置管理,这是前几年发生的事情。但是做完了这个我们又发现IDE统一了,这个界面看起来统一了,但是流程没有统一。RUP是一个非常好的实践库,但它没有办法执行。除了流程之外还有什么没有统一呢?他后面的数据库或者叫存储库有很多,比如说ClearCase库,当然需求有需求库,编程管理有编程管理库,这些库不统一是不行的。你的需求,你开发的模块,包括你的变更,你的测试根本看不到。比如说你想尽快的开发一个软件,你如果编程有问题,你的模块是谁做,有什么问题,你都想看到,而且你希望最好是如果有问题的话可以得到通知。这就是我的问题,我们的Jazz当中,这边发生一个事情,其他人就知道怎么做了。我知道这里有没有人看过Jazz.net的社区,那个社区的主页上写了这么一句话“是人创造了软件,而不是组织”,为什么?他强调的是个体。我们大会的主题说了两句话,一个是开发的智慧,一个是协作的力量。那么谁可以赋予我们的协作的力量呢?就是我们的Jazz,所以这也是为什么我们的主题词是这个。Jazz希望的目标是在整个软件开发过程当中,就像一个生产汽车的生产线一样,这个生产线有什么作用呢?一个是生产线当中人,起到决策的作用,人非常重要。这些人的目标是什么呢?是生产汽车,那么我们是软件,在软件整个生命周期当中有很多的工件,包括我们的模型、我们的开发代码等等我们都统称为工件,大家想想是不是?整个软件的过程,我们所谓的需求,在不同的环节、不同的人当中流动。他们基于什么流动呢?就是软件开发的流程。就像汽车生产线在流动,我们每一个人做每一个事情,产生的工件放在生产线上流到下一个环节当中去。这样就形成一个平台,这个平台允许我们产生不同的决策,产生的工件在不同的流程当中流动,并用流程自动的产生决定。在生产线上,别人做的是怎么样的?我们应该做什么?出什么样的问题了?我们的团队的情况什么样的?通过Jazz我们都可以知道。这些信息我们共享到手里以后,我知道这个模块是他的做的,如果下面的环节我不会做,我就可以通过我们之间的即时通讯告诉他,我现在在做这个事情需要帮助,把所要做的事情发给他,他就能看到我的东西,帮我出谋划策,这样非常地方便管理。
而且,在Jazz上很多的事情都是自动化的。比如说我们的项目经理做完了计划,做完了计划以后,你想想我们以前用的项目管理工具,你做项目管理,还是把那个东西交给每个人让每个人去做。在这个平台当中,他就通过这个协作平台把我们每个人的每个任务,自动地分配给每个人,你做完了以后,计划会自动的更新,所以使之自动化起来。另外我们的团队合作流程也非常的重要,我们这些团队在一起怎么样协作呢?Jazz当中有很多种,怎么样协作,我们的团队协作流程有很多,我们团队协作方式,我们的协作流程,我们可以定在工具当中,那么工具就懂这个流程,这有什么好处呢?就像一个智能的指挥棒掌握在工具手里,他会告诉你接下来要做什么。比如说你做是架构的,或者是你的文档做完了他要求你进行Check in,做好了因Check in以后,他告诉你应该做测试了,做了测试以后他会告诉你应该做编译发布了。这个Jazz本身会提示你,这是一个提示。此外,虽然它懂这个流程,但是它不会强迫你,为什么这么说呢?因为我们大家都知道,在任何的一个团队当中,每个人都不反对要做治理,但是没有人会喜欢被控制,这个工具就不是很强迫你的,它是你的助手,你是主人,而不是他是主人,你是助手。所以有很多的好处。
Jazz是下一代的平台,其实我们现在在想把它称之为软件交付2.0。我们讨论2.0交付,也就是说1.0时代我们有很多的环节,2.0时代我们考虑整个团队的工作量,整个的集成,然后关注每一个环节。昨天我们讲到一个话题,我们现在给一些客户做解决方案的时候,已经不是说先给你看看你的需求,如果我们每一个环节都做了还是有问题的,因为整合没有。我们现在改了一个方式,我们先给客户做了一个规划,未来你的软件架构交付应该是这样的,你可以根据你的现状,然后你找出你的差距,你就可以一个环节、一个环节的提高。这和原来的方式差异在哪里呢?他整个的远景是先有的,你不要考虑集成,不要考虑兼容,先考虑的就是整个远景。如果没有远景,单独地做测试、做构建,那么就会变成我有架构,我有开发,但是他们在一起无法集成。我们很多的客户真的是花了很多的钱做集成这个事,他的需求做好了,测试管理也做好了,但是两个系统就整合不到一起,所以整合他花了很多冤枉钱,而且给我们的团队开发人员增加了很多的工作量。
提问:现在存在哪几种交付模式呢?因为现在的Jazz平台对现有的交付模式进行变革,那么现在有几种交付的模式,而在Jazz的平台下有什么样的改进?
宁德军:我们上午在第一个环节,我们的演讲者讲到我们有三种。其实不仅仅是三种。传统我们是瀑布式,现在还有迭代式。瀑布式是这样:如果项目有一年,前两个月做做分析,后几个月进行设计,快到一年的时候才产生一个交付的成果。那么我们说问题在哪里?一个软件开发风险最大的是前面,而瀑布式只有在整合的时候才会发现问题。这时候修改,时间很紧,前面的工作也都浪费了。后来人们觉得是不是可以改变一种方式,既然是交付,比如说我们交付一瓶水,那么我们能不是分为几个周期,第一个周期我们先把最关键的交付了,我们先把水生产出来,第二个环节我生产出瓶子,第三个环节我生产出包装。半年的时候我的水有了,我最关键的部分,风险最大的部分我在前面做,把最大的目标分为几个迭代周期来做,其实每一个周期都要经过我们瀑布型的需求分析,都会有一个这样的周期,他希望每一个出来的架构是一个可执行的架构。现在还有一种是敏捷开发,现在有很多的游戏公司,或者说有一些不太大的团队,其实敏捷性越来越流行了,敏捷有很多好的方法,比如说协作,产生的软件比文档重要,等等敏捷宣言,所以它有它的好出,但是其实他本身也是迭代的。其实除此之外还有的,这是大概的几类。
提问:你提到软件交付2.0,就是Jazz,偏重在一起的沟通协作。我觉得Jazz的核心是协作,他打破了以前RUP的割裂,可以这样说吗?
宁德军:其实RUP的思想,造福了软件工程很多年,也为软件工程的贡献非常大,RUP是一个非常好的实践的结晶,RUP是有一些最新的工具,他本身内容是可以裁减的,我们有一个叫方法的插件,RUP是一个大的知识库,每一个人是按需索取,这样的话就有很多的plug-in。这是RUP本身。我们一开始做开发的时候,我们什么都没有,我们的软件工程,10年之前,20年之前,30年之前,那个时候我们没有架构管理工具,没有配置管理工具,我们就像建一个大厦一样,是一砖一瓦造起来的,这么多年发展下来,现在什么都有了。这么多年建设下来,他都是基于RUP的思想,所以RUP的贡献是非常大的。包括中国市场也是如此,其实他并不是说和敏捷相对的,他有帮敏捷的,也有帮系统工程的,这么多年我们建设出来这么多的工具,回过头来,在Rational,我们给客户服务的时候,我们发现有很多客户并不是百分之百的成功,为什么呢?软件工程的效率是由整个生产线决定的我们发现这个生产线建的时候并没有考虑到整合。就像我一开始说的,所以我们才有了Jazz,这是一个演进,我们并不是说把以前的要替换下去,所以有了Jazz,Jazz确实是一种基于协作的。
提问:把20多种产品都转移到Jazz,是不是以前的产品都要淘汰了,都是基于Jazz整合的产品?
宁德军:Jazz是对一个产品的演进和发展,他是一个很自然的过程。以前的ClearCase都有,ClearQuest也有,只是后来多一个Jazz,但是并不是说ClearCase没有了。对于我们的未来,我相信不仅仅是这20多个产品,因为由我们的合作伙伴来做,很重要的一点从Eclipse开始,我们大家看到有很多厂商已经支持Eclipse,因为他开放了标准,大家想想他开放标准的好处,现在我们的Jazz有一个开放的标准,他不仅对IDE开放,包括后台数据都是基于开放的标准,不仅IBM可以基于Jazz构建软件,包括我们的合作伙伴哪怕我们的竞争对手都可以的,因为他是开放的,是标准化的。这最终受益的人是谁呢?这一定是客户。客户原来为什么集成那么难?因为他没有基于标准,我们以前集成可以通过三种不同的方式,第一种最古老的就是API,我们一开始的时候都用API,现在我们很多还用API,但是这种方式慢慢就被淘汰了,第二种就是基于标准化的东西,比如说Eclipse,他就是提供一个标准化的东西,这样的话大家就可以在一个界面当中使用,或者是数据交换机都是基于标准。第三种基于标准我们是说基于源数据,就是我们在设计数据结构本身的时候,我们在用另外一种语言来描述数据结构,那个语言本身就是标准化的。现在Jazz就是源数据型的,而Eclipse就是标准型的,以前我们很多的就是基于API的。
提问:我想请问一下,为什么在开发这个层面的有一些产品跟他的合作伙伴可以分为什么类型的合作?
宁德军:其实我来回答这个问题的话并不是一个专家。我可以简单说一下我的理解。合作伙伴有几种,也有一种是帮助我们销售的,这是最简单的一种。第二种他既自己开发,自己用,同时又帮我们做销售和服务。因为他自己用,他本身就一个很好的IBM Rational的客户,他有很多的成功经验想法希望可以和别人分享,他的经验不会像Rational那么全面,但是他针对某一个领域,比如说他自己的领域他非常的全面,因为他自己亲身经历过这个路,所以他就可以把他的经验分享给我们其他的客户,这也是我们的合作伙伴既是自己开发又同时帮助我们做销售。
提问:我看到资料当中,您以前有过很多不同行业的项目实施经验,包括能源、金融、通讯、制造还有新媒体。您对不同行业的项目实施有什么见解?因为有一些可能是大型央企的,有一些是比较小的新兴的中小企业,这个Jazz在实施的时候,在不同的行业,或者是不同规模的企业当中,他们的使用上有什么区别吗?
宁德军:这个问题很大。因为的确我的背景到目前为止在Rational已经工作了八年多了,其实真的是做了很多的行业,我自己也做顾问的工作。其实针对不同的行业,他的特点差别真的很大。
提问:您能不能举两个比较具体的例子,一个是大型的,一个是小型的,谈两个具体的案例。
宁德军:因为Jazz刚刚出来,不能说案例,我只能说一下我自己的理解。确实Jazz这种目前我们来看,他最多的版本就是500人的,我们目前为止,其实一个团队很难会超过500人,因为不同的项目有不同的服务器,所以也是无所谓的。其实从这个角度来说,大的团队里面,在实施的时候,他们考虑流程和小团队的会有很大的差异。因为你管理500个人,100个人和5个人的他的流程完全是不一样的。如果10个人的团队根本不需要什么流程,大家默契就可以了。100个人就需要流程了,300个人流程就会控制的更加严格。所以第一个差异是流程。第二个差异就是这种开发模式的结合也不一样,比如说刚刚说到开发模式,如果是小的团队,你用一个敏捷就比较合适。我们谈到不同行业,不同行业特点完全不一样,比如说电信,他有很多SI(系统集成商),他结合的非常紧,但是也有很多的外包关系,他俩就像已经结了婚的夫妻一样,他俩而且要一起成长,因为他的一个系统可能是他开发的,他如果离开他的话他就无法继续下去,所以他们之间要相互协作。针对银行可能有不一样了,银行虽然有外包,但是对软件的控制力度要比电信要强。还有针对电力,电力基本上是百分之百的外包。电力更多是做甲方的那种更松散的控制。电力还有一个特点,他的外包商基本上都在子公司或者是他的投资公司,所以他们的业务模式上不一样,会导致你的开发模式不一样,那么你考虑的问题也不一样。就像你的治理模型要考虑到相互之间如何协作。因为真正的我们一个软件的平台,能不能产生效率,这里面有几个因素比较重要,一个是人,一个是流程,一个是平台。人和流程在很多方面都有关系,人我们说的是团队当中的角色,这些角色如何配合,再配合以流程治理方式,再加上我们的平台,所以从这几个方面来看,就是我们的差异。
提问:以后基于Jazz以后所有的产品都会开源吗?
宁德军:这个不一定,最终我不知道。Jazz是开源的,但是Rational Team Concert不是。
提问:还有一个服务的问题,上午的时候说到面向周期的开放式服务。说到Jazz他不仅仅是工具的问题,还是一个人和流程的问题。好象现在软件也在向服务转型,软件在开发的时候,对于IBM来说,IBM更偏重于卖工具还是卖服务,这是一个方面,在Jazz以后,这个开放的越来越多,是不是服务也会越来越重?
宁德军:目前我们看到我们的Rational中国团队还是关注于工具,服务在未来比重也会越来越重。我们现在已经有专门的服务团队,辅助以我们的实验室。因为他们背后和实验室结合也非常的紧密,所以现在对服务业越来越重视。现在我们内部也在强调一点,因为真正的什么可以为客户提供价值?不是工具,从客户的角度来说是解决方案。解决方案当中一定包括服务、包括平台。从目前工具和服务的状况来看,就是这样的。
提问:我想问一下,今天早上说到我们的新产品和之前的产品不是一种替代的关系,那么对之前的产品Rational ClearCase和Rational ClearQuest这些产品,那么这些产品的客户,我是必须重新购买吗?还是说我要升级或者是添加组件的办法?
宁德军:如果已经有了ClearCase和ClearQuest的产品怎么办?因为他喜欢那种协作、透明化。而我们现在做了连接,他已经可以把ClearCase和ClearQuest和Jazz平台联结在一起,他们可以互通互联。如果我们的客户已经有了以前的产品,买个插件就可以享受与Jazz的互通互联,享受Jazz的能力,把原来的数据保留。如果已经有了ClearCase和ClearQuest你只要通过插件就可以实现Jazz的功能。
提问:软件交付往往注重质量,现在提出软件价值要和商务目标是要挂钩的,我想问一下RTC方面是怎么样关注客户群的价值问题的?
Alfredo Gutierrez:Jazz并不是说不关心我们的质量,他更关心整个生命周期的质量,他整合很多的东西,他是通过整个生命周期,到架构到测试,整个生命周期的配合,交出高质量的软件,从这个角度来说,我们更加关注这个。所以说Jazz关注的是不同工具之间的协作,通过这种协作实现价值,这种工具包括我们的工具,包括我们的合作伙伴工具,甚至包括我们的竞争对手的工具。比如说Visual.net的工具,他正是通过这种不同工具的整合来交互价值。
宁德军:大家想想RTC本身为什么出来,或者为什么会有Jazz,其实某种程度上正是看到我们原来的客户质量,正是因为我们的业务价值不够业务是不是在每一部分的投资都有回报,是不是他已经很满意了,并没有。为什么?就是因为他全少这种全生命周期的整合,缺少团队的整合,缺少整个流程的智能,没有把这个生命周期的效率体现出来,因为他整个体现在软件的能力,体现在整个平台的扩展能力。其实Jazz的出现就是为了提高客户的价值,客户的应用价值。最后是体现在我们工具的能力。
Alfredo Gutierrez:其实从原来来看有太多的工具,如果我们把这些工具之间都整合起来,真的需要花很多的时间,其实我们已经在尝试做,有很多工具的整合已经有了,但是水平比较低。但是我们的想法在整合之前我们就要建一个平台,所有的东西通过这个平台集成,最后所有的工具整合在一起。但是有一个问题,平台在哪里?所以就有了这样的一个项目,我们动作Jazz的服务器来建立他们之间的联系,我们又利用互联网的基础去访问你的数据,同时解决了整个工具集合的问题,同时我们不仅可以整合我们自己的工具,还可以和我们的竞争对手合作伙伴整合在一起。
提问:我有一个问题,因为这两年SOA在企业界炒的很热,能不能给我们大概介绍一下SOA理念在这里运用的情况。对于用户方面的效果或者说对他们有一些什么样的帮助,能不能大概的介绍一下?
Alfredo Gutierrez:其实RTC本身用了SOA的理念。他的成功有两个非常重要的点,第一个是客户所需要的架构,第二个是我们开发出来的东西得到了用户的认可。今天只是同样的事情在不同的领域,Eclipse是关注于界面,他和SOA的思想是一致的。现在Jazz关注于服务器,Eclipse关注于界面,因为不同的企业关注不同的服务器我们要发现一种可以运行,可以定制可以采纳的服务器。现在这个服务器已经存在了,被上十亿的人使用着。
其实有很多我们可以用到的2.0的技术,在我们的开发环境当中都可以用到,我们今天也谈到了很多,包括像订阅消息、即时通讯等等,这些都可以用到,所以全世界的人都可以看到代码,看到信息,甚至可以把它放到自己的应用当中来集成。就好象是飞机和机场的区别一样,飞机有一个标准化的界面,飞行员可以很容易的从一个飞机换到另外一个飞机,因为他是标准化的表盘、加速器、减速器、平衡杠。机场就相当于服务器,全世界有很多的服务器,也有很多的机场。当你做一种新的飞机出来的时候,你要对你的机场有所改变,你的飞机要可以停进去。刚刚说的情况,你要每建一个新的飞机就要改新的机场,那就太累了,你有很多的事情要做。另外一种方式是你做一个新的机场,你只要做一个连接器就可以了。这样的话不同的飞机之间就可以对话了。Jazz所做的就像新的机场所作的一样,服务器是不同的飞机,他可以使不同的服务器可以相互对话,就像新的机场可以让不同的飞机对话一样。
提问:有一个问题是关于Jazz.net社区这块的,这个社区是非官方的吗?
Alfredo Gutierrez:Jazz.net也是IBM做的。
提问:除了做一个社区之外,会不会提供一个环境给你的合作伙伴做一些测试?
宁德军:这个在中国这个其实已经有了。第一个是IBM本身有体验中心,我们的客户都可以去体验我们的工具。第二个我们会做的更好一些,因为工具本身是基于Jazz.net开源社区的方式,你可以去下载源代码,用起来是非常容易的,第三层次我们为了使我们的客户感觉更好一些,我们IBM有一个workshop,我们请我们的客户来,我们里面有很多的讲师,会来演讲一天或者是一上午,然后他会一步一步的走一个场景,通过这样的演示以后,你基本上就可以掌握这个东西了。
提问:同一个软件开发商他在做一些项目的时候,会用到分包,这次我们的目标是要消除这种壁垒,在开发的过程当中透明的,那么开发商是不是也会担心我整个的架构都是透明的,会丧失竞争力。
宁德军:这可以通过权限控制来解决这个问题。
提问:刚刚您提到Jazz平台融合了Web2.0的技术,这块能不能再重点介绍一下哪些方面应用了Web2.0的技术?
Alfredo Gutierrez:其实Web1.0更多关注于把信息推给你,而Web2.0更关注于交互,像google,ebay会关注客户的行为,然后形成一个软件,这就是Web2.0的技术。现在我们的技术使用Web2.0来提高整个团队的协作能力。比如说刚刚放了google搜索,还包括我们的博客,还包括即时通讯还有电子邮件等等。我们虽然用了这些Web2.0的技术,还有前面的X的能力都包含在里面,这体现了团队的无缝的合作。那么怎么体现呢?我们提出了一个叫In-context,我们把你这个环节所需要的信息都推给你,让你可以拿到,比如说你订阅一个模块,你对这个模块比较的关注,你就可以订阅,他就可以把这些信息给你了。关注这种在上下问里面的即时的,快速得到信息,增加我们的能力。像章我们的订阅能力,你如果对某一方面非常感兴趣,他一旦有什么变化,他马上就会发送给你。如果说你有两个团队,你这个团队用了另外一个团队的模块,但是另外一个模块可能会进行维护修改,如果一修改的话,如果你订阅的话,那马上就会得到消息。
主持人:时间的关系,今天的会议到此结束,谢谢大家的参与。