代码走查的责任制
许多年前农村土地承包责任制的出现,使之大农民的角色发生了根本性的改变,从而迎来了粮食产量和农民很生活的巨大改善。同时在Code Rivew 这一个群体活动中,让其有效运行起来一个最有效的方法就是分角色同时对某一角色赋予一定的责任。下面就对在我们团体中分角色的Code Review及其流程进行一个简单的讲解,同时也想和广大软件同仁们一起交流一下关于CodeReview的一些观点和看法。因为是本公司的方法所以也会有不足之处,欢迎讨论。
一、Code Review 角色分类
1、Author:被Review对象的作者。
2、moderator:一般由团队中开发经验丰富的人担任。
3、Recorder:主要用于记录在整个代码Review中情况。
4、Reader (may be the same person as Author or leader)
5、Other reviewers:团队中的其它成员,但是一般不要人太多,因为对于一个讨论会议一来说一般要将参加会议的人控制在7人以内为最佳,这样这个会议才是可控的。
以上这些角色的职能会在Code Review中的不阶段而发生变化。
二、Code Review的流程及其角色在不同阶段的任务
上图显示了整个Code Review活动流程情况,一般在一个Code Review活动会中Planning,Preparation,Meeting,Rework&Verfication是必须的,而Overview阶段会随着Review对象的不同而不同,对于一些Review工作大量的活动这个阶段是必须的,下面将详细描述每个阶段的任务,以及各个角色在相对应阶段的责任。
1、Planning:
这个阶段主要是对各个角色人员的确定以及确定所Review的对象是否已经达到能够被Review的阶段,这样以防止代码在仍有很大 问题的情况下进行Review而导致Review的整体效率太低。还有对整个Review过程所以经历的时间段有一个大体的划分。在这一阶段首先由Author确定谁来当本次Review的moderator(一般moderator只能从团队中有限的几个人内挑选,并不是每个人都可以充当这个角色的。)然后再邀请别人充当本次Review的Recoder,Other reviewers;
这个阶段各个角色的主要任务是:
Author:对整个Review过程制定计划,确定参加这次Rewview人员,为这些成员分发要Review的材料。
moderator:对整个要Review的对象进行分析查看是否达到能够开始Code Review的要求。
2、Overview:
对于大量的东西要Review的项目,或者大部分参与Review的人对要Review的东西都不是很熟悉的情况下。由Author开招开一个简短的站会整体解决一下所要Review的东西。
3、Preparation:
在这个阶段,所有参与的reviewers对所以review的东西各自进行走读,然后记录并提交发现的问题,然后由Author和moderator共同对reviewers所发现的问题进行汇总,分类,甄别。之后根据汇总上来的问题来进一步判断是否适合招开Review会议。如果汇总上来的问题比较多,比较严重则说明所要Reivew的文件尚未真正达到要求,则取消本次活动。由Author重新开发。如果发现的问题不是很多,则按时招开Review Meeting.
这个阶段各个角色的主要任务是:
reviewers:对所要Review的对象各自先进行走读,然后提交各自发现的问题。
moderator和Author:对reviewers提交上来的问题进行汇总总结查看是否符合Review的条件。
4、meeting:
meeting做为整个review的核心和关键环节其主要任务是首先由Author主持对汇总上来的问题,逐个的分析然后给出自己的判断,是接受reviewers还是不接受reviewers提出的问题。对于有分歧的问题进行讨论,如果还有分歧则由moderator决定这个问题是否要改怎么改。在将所有汇总上来的问题分析完后,再由Author带着所有reviewers对代码进行走读。然后进一步分析和讨论代码中的问题。
这个阶段各个角色的主要任务是:
Author:逐个分析汇总上来的问题,并给出自己的分析。带领所有reviewers对代码进行走读;
moderator:分析判断Author对问题的分析判断是否合理,在关键时刻给出分歧问题的处理意见;
reviewers:讨论分析之前提出的问题,对代码进行集体的重新走读,以发现更多的问题;
Recorder:对整个Code Review进行记录,包括发现的问题以及问题的整改意见。
5、Rework&Verification:
这个阶段主要是Author对整个Review过程提出的问题进行整改,然后提交由moderator对整个整改的情况进行评估。
总结:
通过对Code Review中的成员进行角色分工,从而赋予他们一定的职责,这样就能很好的提高他们的责任感从而大大提高代码走查的效率。