Last night (on January 31, 2005) we held our very first official code review for the game the Devstone programming group is writing entitled Island Frenzy. As the initiator and primary proponent behind the code review, I was the voluntary guinea pig - we decided to review my code behind my messaging sub-system. Though not everyone came prepared, which was quite a disappointment on a variety of levels, we were able to review the crux of the material and I feel that everyone left edified.
The purpose of the code review was multi-faceted.
- To familiarize everyone with the various aspects of the application libraries. Often times as developers we're islands in that we each work on our own focused areas, while blindly ignoring of the rest of the system.
- To discuss the strengths and weaknesses of the objects within the system. It's nice to have more than one set of eyes on the code.
- To identify ways in which the objects should be extended/reused.
- To identify the validity of the objects. Some objects may no longer be used or perhaps are not even necessary anymore. It's time to clean up the code.
- To determine (and correct where applicable) whether the objects follow all established standards and conventions.
- To learn new techniques and strategies. Let's face it, we can all improve in this arena.
Conducting the code review was a great experience, despite not having full participation. I was forced to recall historical reasonings behind various motives in the code - stuff that has been identified as candidates for better documentation and commenting. It was neat to relive the decisions that I made months (sometimes years) ago in the design of the framework and come to the same conclusions in almost every single case.
Thanks to all that participated!