用友谢志华:解读用友研发流程和光谱化模式用友谢志华:解读用友研发流程和光谱化模式
导语:导语: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的劣势在于缺乏面向市场的概
念和快速反应的能力。