Code Reviews: Good, A Complete Waste of Time or a Necessary Evil?

Code Reviews: Good, A Complete Waste of Time or a Necessary Evil?

Eclipse developers are in the middle of the ‘End Game‘.  Half way through the release candidates and getting ready for another major release.  All the API is in place, the features are ‘complete’ and we are working through the last of the major bugs.

One thing that changes dramatically during the end-game is that each code change requires a review. As we get closer to the release, the number of eyes that must review the code increases.  The theory is that with more eyes on the code, the less likely we are to break something.  It also forces us (the committers) to explain our changes and convince others that the change is really needed. Often just explaining your code is enough to make you see the flaws in it.  Finally, the reviews give us confidence in our changes.

But for a development team that normally does not perform code reviews (at least it’s not part of the mandated development process) the 2 month end-game really mixes things up.

I’m personally  enjoying the code reviews. Of course it gives me more confidence in the code I’ve written (or in some cases I walk away with my tail between my legs), but the reviews are also teaching me a lot.  We all have our own way of doing things.  I have my own coding style; and looking at how others solve problems (and getting feedback on my solutions) is one of the greatest benefits of working on open source.   I view software development as an ongoing learning process, and there is no better way to learn than to critique others and have other critique you.

There are two common methods for reviewing code:

  1. Review then commit: The code is reviewed before it is committed to the repository
  2. Commit then review: The code is reviewed after it has been committed (and removed or changed if needed)

So my questions to you are:

  • Do you find value in code reviews? or are they just a wast of time?
  • Have you been involved in open source  or close source code reviews (or both)?
  • Which method of code review have you tried? Which one works better?