郭晓:敏捷开发变革软件定制模式
21世纪经济报道
汤浔芳
来自芝加哥的软件定制开发公司ThoughtWorks是一家小而美的公司。2012年,其全球营收2.6亿美元,员工人数达到2500人。
虽然营收规模不大,但在软件开发界赫赫有名。与软件外包提供的低端IT技术服务不同,ThoughtWorks从高端的咨询切入,再提供定制开发服务。这便规避了软件外包领域常见的价格战。
在软件开发的圈子内,其1995年提出的敏捷开发,得到全球技术开发者的认同,并且也普及到全球企业。敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,能够集成和可运行。
这家公司的全球CEO是一位名为郭晓的华人,这在全球IT界也不多见。6月19日,本报记者独家专访郭晓。自1999年加入ThoughtWorks,郭晓一直为ThoughtWorks工作,在担任全球CEO之前,担任中国区总经理,负责中国的业务。
手机应用要与云结合
《21世纪》:各家IT企业,借着云计算的趋势,开始重新包装自己的产品,销售给企业。这有点“新瓶装旧酒”。除了这些传统IT企业推出的云计算模式外,还有其他方式来建构云计算平台吗?
郭晓:传统IT厂商推出的基本上是闭环型的产品,并不是最优秀的产品。实际上,搭建私有云还可以采用Openstack开源平台,它是Rackspace上的一个开源平台,可以帮助企业实现类似于 Amazon EC2 和 S3 的IaaS(基础架构即服务)平台。那些通过云服务来赚钱的企业,大多不愿意将其云平台开源出来。
私有云的企业,如果云平台建设的工具是开源的,那么对自己的私有云平台就有足够的控制力。
但是在Openstack上搭建私有云需要很强的技术能力,比使用单纯的硬件产品的要求要高。其中,整体技术架构的设计便是最大的挑战。
现在Oracle等大公司都开始支持Openstack。而Openstack里面很多核心代码是我们公司写的。Rackspace的核心平台是我们公司参与研发的,这是我们的优势。
《21世纪》:在移动平台上,进行应用开发的重点与难点在哪里?你又做了怎样的战略布局?
郭晓:移动领域有太多的机会与挑战。机会在于移动平台未来会取代电脑,成为国内消费者使用信息技术、互联网的第一平台。
挑战在于多平台带来的应用开发成本。所有的公司都会思考是基于iOS、Andriod、Windows这三个主流移动平台中的哪个,或者哪几个来开发应用,因为每个平台都需要成本。现在大部分选择iOS、Android这两个平台,但应用也需要写出两套代码,还需要保证功能、体验一样。苹果与安卓不同,苹果中间有一个大的按键、安卓有两个键。设计不同,代码就需要编写一遍。
移动开发领域最大的机遇是寻找到一种合适的模式,既能够有效发挥不同硬件平台的特点,又能够减少大量的重复劳动。已经出现不少跨平台的软件开发包和设计方式,我们公司也有。
未来,消费者还有一个诉求,希望任何时候、任何地点都能够得到同样的服务。这意味着,手机应用一定要与云计算结合起来。数据的存储、业务的响应都需要迁移到云端上来。
敏捷开发改变管理方式
《21世纪》:敏捷开发是ThoughtWorks提出来的,并受到全球欢迎。这种开发方式会带来思维方式、组织管理的哪些变化?
郭晓:软件开发既是一个技术事件,也是一个管理事件。
敏捷开发的架构师与传统研发体系中的架构师定位不同。传统中,架构师进行定义,搭好系统架构,然后交给研发人员去做。但敏捷开发是迭代式的,这意味着,架构在刚开始并没有清晰的蓝图,而是逐步完成的。
敏捷开发要求所有的技术人员都参与到研发一线,架构师也要查阅代码,编程,而不是“袖手旁观”。正由于在一线,才能够持续保持对开发的敏锐,对软件开发产生有益的价值。
敏捷开发对企业的管理是有影响的。比如,敏捷开发倡导代码是集体所有制,而不是个人所有制。管理上这涉及到绩效考核。传统的软件开发是每个人对自己写的代码负责,比较容易考核。但敏捷开发重视集体,个人考核可能没有那么明晰。那么,人力资源部门就需要对绩效进行重新考核。
敏捷开发带来的HR薪酬体系也会发生改变。国内的薪酬体系是一线写代码的比较低,但国外,不少人到了五六十还在写代码,经验丰富,写出来的代码质量高,同样,薪资也比较高,这样才能留住人才。
敏捷开发带来的管理方式也会改变。在工程制造诞生的管理不同,软件开发的管理讲究的是权力下放,给下属更多自由发展的空间。ThoughtWorks公司有70%都是技术开发的员工,还有15%左右是负责项目的市场、销售类员工。我们实施的是扁平管理。尽量减少层级关系,减少管理者和员工之间的对立,让员工发挥更多的创造性。
《21世纪》:你们在电子商务、旅游、电信、高科技、医疗等领域都有客户,如西门子、诺基亚、全美航空等。给这些客户提供的定制开发案例中,都是用敏捷开发的手段进行软件定制。ThoughtWorks的国内外客户对敏捷开发的接受程度如何?
郭晓:在国外,已经不需要给客户讲敏捷开发,而是客户乐意接受的一种开发方式。但是国内的接受程度就不一样。从2004年开始,我们在敏捷开发上做了很多工作,办了7年敏捷开发大会,也成立了技术社区、撰写普及文章。
我们给国内的互联网公司讲过课。现在,国内互联网公司在接受敏捷开发上先行一步,而其他类型的客户还有一定的滞后性。
我们的开发和部署是迭代开发、持续交付的模式。与客户开发项目时,我们会在三四周之内,尽快将第一版软件在测试的环境中发布出去。所谓持续交付,就是指任何时候研发出来的代码,应该处于可以交互的状态。然后由业务部门决定,什么时候部署、发布。
传统的企业开发项目,往往会将各种功能都集成到一起。上一个项目都喜欢大而全。实际上,一个软件项目50%以上的代码没有人用。所以,迭代开发、持续交付的模式能够最大程度减少软件研发过程中带来的浪费。
敏捷并不仅适合互联网公司,也适用于传统的靠卖软件产品为生的公司。敏捷最核心的理念是对质量的重视。在整个开发过程中,注重技术与业务的结合,希望借着这个开发过程,能够激发他们的潜力。因为这是由其业务本身的模式决定的。
《21世纪》:你曾说过大型企业的敏捷开发方法、模式、工具都会发生变化。你之前讲述了云计算带来开发方法的改变,那么敏捷开发的工具又会做出哪些变化?
郭晓:软件开发需要工具支持。编写软件需要项目管理、需求分析等工具。这些开发工具是重量级的产品,是一种单一的模式,需要工程师花大量的时间去维护,这也额外限制了研发人员充分发挥自主创造性。
ThoughtWorks有一系列给研发团队使用的软件工具,这是一种轻量级、可定制的、服务于自定义工作模式的平台。这样做给了研发团队充分的授权,可以定制出一套适合自己的模式。
责任编辑:刘万明 SF054