同行评审常见问题解答

原创 2004年10月12日 12:18:00
http://www.oochina.org/articles/200410/379/index.jsp

来自:NECO博士电子期刊

 

 

(1) 为什么需要同行评审?

第一个原因:

    技术工作之所以需要接受同行评审就好比铅笔需要橡皮一样,请记住:

    凡人皆有错!

    我们离不开同行评审的第二个原因是:

    尽管人们善于找出自己所犯的部分错误,但是相对于其他任何人而言,大量的各种错误还是很容易逃脱创作者的眼睛,这被称为思维定势。

    第三个原因:

    许多缺陷是在早期阶段引入的 如下图所示

img_0.jpg

资料来源: Applied Software Measurement, Capers Jones

    缺陷发现越晚,纠正费用越高。如下图所示:

img_1.jpg

    资料来源: Boehm, IBM, 1981

    而且 缺陷数量的放大的原因, 每个进入下个步骤的缺陷都可能引起下个步骤中的多个缺陷,导致消缺成本的剧增。

img_2.jpg

(2) 同行评审和测试哪一个更合算?

    当然是同行评审更划算。同行评审不可能代替测试,做同行评审的目的就是减少泄漏到测试阶段的缺陷。从经济角度考虑,许多缺陷是在早期阶段引入的,越早发现缺陷越经济,有些早期阶段可以进行同行评审,但是无法进行测试。在同行评审上花了很多时间,但在测试中节省了时间。测试和同行评审相比消耗大量的时间,测试也不能发现某些特定类型的缺陷(例如违犯编程规范)。

(3)同行评审是否会延缓项目的周期?

    同行评审因为减少了后期修改和返工的工作量,所以实际上是缩短了项目的周期。

img_3.jpg

(4) 同行评审对提升开发人员能力的有贡献吗?

    即使在技术产品不存在错误的情况下,单单对参与者的教育价值而言,同行评审活动就有存在的必要。组织内如果没有了同行评审活动,大型技术机构内部的沟通和交流就变得缓慢且不可靠了。经验说明,一个定期参加评审本人和他人工作的程序员,经验的累积速度是那些单独工作的程序员的三倍!

    评审活动还承担着在大范围交流技术信息的重任,这就补充或者取代了正式书面交流的作用。

(5)同行评审活动为什么有别于我们的管理部门正在开展的预算和进度评审?

    当我们说起同行评审的适合,我们是在谈论项目技术素材的内容,而不是这些素材在商业环境中的相关内容,比如进度安排和预算。在同行评审中需要回答的问题如下:

    该产品会按照预先设计的那样正常工作吗?

    当然如果该产品的成本太高或者脱离了进度,那么它当然就谈不上正常工作了;相反,如果该产品不能正常工作,那么进度就不可能准时,成本也就不可能低廉了。

    进度和成本是管理层面上的问题,而非技术性的问题。编程的进度和成本问题可能也会包含技术因素,事情差不多总是这样。同行评审向管理部门提供成本、进人力,以及管理部门所关心的其他的相关信息。没有了可靠的同行评审所提供的信息,管理部门就像是在流沙上建造大厦??所做的工作缺乏牢固的基础。

(6) 我们现在使用的进度报告与同行评审活动之间有差异吗?

    同行评审确实和进度报告有相似之处。可以认为同行评审是某种汇报进度的机制??在该体系中存在着保证进度信息可靠性的机构制衡措施。

    在程序开发项目中存在着很大负责汇报“进度”的机制。一些机制负责汇报一个特定的项目段已经花费了多少时间,而另一些则汇报已经完成的代码的行数和文档的页数。然后根据进度表和资源配置情况,这些“进度”参量会被制成图表,提示管理部门注意潜在的问题。如果这些机制所报告的进度是真实的进度,那么它们将是非常有效的。

    但是,如果没有了这些机构制衡措施,我们将无法保证已经完成的上千行代码确实是有用的代码,编程界对这种情况早已司空见惯了:某个项目的“进度”报告表明项目已经完成了 99 %,而实际上该项目这种完成的部分不到 10 %;这时为什么呢?因为那上千行的代码有可能错的一无是处,也可能错了一部分,或者只有一两处小错误??不过盖住这一两处错误可能要耗费 2000 人工时的工作量。

    因此有必要利于同行评审机制来保证进度报告图表具有实际意义。如果没有质量监督控制措施,采用数量监控措施也许比不采取措施更加危险。

