Tuesday, February 28, 2017

Practical Example of Code Review Implementation

Practical Example of Code Review Implementation



Our previous post concerning a code review implemented by our company caused a particular interest of the IT community, so we decided to write an extra article on this theme. Today well consider this practice implementation in terms of a specific example.

Lets consider code review implementation as exemplified by a project and project team structure. There are two groups in the team: one consists of two developers and a lead, and the other – of three developers and a lead. The developers will be marked as D (Developer) and the leads as L (Lead).

Lets define the group members.

Group 1: D_1_1, D_1_2, D_1_3, L_1.
Group 2: D_2_1, D_2_2, L_2.

We assign reviewers to the project trunk.


trunk/module_1 — group 1 is responsible.
trunk/module_2 — group 2 is responsible.
trunk/common — common responsibility of both groups, a lead appoints particular reviewers from his or her own group members.

A developer writes a code affecting both groups modules


1. Developer D_1_2 solves a task and at the same time writes a code affecting the following paths: trunk/module_1/dev_1_1, trunk/module_2/dev_2_3.

2. D_1_2 creates a review and adds the following participants.


3. Lead L_2 appoints developer D_2_3 as a reviewer.

4. The final table of the review participants looks as follows.


A developer writes a code to a common module  


1. Developer D_1_2 solves a task and at the same time writes a code to trunk/common.

2. D_1_2 creates a review and adds the following participants.


3. Lead L_1 appoints oneself as a reviewer.

4. Lead L_2 appoints developer D_2_1 as a reviewer.

5. The final table of the review participants looks as follows.


It is important to realize that launching a code review within a small group comprising 6-7 developers is one thing, and scaling a huge project developed by dozens of specialists is absolutely another thing. Huge projects have many more hidden rocks, which are just not seen in smaller-scale projects — do not forget about it.

The next article (as we promised in the previous topic) will be dedicated to review automation using CodeCollaborator.

Bye for now!


Available link for download