http://www.neco.com.cn/DRNECO/20040827.htm (因图表无法显示, 可登录本公司网站查看 )
(1) 为什么需要同行评审?
第一个原因:
技术工作之所以需要接受同行评审就好比铅笔需要橡皮一样,请记住:
凡人皆有错!
我们离不开同行评审的第二个原因是:
尽管人们善于找出自己所犯的部分错误,但是相对于其他任何人而言,大量的各种错误还是很容易逃脱创作者的眼睛,这被称为思维定势。
第三个原因:
许多缺陷是在早期阶段引入的。如下图所示:
² 资料来源: Applied Software Measurement, Capers Jones
缺陷发现越晚,纠正费用越高。如下图所示:
² 资料来源:Boehm, IBM, 1981
而且缺陷数量的放大的原因,每个进入下个步骤的缺陷都可能引起下个步骤中的多个缺陷,导致消缺成本的剧增。
(2) 同行评审和测试哪一个更合算?
当然是同行评审更划算。同行评审不可能代替测试,做同行评审的目的就是减少泄漏到测试阶段的缺陷。从经济角度考虑,许多缺陷是在早期阶段引入的,越早发现缺陷越经济,有些早期阶段可以进行同行评审,但是无法进行测试。在同行评审上花了很多时间,但在测试中节省了时间。测试和同行评审相比消耗大量的时间,测试也不能发现某些特定类型的缺陷(例如违犯编程规范)。
(3)同行评审是否会延缓项目的周期?
同行评审因为减少了后期修改和返工的工作量,所以实际上是缩短了项目的周期。
(4) 同行评审对提升开发人员能力的有贡献吗?
即使在技术产品不存在错误的情况下,单单对参与者的教育价值而言,同行评审活动就有存在的必要。组织内如果没有了同行评审活动,大型技术机构内部的沟通和交流就变得缓慢且不可靠了。经验说明,一个定期参加评审本人和他人工作的程序员,经验的累积速度是那些单独工作的程序员的三倍!
评审活动还承担着在大范围交流技术信息的重任,这就补充或者取代了正式书面交流的作用。
(5)同行评审活动为什么有别于我们的管理部门正在开展的预算和进度评审?
当我们说起同行评审的适合,我们是在谈论项目技术素材的内容,而不是这些素材在商业环境中的相关内容,比如进度安排和预算。在同行评审中需要回答的问题如下:
该产品会按照预先设计的那样正常工作吗?
当然如果该产品的成本太高或者脱离了进度,那么它当然就谈不上正常工作了;相反,如果该产品不能正常工作,那么进度就不可能准时,成本也就不可能低廉了。
进度和成本是管理层面上的问题,而非技术性的问题。编程的进度和成本问题可能也会包含技术因素,事情差不多总是这样。同行评审向管理部门提供成本、进人力,以及管理部门所关心的其他的相关信息。没有了可靠的同行评审所提供的信息,管理部门就像是在流沙上建造大厦――所做的工作缺乏牢固的基础。
(6) 我们现在使用的进度报告与同行评审活动之间有差异吗?
同行评审确实和进度报告有相似之处。可以认为同行评审是某种汇报进度的机制――在该体系中存在着保证进度信息可靠性的机构制衡措施。
在程序开发项目中存在着很大负责汇报“进度”的机制。一些机制负责汇报一个特定的项目段已经花费了多少时间,而另一些则汇报已经完成的代码的行数和文档的页数。然后根据进度表和资源配置情况,这些“进度”参量会被制成图表,提示管理部门注意潜在的问题。如果这些机制所报告的进度是真实的进度,那么它们将是非常有效的。
但是,如果没有了这些机构制衡措施,我们将无法保证已经完成的上千行代码确实是有用的代码,编程界对这种情况早已司空见惯了:某个项目的“进度”报告表明项目已经完成了99%,而实际上该项目这种完成的部分不到10%;这时为什么呢?因为那上千行的代码有可能错的一无是处,也可能错了一部分,或者只有一两处小错误――不过盖住这一两处错误可能要耗费2000人工时的工作量。
因此有必要利于同行评审机制来保证进度报告图表具有实际意义。如果没有质量监督控制措施,采用数量监控措施也许比不采取措施更加危险。
(7) 同行评审有多大作用?
对于保存精确记录的大系统,一套完整的同行评审体系能够使项目在每个测试阶段出现的错误减少了90%。这样一来,即使在综合考虑了同行评审活动的成本的情况下,同行评审活动也会使测试成本下降50%~80%。
同行评审活动还会带来维护成本的下降,如果某个程序员在开发阶段就接受了完整的同行评审,并且它在维护过程中的改动也经过了同行评审,那么它的维护成本将减少80%。
从长远看,同行评审活动还会显著提高员工的能力,这种作用是很难用数字来说明的。总的来说,我们会发现员工的士气不断高涨,他们变得更加敬业,项目的维持费用降低了,项目估价和进度计划变得更可靠了,管理部门在保障项目成功中的作用得到了更多的肯定,同时,同行评审活动也使管理部门能够对员工的个人和整体能力做出正确的评价。
(8) 同行评审过程似乎在助长技术人员中存在的单兵作战的趋势,它会造成这样的后果吗?
恰恰相反,不管人们喜欢与否,审查过程会迫使每个人在一种开放式的环境中工作。一旦人们懂得了他们的工作都要接受同行评审,他们就会越早地将他们的工作公之于众,以待监督。
(9) 同行评审听起来确实不错,我们应该如何推行?
同行评审是一个比较偏管理的方法,要达到效果需要注意很多细节。俗话说:细节决定成败!在实施同行评审前听听专家的意见,吸取业界的成熟经验不至于走很多弯路,这样工作有成效,引起领导足够重视和坚定的支持。