(7) 同行评审有多大作用?

    对于保存精确记录的大系统,一套完整的同行评审体系能够使项目在每个测试阶段出现的错误减少了 90 %。这样一来,即使在综合考虑了同行评审活动的成本的情况下,同行评审活动也会使测试成本下降50%~80%。

    同行评审活动还会带来维护成本的下降,如果某个程序员在开发阶段就接受了完整的同行评审,并且它在维护过程中的改动也经过了同行评审,那么它的维护成本将减少 80 %。

    从长远看,同行评审活动还会显著提高员工的能力,这种作用是很难用数字来说明的。总的来说,我们会发现员工的士气不断高涨,他们变得更加敬业,项目的维持费用降低了,项目估价和进度计划变得更可靠了,管理部门在保障项目成功中的作用得到了更多的肯定,同时,同行评审活动也使管理部门能够对员工的个人和整体能力做出正确的评价。

(8) 同行评审过程似乎在助长技术人员中存在的单兵作战的趋势,它会造成这样的后果吗?

    恰恰相反,不管人们喜欢与否,审查过程会迫使每个人在一种开放式的环境中工作。一旦人们懂得了他们的工作都要接受同行评审,他们就会越早地将他们的工作公之于众,以待监督。

(9) 同行评审听起来确实不错,我们应该如何推行?

    同行评审是一个比较偏管理的方法,要达到效果需要注意很多细节。俗话说:细节决定成败!在实施同行评审前听听专家的意见,吸取业界的成熟经验不至于走很多弯路,这样工作有成效,引起领导足够重视和坚定的支持。

EXCEL常见问题五十问题解答

001。用命令按扭打印一个sheet1中B2:M30区域中的内容?我想在Sheet2中制件一个命令按扭, 打印表Sheet1中的[B2:M30] 区域中的内容?解答:可以将打印区域设为b2:m30,然...
  • songkexin
  • songkexin
  • 2007年01月25日 08:07
  • 10474

SuperMap iMobile for Android常见问题解答集锦(十三)

作者:皇皇 问:SuperMap iMobile for Android中是否支持实时GPS定位,怎么实现? 答:可以支持;通过LocationManagePlugin管理插件类,开启GPS设备,并...
  • supermapsupport
  • supermapsupport
  • 2017年03月02日 10:54
  • 816

【备忘】今天用过的一些vi指令

:%s/pattern//g  删除符合模式的行:m,nd  删除多行Ctrl+F 向下翻页Ctrl+B 向上翻页 ...
  • abcdef0966
  • abcdef0966
  • 2011年06月03日 19:25
  • 345

常见RAID模式总结

RAID:Redundant Array Of Independent Disk,即独立磁盘冗余阵列,有两层含义: 1、磁盘是独立的,整个阵列由单独的一块块磁盘构成。2、阵列具有数据冗余性,在一定程...
  • funnyrand
  • funnyrand
  • 2011年11月27日 10:57
  • 754

Forth 常见问题解答

Forth 常见问题解答 本文译自 comp.lang.forth Frequently Asked Questions (1/6): General/Misc 原文整理 M. Anton Ertl,...
  • wxj729
  • wxj729
  • 2005年03月07日 15:52
  • 2886

让你提前认识软件开发(47):同行评审

第3部分 软件研发工作总结同行评审          在《浪潮之巅》这本书中,吴军老师描述了在Google早期的工作方式,其中有一段是这么写的:我一般会在吃完晚饭后把代码修改的清单发给克雷格做代码审核...
  • zhouzxi
  • zhouzxi
  • 2014年08月17日 20:57
  • 1631

同行评审

在IBM、微软等很多公司都有一个很好的实践,那就是代码复审。这种代码审查的过程,不是将代码发给某一个人或某几个人去看,而是强调程序员自己定期走上台,向其他人讲解自己源程序的活动。因为要向大家讲解自己的...
  • chens616
  • chens616
  • 2014年10月25日 09:24
  • 344

软件同行评审的好处和坏处

 软件同行评审的好处和坏处 陈能技2007-9-23 翻译并摘自:Software Peer Review Guidelines – National Weather Service/OHD 同行评审...
  • Testing_is_believing
  • Testing_is_believing
  • 2007年09月23日 11:19
  • 2920

常见问题解答

怎么判断一个exe可执行文件是用什么语言开发的? 答:请试试PEid侦壳工具吧!...
  • ly20056402006
  • ly20056402006
  • 2015年06月11日 16:23
  • 276

保存一篇关于Vi的好文章

vi 命令常见问题解答作者:译者Elale[vi-faq中文版]0.0 - 引言 -- 我怎样用这个FAQ这个文档分为了几个部分.首先,第0节和第1节介绍了什么是vi;第2节则收录了很多新学者的问题,...
  • jeffreyst
  • jeffreyst
  • 2011年06月15日 13:45
  • 943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:同行评审常见问题解答
举报原因:
原因补充:

(最多只允许输入30个字)