信息化 频道

IBM Rational技术开发高峰论坛循规方案专场

IBM印度公司软件开发的管理经验

IBM印度公司技术负责人 Ameeta  Roy女士

    【IT168现场报道】这几本书主要是说关于世界全球化的趋势的问题,主要讲外包的。基本上对于一个外包项目来说,我们在这个片子上可以看到,这个项目在美国的话,一个软件开发的项目的一些工作,比如说需求和建模,还有一些设计会放在本土做,因为是希望一些团队跟一些客户在一起做一些分析的工作,基本上把一些代码、测试还有验证的工作会放在印度去做。如果在印度做工作的话,需要做测试、集成等等的工作,对印度团队还是其他团队来说都是需要做的事情。

    比如说项目开发在美国做的,这个是在On-Site完成,这个后面的工作会分成两个地方,一个是在多伦多,还有一个在印度拜嘉罗尔,是因为跟在美国时间是在一个时期的,可以做一些大家上班的时间可以做互相传递的工作,就是进行一些传递。这个时候美国下班的时候,可能是印度下班的时候,可以做相应的编码测试的工作,有了结果之后,第二天美国上班的时候可以看到前一天编译的结果。实际上对于项目来说,是一个多点的开发,那么现在我们看到另外一个趋势印度会越来越把设计的工作,会逐渐移到印度去做。如果我们做外包开发的时候,最终的结果可以帮助我们多少成本,最终的结果是30%。首先是70%我们得到的,是因为外包的话到印度的人力成本是最低的,是因为有70%的节省,因为我们做外包的结果选择外包商,我们要跟他们签合同,这些会有另外的成本,所以会减去20%,因为我们到印度开发的话,同时我们看他们的状况,又会减去节省的20%的成本,实际上可以得到一个30%的节省。

    那么我们刚才看到的是成本的降低,对于印度外包来说还有另外两个优势,一个是它的生产力,以及它的系统开发出来的质量。因为印度很多的外包公司基本上是CMMI的一些公司,他们非常重视产品质量的。如果客户交付给它产品,一定可以作出高质量的产品。还有一个生产力,因为印度和美国有时差的关系,早上我们在美国做需求,印度可以晚上开发,第二天可以拿这个开发的系统,可以给客户做验证,你的产品研发来说,这个生产力非常高的,一个7×24小时这个团队都在做运转。那么刚才说的印度优势,就是成本、质量、还有更高生产力,质量这一块他们如何确保呢,这个里面讲的印度非常大的SI的例子,整个历程是怎么样的,通过一些标准的流程控制它,达到这些目的。首先从ISO9000开始,还有CMM  Level-3,还有CMM  level-5,然后是Six  Sigma,可以达到降低开发成本,可以使项目的时间有一定的控制,不会做太多的拖延,还有可以逐渐的修补,可以达到这个目的,使得他们交付出来的系统是非常好的,让客户非常放心的,所以它其实所在的是一个不断持续进步的过程,不是说到CMMI里,就到此为止了,而是不断有新的标准。

    对于软件开发来说,如何计算项目的开发成本和开发时间呢,其实是有一个公式的,也是Rational大师的一个总结成果,首先有一个计算公式,你的代码行,还有你的流程是否规范,还有开发团队的人员的技术、技巧,还有使用自动化工具的辅助,基本上下来我们给大家讲一下,他们非常注重这些计算公式,怎么样通过这些因素可以提高系统开发的质量。

    那么刚才公式里面讲的流程这一块,是公式从流程标准化的一个过程,也是我们CMM分五级的目标,第一个是混乱的,没有开发的形式,第二个是每个项目有自己的一个项目流程,第三这些项目流程经过优化之后变成一个新的流程,然后企业达到这一步的时候,不断把流程进行精划,然后持续地改进它的流程。对于刚才的公式来说,人员也好,流程也好,印度公司如何实现这些最优化呢,他们会遵循这些不同的标准,ISO9000、CMM、CMMI,这些流程是对人本身怎么管理呢,这些现在做的就是人的CMM,怎么样使人也是分成五级,从一级到五级,可以把人的水平提高到企业需要的水平,这是CMM非常重视的一块。还有Six  Sigma怎么样持续提高产品的质量,也是他们非常重视的一块。所以说同样回到公司里面,那么总结出来四个非常好的实践,复杂度怎么降低呢,希望通过这个范围管理,或者叫资产为基础的开发,基本上它能从不同的行业里面,总结出来一些经验,做成一些核心的资产,比如说一些核心的模块,然后把这些总结出来放在行业里面进行实现它,这样的话有了这样一些软件基础的话,可以降低整个项目,以后不断交互项目的复杂度,这是第一点。第二点是流程的管理,因为流程的话,因为一个企业有很多种项目,有一些大项目,还有一些小项目,针对一些行业有不同的行业特点,怎么样把流程做到适合企业的所有的项目呢,这是他们希望做到的,也是我们后面会谈到的,怎么样项目的流程的规模适应到团队的特点。第三个非常好的实践是非常诚实地检验自己的系统。只要定出来这个度量的话,他们是非常认真地去得到这些的度量,然后得到这样的报表,然后跟客户一起分析系统的状况。第四是持续地进行测试。测试不是在这个系统交付前做的测试,一开始不断测试自己的系统,希望越到发现问题,越早去解决。那么这张图讲的是怎么样用更少的时间更快地交付我们的项目,可能一开始用的是传统的流程,或者一些不开放的工具,那么如果逐渐迁移到迭代式的开发,或者用中间件或者一些成熟的商业工具的话,可以更快地提高项目的速度。那么可以迁移到更好的SOA的方式,又能以更快地速度交付你的项目。

    那么这其中后面几个片子是一个印度非常大的SI,就是万人以上的非常大的SI公司给客户讲的一些片子,里面是摘抄的一些东西。我们看到每年可能有四、五千个项目做不同的开发,可以看到一些系统的移植。首先可以看到有ISO,ITIL,Six  Sigma,他们可以把这些流程集成在一起,通过这些集成可以定义出自己组织上的流程。从上到下,要定义自己的方法论,定义这些人员的职责,还要定义项目团队的这些人,什么时候应该做什么事情,这个会定义好。有这些人,这些职责,什么时候做什么东西,如何做的方法论,也会定义好。最后下来是所有的手册,还有这些指南,包括一些代码的指南,包括您如何用第三方的工具,这些他们已经定义的非常好了。那么对于组织来说,是一个非常标准的东西。

    对于这个企业来说,因为在不断壮大过程当中,同时会遇到一些相应的挑战,那么这个挑战就是说首先我可以看到现在印度企业基本上在全世界各地都有相应的办公室,他们的触角越来越全球化,这个时候遇到一些什么问题呢,比如说要提供一个新的解决方案,这个新的解决方案里面原来制定好的企业的流程怎么样运用到这些公司里面,可以提高客户的质量,同时如何使得刚刚有新的团队组建的时候,如何把这些方法流程贯彻到这些团队里面去,当这个触角越来越大,团队越来越大的时候,如何把这个流程如何适应到这个企业的壮大过程当中。这是他们的一些Challenges。

    怎么样保持企业流程的一致性,同时又可以适应到不同的项目开发的团队里面,大项目,小项目。现在他们有三千多个项目在同时进行,每个项目里面是否遵循同样的流程方法,什么人,什么时候,应该干什么事情,这是每个项目可以遵循整个企业的流程,这是他们遇到的一个挑战。那么怎么样迅速把这些流程针对不同的项目类型可以定制好,可以让这些项目遵循它,也是一个我们的挑战。同时他们又遇到一个问题,他有这么多的流程规范,对于一个项目团队来说,是不是会变成一个负累呢,是不是增加一个工作量呢,这个流程是不是可以非常容易让他们接受呢,他们想的方法通过把这个流程跟他们使用的开发工具和他们的工作管理工具结合在一起,在开发工具里面做一个操作的时候,可以在开发工具的某个地方可以看到流程的指导,可以告诉你要做这个事情应该怎么做的,不需要找到一本手册,然后翻到第几页去看,如果这样的话,对一个团队来说是非常不容易让人接受的,他们要让这个流程做得好的同时,让人非常容易的可以接受它。

   所以对他们前面的挑战,对一个企业来说,要做下一代的全球交付的平台,那么这个平台的核心就是要把他们之前的流程做得非常的灵活,非常融合,非常友好。比如说有一个手机,有非常好的功能,但是这个功能隐藏在不同的地方,不知道怎么用它,你会觉得很痛苦。你做出来的功能不能被手机用户接受。也就是说现在把这个流程做得非常好,但是我怎么样让我的团队,所有的项目的团队成员,项目经理,都可以接受它,更快地接受它,能够遵循流程的规范,希望下一代的系统可以做到这些东西。这是在企业里面不同的团队,他们在流程当中是互相协作的,首先SEPG的部门会定义这个流程,会持续改进这个流程。对于企业所有人的话,要很容易的找到,以及使用这个流程。那么对于每个项目团队来说,PM,他们专门有一个Delivery Management,会帮你做定制,把这个流程缩减到项目需要地东西,对于整个TEAM来说,我们怎么样可以在持续地改进它。

    对于刚才的软件的机器公式来说,四个因子我们可以通过这样的一些方法去提高,我们首先降低复杂度,我们可以用中间件的方式,同时可以通过架构设计的方式去降低我们要搭建的软件系统的复杂度,或者我们可以定义出一些可以用的重用的模块。第二我们怎么样改善我们的流程,刚才一直谈的不同的标准、不同的规范有RUP,有CMI,有ITIL,对于整个团队的技能的提高,可以通过一些培训,刚才说的那些,每年给工程师很多的培训,同时可以参加很多的考试,非常重视这个事情,怎么样对团队人员的素质的提高。还可以通过一些智能化的公式帮助他们管理变更,管理资产,可以更好地协作开发。

    所以说对于人本身的团队的技能是非常重要的。林肯说过“如果给我八个小时砍这个树,我会花六个小时磨我的刀”。你做一个项目确保成功之前,你要确信你的团队和你的人有这样相应的技能可以实现这个东西。所以说基本上你首先提高个人的能力,同时这个基础上,提高项目团队协作起来的工作效率。最后使得你怎么组织他的效率,会有很大的提高。要使用自动化工具去帮助你减少人为的错误,去提高技术的质量。这个说明使用工具可以帮助我们使用效率的提高,如果你要人工计算的话,可能需要比较长的时间,如果用计算器的话,会提高效率。如果你用Excel,你把公式放在里面可以很快地计算出来,所以这个工具可以帮助我们提高我们的生产力。这是一个自动化的例子,就是说在我们建模,我们划分模型之后可以通过双向工程的方式,可以帮助我们提高开发的效率,直接可以从模型生成代码,可以进行开发,通过工具的自动化方式可以帮助我们提高生产力。

    这个企业的管理的话,可以通过这些工具,可以减少在管理当中出现的人工的错误。这是一个例子,是使用的这个工具,可以更好地集成使我们可以管理好版本,还有需求的变更,其中是一个印度使用的这样一个方式。另外一个方式,通过Real  Case的例子,可以减少32%的工作量。那么用Robot这个工具,通过Robot的辅助,可以在交互之前,可以找到1437个问题,没有通过这个工具辅助的话,没有直接交给客户的话,客户一定非常不满意,因为之间有太多的缺陷,这是一些例子,可以告诉我们一些印度的大的SI,可以通过一些工具,可以减少开发的成本。这是SI他们自己总结出来的多年过程当中,他们的一些每千代码行的缺陷,其实从97年开始,我们看到确实近年来是越来越低,同时因为看到项目的复杂度越来越高,同时他们能使得缺陷越来越降低是非常好的一个结果。那么实际上同时他们的开发成本也是越来越低的。这是他们总结出来的这样一些图表。对于这些印度的大的SI来说,基本上每个大的SI,都跟Rational签订了很多的协议,购买了很多的工具和服务,可以更快地交付产品,同时可以使得他们的项目都能在规定时间可以交付。还有他们的流程的定制,使得他们可以把他们的流程根据项目的不同特点,可以定制出来一个适合项目的流程。

    对于印度的这些外包企业成功,从一开始是从成本降低的角度,因为美国的项目可能成本低可能外包给印度,印度的语言是英语,沟通起来更方便。这些不是这么多国家把项目拿到印度的主要原因,多年可以发现印度的企业不断演进,不断提高,这些交付出来的产品的质量非常好,让客户非常放心,这是印度多年的可以获得更多客户的主要原因。
   
    观众提问:印度工程师,一年生产的有效的代码是多少?

    Ameeta  Roy:其实这个问题真的很难回答。其实对于印度企业来说,从这个片子理解出来,印度希望可以做到所有的东西都是可以重复用的。流程和重用性是他们真正追求的东西,这个东西确实很难回答。

    观众提问:在印度的软件外包企业中,有多大的比例购买了IBM  Rational的解决方案?
   

    Ameeta  Roy:基本上都有。基本上我们帮印度的SI做的工作基本上本身他们搭建起来这个软件的开发平台,这些基础性工作。有的时候培训他们的工程师,比如说刚才说的一万五千多的开发人员,基本上培训两、三百个Rational的技术专家,然后这些专家在自己的公司里面然后再推行Rational的这样的工具。
 

0
相关文章