用友软件高级副总裁谢志华解读光谱化开发模式

记者 / 付江

对于大多数软件产品而言,市场竞争都已经到了红海阶段。研发效率的提升从未像今天这般重要和紧急,而决定效率的是研发模式和流程。因此,记者对谢志华的采访也从这些内容开始谈起。

解读光谱开发模式

长期以来,用友一直在不断总结自己的开发模式和流程体系,走过了一条非常有特色的路线,“业界诸多经典开发模式,例如瀑布式开发、敏捷方法论、CMMI、IPD等,其精髓都被用友研发团队收归囊中,为己所用”。在谢志华看来,用友(研发)对先进理念一直坚持的原则便是:不照搬全抄、硬套,而是取其精神。“业界任何一个成大气候的软件公司都有自己独特的开发模式和流程管理,用友当然也不例外”,一谈到研发管理,谢志华的话匣子就完全打开了。

图1 用友的光谱开发模式
图1 用友的光谱开发模式

在他看来,业界很多经典开发模式,究其出处,都是为了适应某种特定场景下某一特征的产品开发而出现的,并不能完全照搬套用到具体的软件开发项目中,尤其像用友这种产品线复杂的研发体系,既有近乎于操作系统级别的底层平台级(UAP)开发,也有像财务系统、供应链管理系统等ERP产品开发,还有为不同行业和大客户定制的解决方案开发。对于不同类型的软件开发,模式选择是不同的。

谢志华认为所有的软件开发过程都处于一个软件过程连续光谱的某个位置,敏捷在一端,计划驱动在另一端,亦即“光谱”开发模式。某个具体的软件开发过程在光谱中的位置要根据它的主要特点和总体策略来确定。用友任何一款软件产品的开发立项都可以对应在光谱的某一个区间上。总体来说,平台级产品多偏向敏捷,小版本产品更偏向计划。敏捷过程的特点是相对轻量级和松散式,主要依赖团队成员的知识和能力,注重现在的实现。而计划驱动则属于较重量级,规范程度高,强调过程和文档,而不是强调团队成员的能力。

产品选择哪种软件开发过程,可以通过两阶段的方式来确定。首先,确定在过程连续光谱中的位置,并选择一种过程风格,作为开发过程的总体指导框架。然后定制并配置这个过程框架,让它包含来自其他过程风格的技术,这样得到的开发过程将在敏捷和计划驱动技术之间取得平衡,反映出其在过程连续光谱中所处的位置。

谢志华强调,即使同一个版本的产品,在不同阶段也会处在光谱的不同位置。在做概念与架构设计时,计划驱动的成分比较多,形式上主要表现为开发阶段划分明显,每个阶段需要详细而慎重的规划与推演以及评审。而到了产品具体实现阶段,就偏向敏捷了,Scrum、特性驱动(FDD)等被普遍应用。

汲取IPD CMMI During 1758 reference was made to roulette on line by Quebec which prohibited the game from being played. ISO9000精髓

用友软件目前采用的是IPD CMMI统一过程体系的开发模式。在谈到单一模式的利弊时,谢志华认为,如果单一采用ISO9000质量标准,这种“事后”再去检查文档是否齐全的方法将使开发过程完全不受控制,而CMMI的优势正在于强化对过程和成熟度的把控,他坦言:“CMMI对用友开发流程的改进是很有帮助的,提高了产品开发的质量管控和稳定性,使得每一个版本的成熟度和开发过程都比较稳定”,而CMMI的劣势在于缺乏面向市场的概念和快速反应的能力。

图2 用友产品开发总流程
图2 用友产品开发总流程

在图2所示的用友产品开发流程中,最上层由用友产品管理委员会负责公司愿景、规划及产品策略管理(含产品、平台、技术),新产品研发流程基于IPD CMMI统一过程体系为指导,其中PDT作为重量级的跨部门团队,在产品概念阶段便正式组建,从概念阶段一直到发布阶段都执行IPD流程。产品立项强化对市场机会的研究和把握,注重跨部门、扩系统协同。此外,高端和中端产品都基于用友UAP公共平台,UAP在整合应用、快速开发、智能监控、个性化应用等方面起了至关重要的作用,用友大部分产品都架构在这个平台基础之上。

据悉,用友在2006年左右引入了IPD的思路,并在集团公司内普遍推广。基于这一理念,将新产品的开发看作是一项投资决策,基于市场、跨部门、跨系统的协同,同时注重产品的重用性和结构化流程。谢志华强调,当今大型软件产品的开发光有程序员是远远不够的,营销和市场人员,包括客户,都应该是产品开发过程的一部分。

鼓励开发人员创新

近些年来渐渐流行的敏捷方法论代表了一定的研发趋势,首先就是要充分认可和鼓励研发人员的创新精神。谢志华说,用友未来不会去做软件工厂,不是生产代码,而是研发产品,一个伟大的产品必然和一个富有创新精神的伟大团队密不可分,产品再好,团队不在了,灵魂也就没有了。在过去,传统的开发工程师只要按(功能)设计来执行就好了,但现在开发人员也已经被纳入到设计流程中,并鼓励他们进行创新。

对于新入职的技术人员,谢志华建议,如果是技术出身,应该从基础的专业工作做起,至少沉下心来做3~5年的专业工作,根据这几年的个人兴趣、特长和发展状况再决定下一步该如何走。这时会面临几种选择:进入研发管理岗带团队,或者继续走专业路线,甚至有一部分和客户相处能力比较强的,也可以转做客户经营相关工作。

采访到最后,当记者把“在用友研发团队这13年的最大心得是什么”抛给他时,他认真地说:“不断的自我学习。或许别人可以给你一些指导,但更重要的是自我学习和成长。”他经常建议员工,每天、每个礼拜,在回家的路上,有空的时候,想想还有哪些方面可以改进,并在接下来的行动中落实。坚持半年,就会发现跟半年前不一样了。

作者谢志华,用友软件高级副总裁,1998年大学毕业后加盟用友,从普通程序员做起,现在是超过1500人的用友软件研发团队的掌门人。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92357 人正在系统学习中

来源:《新程序员》编辑部

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年7月13日
下一篇 2011年7月13日

相关推荐