主持人:谢谢郭教授的介绍。下面有请用友工程的谢琳女士给大家做报告。
谢琳:各位尊敬的朋友大家下午好。我很开心有这样的机会跟大家一起交流和分享我们用友软件过程实践。
用友最早是在88年成立,公司成立的时候只有两个年轻人,它的创始是从租用一间民房开始,经过18年的发展,我们一步一个脚印,现在整个用友集团员工1万多人,大陆市场我们的管理软件是连续几年保持第一的地位。同时,我们最近几年在拓展国际化市场方面也做了很多努力。特别是在软件外包业务方面,是由用友子公司工程公司主管,我们目前的市场包括欧美市场、日本市场,和仍然投入着国内的市场。我们提供项目合作个IT咨询、IT外包这样的服务。
用友88年成立,90年代初的时候人力开发的规模,特别是项目的规模已经起来了。90年代初的时候公司有一个重点工作就是在软件开发规范方面,当时专门的人员来负责,97年的时候当时软件行业质量管理投入还不是非常多的情况,用友公司也是比较领先的时间引进并且推广ISO9000认证。在ISO基础之上用友2000年的时候引进了CMMI。ISO虽然是国际上通用的标准,而且在传统行业里也有成功的先例,但是软件行业在一些细则方面它提供的帮助是比较有限的。所以2000年我们引进了CMMI的体系,由于有ISO比较好的基础,用友2002年的时候通过了CMMI的评估。接下来用了一年的时间我们做到了CMMI的3级。我们在永远软件工程公司全面导入CMMI的4级5级,05年年底我们公司通过了5级的评估。这一年时间我们做了标准的转化工作,今年年初公司顺利通过了CMMI5级的评估。
接下来做一下软件CMMI评估经验的分享。
如果一个企业的员工每一个人都有很好的意识的话,相信所提供的软件产品和服务的质量都会很好。这是我们第一个切入点,我们用友软件工程公司在北京总部是在2003年年初开始建立的,当时我们第一个项目就是SEPE小组,当时结合了公司软件质量方面比较有经验的人员,以及为数不作的来自QA的人员,更多的组成人员是项目经理。公司根据项目的特点重新搭建了项目体系。项目经理在这个体系建设过程中得到了很好的培训。这样他们带项目的时候把他的一些经验和做法传授给下面的员工。从而形成了公司比较好的质量氛围。
另外,我们在培训上也下了很大的功夫,比如在公司里面用的比较好的培训我们叫体验式培训,这个培训我们选择了一个模拟项目。整个课程是7个工作日,所有参与培训的工作人员是分成几个项目组,每一个项目组从项目立项开始做起,整个项目计划在项目开发过程中应该用什么样的规范?什么方法做项目,一直到项目结束。整个培训过程是贯穿了公司整个OSSP,这个效果是非常好的。
我们在每次项目启动的时候由公司的QA人员给参与项目所有人员做一个培训,让大家明白软件开发过程中每一个角色应该做什么,所应该遵循的规范是什么?我刚才所介绍的是公司在培养全员质量意识方面我们的做法。
接下来讲一下第二个重点,在公司标准软件过程基础上我们重点建立和使用PDSP和CDSP,这个图是公司软件项目过程图,主要是由开发的过程工程过程所组成。为了保证这些软件开发过程顺利进行以及每一个阶段的质量我们有两个平台。一个是质量控制平台,一个是项目管理平台。什么叫PDSP和CDSP呢?熟悉CMMI的都知道,PDSP是项目定义过程,CDSP是我们公司自己提出的,C是客户的软件过程,公司的项目类型是有大有小,比如我们有全生命周期的项目,也有阶段性的。比如对日开发的项目,基本是从详细设计开始到结束。这样不同的过程所用的规范都是不一样的。
再一个对一些比较大型的客户有自己的一些要求,甚至有一些自己的规范,会要求我们项目要按它的规则运作。这个时候我们就会建立根据本客户的特点建立这样一套过程,通过不同项目的过程和客户的过程,每一个项目做起来都会有自己不同的规范。它也会比较的运用自己项目的过程和规范来完成项目工作。
另外一个心得跟大家分享的就是我们公司层级上充分的积累和共享每一个项目的经验和教训。通常的做法首先是项目总结:每一个项目在一个阶段结束的时候,一个里程碑达到的时候大家就会做一些总结,开一些会议,或者提交一些报告,做一些讨论和交流。另外项目结项的时候要做一个非常细致的总结,包括各个方面数据的总结,跟项目制定目标相比的对比分析,以及整个项目过程中哪些地方做的很好?是可以去推广的,可以去分享的?哪些地方是做的不足的?不足的原因是什么,如果规避的话怎么规避?这样的一些资料会在公司专门的区域共享给其他项目。同时我们也会举行项目会议,邀请很多项目经理参与,大家也会针对每一个项目在项目运作的过程中所遇到的问题以及一些好的经验进行充分的讨论。
另外,每一个项目开发人员都会做自己个人的总结。其中有很多员工做的总结是非常非常精彩的。我们公司在03、04年的时候引进很多软件工程硕士,这些人素质都非常好,而且学院里面得到软件的培训都是非常系统的。这些人经过两三年培养以后成长非常快,而且思路和头脑都是非常好的,他们总结了很多计划。开发人员看开发心得和体会的时候,对他的培训和教育效果是非常好的。
另外公司专门设立了知识共享库,包括每一个项目最佳实践,每一个项目所遇到的比较典型的风险是什么以及每一个项目所总结的教训以及对教训进行的原因分析,也效的规避措施都会存放在这个共享库里,同时我们开辟了项目共享园地,让大家在网上共享和讨论。
再一个就是项目的量化控制。数据的统计和分析是最基础的工作,同时这个工作如果做的过于繁琐肯定会降低效率。我们抓一些比较重点的项目真正有用的数据,比如说对项目的周期、进度、工作量和规模和项目质量方面的数据进行统计和分析,进行预测分析、进行控制。实际上,CMM有很强的数据统计控制理念,在传统行业领域做的都很好。比如说有不少的硬件行业他们做6C,但是软件行业做6C的时候并不是非常顺畅。我们一方面学习其他行业的做法,另外是关注数字控制区域的重点来做。
接下来跟大家分享的是我认为是对我们公司项目非常有利的就是缺陷分析和预防。这个投入不大,但是产出非常高。具体的做法我们把在每一个开发阶段进行评审所发现的一些问题进行分类,在测试阶段所发现的缺陷进行分类,基本按照8020这样的原则挑选出主要的问题,分析引起这些问题的原因是什么。通常是可能80%点零几的问题是由10%几引起的,这个数据非常有意思。几乎每次都是这样的数据比例。去挖掘造成问题的根本原因是什么,经过分析这些原因往往是集中在一些组织方面。比如说某方面的培训没有到位,或者说某方面的机构或者是机制运转的不是很好。我们通过这样的结果改良一些问题。最后所形成的效果绝对是事半功倍的。
过程改进实践:项目预算及成本核算
这跟我们公司财务和质量体系结合,项目立项的时候首先做一个初步预算,项目往往由于客户需求提的准确性和完整性我们会刷新项目预算。每个月的时候项目会报告自己的成本分析,让项目经理给它这样的职责,让他控制项目成本。
最后要跟大家分享的是,我本人做的比较多的工作就是帮助客户提升我们软件的生产能力。我们在软件开发过程中常常碰到这样的问题,虽然公司规范比较高了,我们软件成熟度能力也比较高。但是往往客户特别是国内的一些客户实际上在整个软件工程理解、以及规范化方面跟欧美客户差异还是蛮大的。他往往提出一些不合理的要求,或者是不能很好的提出他的需求。这就给我们项目开发造成了很大问题,可能不成熟的客户让我们CMM5级的企业做出一个CMM2级的项目都很正常。所以我们有责任和义务帮助客户提升规范的能力。我们现在有好几个大客户,在自己的IT开发方面,特别是供应商管理方面遇到了很多问题,我们以此为契机帮助他们做咨询,帮助他们做自己的项目管理体系。同时也给他们提供多方面的培训,效果非常好。
通过这样的工作在客户和我们之间建立了很好的理解。有了这样几次成功体验以后,我们也非常愿意在这方面做更多的投入。希望能够推动整个社会在整个软件生产能力方面逐步的提升国内整体软件企业的生产能力。
以上就是我今天跟大家分享的,谢谢大家!