
下面我分享一下我们进入开发这个阶段以后,我们一旦确定的做什么事情以后,我们怎么来组织的,华为我们引用了IPD的方法,一旦方向确定了,我们有比较好的方法,我们按时保证质量,这个就是后面这样的一个网络。先简单讲一下CMMI,CMMI是容易传输的模型,最开始是软件开发的质量,后来经过发展变成集成,作为整个系统加进去了,对华为来说我们不是完全做软件的公司,做整体的产品,CMMI按照国际的定义会有普及,所有的公司最开始做这种事情都是属于最初级的阶段。最好的是五级叫优化级的。
华为的现状我们引用了,很早就开始做相应的工作,CMMI从北京研究所,国内是2003年通过四级,其他的研究所通过了五级,因为看到我们在04年,我们通过CMMI以后,我们都在参与验证,因为我们开始觉得按照这个方法做事情,所以我们现在用CMMI的方法做事情,但是我们没有再去做认证,所以仅仅是印度所和我们IT部门做了相应的工作,我认为我们的能力应该是向这方面靠近没有太多的问题。
下面我想讲一下我们这样的一个好的方法在华为是怎么做事情的,首先以软件为例,举个例子,作为一个软件来说,粗略地看就是需求,定义,到底需要做的是什么东西,根据这个需求做设计,高层设计,如何做编码,如何做测试,怎么保证这个过程,能够保证质量能够保证按时间来推算,后面几页我想关于这块比较简单,需求定义这块我觉得其实是很不容易的,用户提出来的一个需求,虽然也叫需求,但是它变成一个产品,用户需要什么样的功能,功能是它表述性的东西,变成产品定义和规格上的东西,包括整个的操作、性能、这块用户不会给你提出来的,他需要这样的功能,需要做什么样的事情,要把个事情定义、分解我认为是非常难的事情,也是非常重要的事情,如果这个弄不清楚的话,后面做什么事情都得返工,拿来这个以后你会觉得好象用户需要这么做,但是好象理解有问题,所以我觉得我们一定要有一个好的方法做这个事情,一个是方法,另外一个是真正了解用户的需求,真正的意思是什么,这很重要,所以我们很重视从客户中来到客户中去,我们很多人经常会到客户身边,了解他们日常是怎么工作的,他们对需求真正的原因是什么样的,所以我觉得这是我想讲这个方面的重大问题。
后面关于设计的编码测试,我觉得这块相对比较成熟,各个公司有自己的方法来做。后面的分析,如果我们做一个事情,刚才前面说了,需求的分解,刚才我说了需求的分解,定义定义清楚了以后,我们进行这种设计,详细的设计,做这个过程当中一定会有一些考虑,包括风险,人员技能准备怎么样,你的时间的影响是什么样子,工作量是什么样子的,因为工作量和风险是相关的,所以工作量的估计是怎么样的,等等这一块是非常重要的,同时你要做这个事情的时候,我们华为很重要的原因,我们把合作的设计提前了,单元测试与系统测试我们提前了,我做设计的时候,相应的测试都应该做准备,这样的好处有多余的时间,这样对项目的时间非常重要,第二个容易保证质量,这是之前就把测试的要求提出来。当然还有一些质量保证的方法,每做完成一项工作是不是满足了要求是不是达到了质量,这个我认为很重要,总之这块我甚为应该有一个很好的项目管理。不同的情况下应该有不同的模式,可能也是因为华为所处的市场定位不同,因为我们是跟随者,我们换句话说很多情况下是市场上已有的一些东西我们需要做出来,这种情况下给我们的时间非常短,这种情况下开发模式和我全新做一个新东西是不一样的,因为对时间的要求是不一样的,因为根据你的时间要求创建出开发模式,所以我觉得这是一个很重要的一个方法,非常宝贵的东西。
如果项目管理,刚才说了很重要,项目管理包括我们有非常多的这种规定,包括你来做计划,你做计划的时候,你计划要有流程,谁来做计划,做计划里面结束点、检查点都是什么东西,整个里面做哪些事情都必须清楚,包括你实施的很多项目,你配制管理、版本管理,风险应该怎么处理,你准备怎么测,如果有缺陷,应该怎么样预防,以后在日常的管理当中有很多的方面有报告,会议,不排除还有修订计划,最后项目结束还有移交。我想这是项目管理的一个做法。
这个我们举个例子,我们要用相对比较粗略的模型,我先定义这个新的东西,换句话说我对用户的需求开始就能够比较好的掌握,这样的话我就可以从上到下一步一步地做,当时的设计、编码,同时对应的,等等这方面都做好相应的准备。这个模式对于一种相对比较新的或者需求比较明确的方式,这个一般采用这样的开发模式。
在这里做这类事情,要做这类事情的话,很重要的你做这个事情到底对不对,好不好,一定要收集这些信息,对后续评价你这次做这些信息的过程,分析有很大的帮助,所以这是非常重要的。这里面分了很多层面,包括项目,你通过度量以后,项目的质量状况,执行的情况到底是什么样子的,潜在风险,对管理者来说,是否能正常的,对我们的流程管理部门的指导,通过这样的搜集就能知道,我这个组织现在目前做一些事情的能力是什么样子的,因为一定要做事情的时候要实事求是,你自己的能力是什么样子的,测量出自己的能力,然后你来定目标做,不可能说别人定这个目标你就直接套用,因为各个公司的方式是不同的,所以一定要建立自己的模式,所以我觉得项目的度量实际上是科学化的很重要的基础。
举个例子,这个是魅力曲线,我们来分析一下,如果一个项目出来了以后,按照业界开发的一个比较常见的或者说大家比较认可的,如果产品或软件开发持续,它在不同的阶段缺陷的分布是有一定的规律的,当然缺陷越往左,尽量早发现缺陷,对你后续,会有更好的帮助,每一个缺陷下一个婚介至少是十倍的工作量,如果这个问题往上可能是几十倍,几千倍的结果了。我们当然希望缺陷在后面越来越少,前面尽量多,因为有些东西缺陷是不可避免的,开始是做不到的。第二要找出来很多缺陷,投入的资源和时间是很大的,所以在这个阶段有这样的模式,后面的质量是相对可控的,各个阶段的投入是可以接受的。这就是度量的一个作用,达到的点,是我们有些项目的分布,一般不会完全符合曲线的。
这是另外的一个例子,不同的阶段以后各种除了这个区间以后其他的区间是什么样的,这个不再说了。
我讲了这么多,我觉得这种方法很重要,有很多事情实际上是要用工具的,这个工具实际上是提高效率非常重要的,减少错误的一个很重要的东西,所以在我们的开发过程中,大家可以看到有很多是商用的,包括测量你的整个范围,包括你检查,靠人来检查,靠人来做努力当然可以,当然很多人要用工具做这个事情,效率会比你高。为了这个,华为通过自己的研发过程做了自己的相应的开发,为了适应自己的工作流程需要,结合商业软件做自己定制化的一些工作。这是整个的过程。
包括整个流程也要自动化,这样的话才能使得效率有保证,包括度量的分析也好,包括缺陷的管理也好,这些东西一旦发现自动地,这样使大家能够聚焦更加有增值在工作上,不是在为流程上倒来倒去浪费时间,所以我觉得工具非常重要。
上一篇: Gateway向Packard Bell发出收购要约
下一篇: Gartner:低端学生PC比百元pc作用更大
| 联想 | 戴尔 | 七喜 | IBM | ||
| 神舟 | 长城 | 苹果 | 新蓝 | ||
| 方正 | TCL | 宏碁 | 海尔 | ||
| 惠普 | 明基 | 清华同方 | |||
| 联想扬天 | 联想家悦 | 联想锋行 | ||
| 联想天骄 | 方正天瀑 | 方正卓越 | ||
| 神舟新禧 | 神舟新梦 | 神舟锐龙 | ||
| 神舟新瑞 | 神舟佳禧 | 长城嘉翔 | ||
| 七喜喜笛 | 七喜欣怡 | 同方真爱 | ||
| 海尔极光 | TCL 海盗 | TCL 锐翔 | ||