The joys of being a new techie. That special time in your life when you have just learned MVC and now think you know everything. Good times.
Of course, everyone else in the team wishes they could slap the smugness out of you. Still, the energy is good and that is what will help the coder mature to a master engineer.
This will however not happen by itself. The senior team members must nurture the new talent.
One of the most potent ways of doing so is through a software review.
Unlike a retrospective, a software review is technical. Its focus is on the craft of software development rather than product improvement.
Some common outcomes of software reviews include:
- Robust design
- Code that is easier to maintain
- More literate code. See Name well or go home
- Fast growth of talent
So what exactly do you need to do to run a successful code review?
Before the review
- Invite all developers on the team to the meeting
- Ensure that everyone has access to the latest code
- Highlight the objectives of the review
During the review
- Gather everyone around one computer, or project code to a screen
- Reiterate that the only goal of the session is to improve the design of the code, not to attack anyone. The entire team is responsible for the product no matter who wrote which line of code
- The developer who wrote the code walks through the code explaining it along the way
- Trivial details can be skipped
- The other team members can comment on various aspects of the code such as naming scheme, reliability of external services and even choice of language if appropriate
- Discussions on alternative paths are encouraged. This is meant to be a lively meeting, all ideas are valid
- Improvement suggestions can then be agreed on by the entire team.
- This process can be repeated for all team members
After the review
- Team members should go ahead and implement the recommendations that were collaboratively arrived at
- Remember the goal should always remain to improve the code
Have you ever carried out a review before in your own organization? How did it go?
Talk to me on my twitter @jchex or in the comment section below.