Code reviews are one of the standard practices of software engineering. Or let’s say that they are a standard practice of the software engineering literature. They are widely recommended; how widely practiced, I am not sure.
Eiffel Software has applied code reviews to the recent developments of EiffelStudio, a large IDE (interactive development environment) whose developers are spread over three continents. This distributed setup forced us to depart from the standard scheme as described in the literature and led to a fresh look at the concept; some of what appeared initially as constraints (preventing us from ever having all the people involved at the same time in the same room) turned out to be beneficial in the end, encouraging us in particular to emphasize the written medium over verbal discussions, to conduct a large part of the process prior to the actual review meeting, and to take advantage of communication tools to allow several threads of discussion to proceed in parallel during the meeting itself. Our reviews are not just about code, but encompass design and specification as well. The process relies on modern, widely available communication and collaboration tools, most of them fairly recent and with considerable room for improvement. This article describes some of the lessons that we have learned, which may also be useful to others.