Code reviews have a lot of benefits, most important to find bugs during development phase and to enforce coding standards -- and they help to share knowledge about a peace of code with other team-members (called collective code ownership). But most often traditional inspection methods consumes a lot of time, hence developers are discouraged doing code reviews during their regular work. Nowadays physical code-review meetings are also a problem, because development teams are shared across offices/countries/continents, having different time-zones. The planning of review-meetings is hard or even not possible. Another problem is the delocalization of code in object-oriented and dynamic programming languages. Inheritance, dynamic binding & co. make it hard to understand an instruction, since developers use foreign classes and frameworks, and the business logic is shared across them.
Based on our experiences from previous projects we developed a code-review tool which follows a different approach: The review item is one changeset in the revision control system. Further author/reviewer assignments are defined. The reviewer subscribes to changes (new revisions) from the author and gets a new review task if the author makes a commit to the respository. The assignments may be done in a peer to peer manner, where the developers inspect the code changes of one or more team members. Reading each others code has the consequence, that developers also learn the code from their colleagues, thus supporting collective code ownership. A more hierarchical approach would be to assign a senior developer to review the code for new or less experienced developers. The senior developer in the role of the reviewer may enforce coding standards and better code quality within the development team.
The review-tool is called ReviewClipse (see http://www.inso.tuwien.ac.at/projects/reviewclipse/ for more information). It is free, full-integrated into Eclipse, and very easy to install and to use. All review data is stored within files, shared with the already configured repository of the Eclipse project. So there is no need to setup any server-side application, apart from the already existing versioning system.
Code reviews have a lot of benefits, most important to find bugs during development phase and to enforce coding standards -- and they help to share knowledge about a peace of code with other team-members (called collective code ownership). But most often traditional inspection methods consumes a lot of time, hence developers are discouraged doing code reviews during their regular work. Nowadays physical code-review meetings are also a problem, because development teams are shared across offices/countries/continents, having different time-zones. The planning of review-meetings is hard or even not possible. Another problem is the delocalization of code in object-oriented and dynamic programming languages. Inheritance, dynamic binding & co. make it hard to understand an instruction, since developers use foreign classes and frameworks, and the business logic is shared across them.
Based on our experiences from previous projects we developed a code-review tool which follows a different approach: The review item is one changeset in the revision control system. Further author/reviewer assignments are defined. The reviewer subscribes to changes (new revisions) from the author and gets a new review task if the author makes a commit to the respository. The assignments may be done in a peer to peer manner, where the developers inspect the code changes of one or more team members. Reading each others code has the consequence, that developers also learn the code from their colleagues, thus supporting collective code ownership. A more hierarchical approach would be to assign a senior developer to review the code for new or less experienced developers. The senior developer in the role of the reviewer may enforce coding standards and better code quality within the development team.
The review-tool is called ReviewClipse (see http://www.inso.tuwien.ac.at/projects/reviewclipse/ for more information). It is free, full-integrated into Eclipse, and very easy to install and to use. All review data is stored within files, shared with the already configured repository of the Eclipse project. So there is no need to setup any server-side application, apart from the already existing versioning system.