|
Michael Fagan公司总裁
IBM T.J.Watson研究中心高级技术研究员
IBM质量协会创办人
获IBM公司杰出贡献奖
马里兰大学访问教授
正规检视属于同行评审,它和技术评审以及走查一起组成了同行评审。评审的概念最早是Gerald Weinberg引入的,他认为:无论一个人多么精明,对他的工作进行评审总是有益的。Gerald Weinberg只是提供了一个思路,但具体如何去实施评审,如何把对工作的检查做好却并没有提出完整的可行的解决方案来。完成这个过程的人就是Michael Fagan。
Michael Fagan开始从事的工作并不是软件相关的工作,而是从硬件开发开始他的职业生涯的,那个时候是上世纪60年代。这个也很符合当时的情况,我们知道软件的发展分成三个阶段:程序设计阶段(50年代到60年代中期)、程序系统阶段(60年代中期到70年代中期)和软件工程阶段(70年代中期到现在)。在程序设计阶段,开发软件只是少部分硬件开发工程师的业余爱好,自娱自乐。到了程序系统阶段才出现了开发软件的软件作坊,但大规模、复杂的软件开发并未开始。在这两个阶段硬件上的问题会显得更突出一些,更多的人也是从事硬件方面的工作,Michael Fagan就是他们中的一员。我们知道硬件在设计完成后会进行开模和生产,如果设计上出现小的问题,会导致大批生产出来的硬件集体报废,会带来极大的浪费和大大增加成本,而这种问题在当时尤为突出。Michael Fagan于是开始考虑如何来尽量避免这种问题的出现,他开始组织他手下的硬件工程师在硬件测试完成后、开模生产前对设计进行更彻底更充分的检查,希望能找出测试遗漏的问题。效果是显著的,大量测试遗漏的问题被发现,生产出的硬件质量得到大大提高。
在1971年,Michael Fagan听从他好友的建议,转到了软件开发上。在当时来看无论是开发还是测试都是相对比较原始和简单的,软件的研发陷入深深的软件危机中:研发出的软件交到客户手中后,客户会反馈大量问题,结果导致软件不断返工,无论是开发人员还是公司还是客户都感到了无助。Michael Fagan于是又开始思考如何尽量避免这种现象的出现,他想到了他以前在进行硬件开发时的经验:通过组织大家对设计进行检查能大大提高产品的质量,他于是开始考虑在软件开发中也采用类似的方式(看来有不少软件方面的技术都是从硬件方面借鉴过来的,另一个比较典型的是冒烟测试)。但在公司内要推行一个新的工作方式或者方法谈何容易,就算你讲的头头是道,大家总是习惯用自己已经习惯的方式来工作,即使这种方式是有缺点的令人痛苦的。Michael Fagan没有在各种反对前退缩,他还是跟以前一样,先在自己负责的项目里做起来,这样阻力要小的多,也容易实施的多。实践是检验真理的唯一标准,在公司也是一样,要说服别人要用事实说话。随着Michael Fagan和他的项目组成员不断使用检视、改进检视,他们发现工作越来越有序,很多问题通过检视发现了出来,大家都体会到了检视给他们带来的好处。由于正规检视在Michael Fagan所负责的项目组获得了成功,Michael Fagan所在的公司IBM决定在其它项目组也引入正规检视这种方法,在当时Michael Fagan已经为这种方式制定了严格的7个步骤,真正让它可以实施可以移植到别的项目。可以说正是由于Michael Fagan的坚持、不断地实践总结改进再实践,才形成了比较完善的正规检视技术,因此正规检视也叫做fagan检视。
正规检视和技术评审以及走查之间是有区别的:从流程上讲,正规检视流程要严格的多,因此它主要用在一些阶段性的软件产品上,比如需求、概要设计、详细设计等,作为这些阶段一个很重要的结束标准。技术评审和走查更多局限在一些具体的软件产品或者软件产品的部分,用于发现问题和改进软件产品,和阶段是否结束没有什么关系。
正规检视是由Michael Fagan提出的,同时他也不断的在完善和扩充这种技术。离开IBM后,Michael Fagan建立了自己的公司,提供和评审过程相关的咨询、培训等业务。他在正规检视的基础上提出了fagan零缺陷过程,该过程包含3个部分:正规过程定义、检视过程、持续过程改进。这三个部分中检视过程还是核心,其余两个部分为更好的进行正规检视提供帮助。通过实施fagan零缺陷过程,Michael Fagan的不少客户实现了:
1、减少50%的开发周期
2、客户报告的问题减少10到20倍
3、会议时间和维护预算增加50%
4、生产率提高2倍
5、客户满意度增加40%到60%
大家如果想进一步了解Michael Fagan和正规检视,可以看一下下面的文章:
A History of Software Inspections
http://www.mfagan.com/software_pioneers.pdf
The Best Influences on Software Engineering
www.mfagan.com/s1010.pdf
"Design and code inspections to reduce errors in program development," by Michael Fagan
www.mfagan.com/ibmfagan.pdf |
|