求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
用友谢志华:解读用友研发流程和光谱化模式
 

作者:付江,发布于2012-3-22,来源:《程序员》杂志

 

导语:IT人士最悲哀的事情并不在于做不出产品,而是当把所有的钱、人力和资源都投在产品上,死活做出来了,拿去给客户。而客户说:“现在不需要了”。不需要的原因,有可能是竞争对手已经提供了替代品,也有可能是市场需求的时机已经过去了。尤其对于大多数软件产品而言,市场竞争都已经到了红海阶段。研发效率的提升从未像今天这般重要和紧急,而决定效率的,是研发模式和流程!记者对谢志华的采访也从用友的研发模式与流程谈起。

解读用友的光谱开发模式

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

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

谢志华重点介绍了用友的“光谱”开发模式,谢志华认为所有的软件开发过程都处于一个软件过程连续光谱的某个位置,敏捷在一端,计划驱动在另一端。某个具体的软件开发过程在光谱中的位置要根据它的主要特点和总体策略来确定。(用友)任何一款软件产品的开发立项都可以对应在光谱的某一个区间上。总体来说,平台级产品偏向敏捷这边多一些,产品的小版本开发会更偏向计划一些。

光谱化研发图解

敏捷过程的特点:相对轻量级和松散式,主要依赖团队成员的知识和能力,注重现在的实现,使用迭代和增量开发,强调与客户的协作,开发团队自管理,不强调计划,按照重要和紧急情况来适应开发变化。

而计划驱动的过程的特点则是:较重量级,规范程度高,强调过程和文档,而不是强调团队成员的能力,强调架构和适应未来的应用变化,依赖需求/设计约定,需要制定和执行计划,受控的开发过程,管理须事先定义然后持续改进。

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

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

汲取IPD+CMMI+ISO9000精髓

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

用友产品开发总流程图

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

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

鼓励开发人员创新

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

而从程序员职业生涯的角度,谢志华强调,用友为开发人员设计了专业的发展空间,从工程师、高级工程师到专家、高级专家,专业的软件开发工程师是可以做一辈子,而且待遇各方面不会比管理人员差。对于新入职的技术人员,他建议,如果是技术出身,都应该从基础的专业工作做起,至少沉下心了做3到5年的专业工作,根据这几年的个人兴趣、特长和发展状况再来决定下一步该如何走。这时肯定会面临几种选择:可能进入到研发管理岗带团队,或者继续走专业路线,甚至有一部分,和客户相处的能力比较强,也可以转做客户经营相关工作,有很多从研发转到其他岗位做的很成功的例子。

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


 
相关文章

由外而内看敏捷软件开发
架敏捷开发中史诗故事与用户
看板任务管理
面向全球化的有效敏捷交付
 
相关文档

统一过程及应用
敏捷过程实践
基于XP/RUP的迭代开发
软件开发过程指南
 
相关课程

IT安全原理、框架与实践
ITIL认证
ITIL Foundation认证培训(ITIL V3 Foundation )
IT规划体系与实践
 
分享到
 
 
     

相关文章
由外而内看敏捷软件开发
架敏捷开发中史诗故事与用户
看板任务管理
面向全球化的有效敏捷交付
小型团队快速开发方法
DevOps,不是一个传说!
更多...   

相关培训课程
统一过程及应用
敏捷过程实践
基于XP/RUP的迭代开发
软件开发过程指南
SCRUM过程实践
敏捷测试-简单而可行

成功案例
某博彩企业 产品经理与产品管理
北京 研发团队与工作管理
广东金赋信息 敏捷开发过程与项目管理
某支付平台 软件配置管理与发布管理
富士 软件外包项目管理与进度管理
塞孚耐 基于Scrum的敏捷开发
更多...