11个高效的同行代码评审最佳实践(3)

发表于:2013-07-26来源:IBM作者:Jason Cohen点击数: 标签:评审
记住这些错误(bug)通常不是在 Rational Team Concert 日志中输入的,因为在代码发布给 QA 之前就发现了这些错误(bug)。所以,什么是代码在贴上全部解决标志之

  记住这些错误(bug)通常不是在 Rational Team Concert 日志中输入的,因为在代码发布给 QA 之前就发现了这些错误(bug)。所以,什么是代码在贴上“全部解决”标志之前确认缺陷的好办法呢?我们建议使用好的协作性评审软件,与 Rational Team Concert 相集成,以追踪评审之中所发现的缺陷。有了正确的工具,评审员就可以记录错误(bug),并在必要时与代码开发者进行讨论了。然后代码开发者会修复问题,并通知评审者,而评审者必须确认每个问题都得到了解决。工具应该追踪评审期间所发现的问题,并确保直到所有的错误(bug)被评审者 修复 才完成评审(或者作为稍后解决的单独工作项追踪)。工作项只有在评审完成时才能通过。

如果您真面临着搜索错误(bug)的烦恼,那么请确认您已经将它们全部安装了!

  既然您已经学会了代码评审 流程 的最佳实践方式,那么我们接下来将会讨论一些社会效应,以及怎样管理它们以获得最佳的结果。

  回页首

  8. 培养良好的代码评审文化氛围,在这样的氛围中可以积极地评审缺陷

  与其他我们能看到的大多数技术相比,代码评审对于真实团队构建能够发挥更大的作用,但是只是在管理人员能够以一种积极的,向上的,有技巧的方式进行交流时,这种优势才能发挥出来。将缺陷看做是不好的事物很容易(毕竟,它们是代码之中的错误(bug)),但是形成不好的缺陷检查态度,则会毁掉整个团队的努力,更不要说它会破坏错误(bug)检查过程了。

软件代码评审的要点在于,尽可能多的消除缺陷,不管是谁“导致”了错误(bug)。

  管理人员必须建立缺陷是积极的这样的观点。毕竟,每一个缺陷的存在,都是改进代码的潜在机会,而错误(bug)评审过程的目的,就在于使代码尽可能地完美。每一个被发现并解决的缺陷,都是客户以后不会看到的缺陷,也是 QA 人员不必花费时间去解决的问题。

  团队需要维持这样一种态度,就是发现缺陷,就意味着代码开发者和评审者 作为一个团队 去改进产品的质量成功了。而不是“代码开发者产生了一个缺陷,而评审者负责去发现它”。它更像是配对编程的一种有效形式。

  评审员要向所有的开发者展示收集坏习惯,学习新技巧,并展开功能的机会。开发员可以从他们的错误(bug)中学习,但是只是在他们警惕错误(bug)时才会这样。如果开发员害怕发现错误(bug),那么积极的结果就会消失。

  如果您是一名初级开发员,或者是一个团队的新成员,那么其他人发现缺陷时,就意味着您强有力的队友在帮助您成长为一个合格的开发员。这就比您单枪匹马地编程,没有具体的反馈时,要更快地进步。

  为了维持检查缺陷是积极的这样一种理念,管理人员必须要承诺缺陷密度不会进入到性能报告之中。公开作出这种承诺是很有效的。这样开发员就会知道他们要怎样做,并抗议公开破坏这条规则的管理人员。

  管理人员绝不应该将错误(bug)代码作为消极性能评审的基础。他们必须谨慎对待,并对批评造成的挫折感及消极反应保持敏感,并要一直提醒团队发现错误(bug)是一件很好的事情。

  回页首

  9. 警惕老大哥效应(Big Brother Effect)

  作为一个开发员,您可以自动假设“老大哥正看着您呢”是真的,如果评审制度是由评审支持工具自动评价的,更是这样的。您是否花费了很长的时间去评审一下更改?您的同行从您的代码中是否发现了很多错误(bug)?这将如何影响您下一步的性能评价?

评估报表不应用来对付开发人员,尤其是在面对结对评审员时。这一做法会严重破坏道德观。

  制度对于流程评价来说非常重要,这反过来,又为流程改进提供了一个基础。但是制度也可以被用来做坏事。如果开发员相信制度是用来对付他们的,那么他们不光是对流程有敌意,而且他们的注意力可能转到改变制度,而不是编写更好的代码,和变得更有效率上。

  管理员可以做很多事情,来解决这个问题。首先也是最重要的,他们必须要警惕这一点,并且必须确定代码开发者没有面临很多的压力,而“老大哥”问题必须每次都得到详细的检查。

  制度应该用来评价流程的效率,或者流程更改的效果。记住,通常来说,最困难的代码是由最有经验的开发员处理的。这些代码,反过来,最有可能出问题,因此最难检查,也有可能发现最多的缺陷。因此,大量的缺陷很有可能是由复杂性,以及代码的分块性造成的,而不是代码开发者的能力造成的。

  如果制度确实能够帮助一个管理员去发现一个问题,那么将某人踢出局可能会产生更多的问题。我们推荐管理员在解决相关问题时,要将一个小组当做整体来对待。所以最好不要召开专门的会议,因为开发员在解决特定的问题可能会有压力。相反,您可以通过一个每周状态会议,或者正常的程序来解决问题。

  管理员必须不断地维持这样一个年头,即搜索缺陷是好的事情,而不是糟糕的,缺陷密度与开发员的能力并不是挂钩的。记住对一个团队来说,缺陷,尤其是团队成员所引入缺陷的数量不应该被回避,也不应该用作能力的评价参数。

原文转自:http://www.ibm.com/developerworks/cn/rational/11-proven-practices-for-peer-review/