May 13, 2013
Code reviews are a team effort.
Michael Jordan tried for years to carry a team on his back. It wasn’t until he had a good supporting cast who knew their roles and understood the value they added to the entire organization, that he started to add championship rings to his list of accomplishments.
The same principles that go into running a successful business or a sports team are applied in the software industry. Everyone involved needs to know where the other parties are and how they’re fulfillng their specific role assigned to a project.
Progress and unity are only attained through the direction of team leaders and the participation of everyone involved in the continuity of a project, goal, or aspiration.
In the software industry, code reviews are helpful for many reasons, including:
Keeping the channels of communication open and flowing
Strengthening retention and understanding among junior developers
Conducting Code Reviews
The way I’ve traditionally done code reviews is over lunch.
Typically, I’ll ask the business owners to pay for a pizza or three, depending on how big the team is and then we all get settled in with pies and the blueprints we’ve created since our last pow wow.
There several ways to do code reviews
I usually like to kick off the session with a youtube video or something funny I’ve found to lighten the mood. Nothing too long, just enough to get people relaxed and in a good mood.
The mood should to be light. This is important.
Everyone involved needs to let down their guard and realize the code review is an information sharing session.
A short video clip of someone taking a face plant is the perfect way to break down walls that may have creeped in, attached to work they were previously engaged in before the meeting.
After barriers are broken and a relaxed mood is established, we begin to look at each other’s code and examine what’s been created since the previous session. For those who may have questions, like why a certain piece of code was used, we use this time to explain our techniques.
Purpose of Code Reviews
Code reviews are not about sitting in a boardroom and berating each other about the steps they took to create the end result for the customer.
They’re about learning from each other and sharing; not just what we know and have implemented, but also about things we may have learned in the process, which help each of us grow as individual developers AND as a team.
It’s important to use positive dialogue that encourages communication, not stifles it. For instance, approach a colleague with something like, “That’s a good approach. What other options did you consider to solve this problem?”
Open ended questions increase the flow of communication, not just for the developer in the spotlight, but this approach also increases the likelihood that others who may have had similar issues will chime in and offer alternative solutions, because of the way you framed the dialogue.
In this way, code reviews spark positive communication and interaction.
Problem Solving in Action
With so many talented individuals on a team and so many different personalities, it’s conceivable and highly likely that someone will figured out how to fix an issue that no one else thought of.
Positive contributions lead to unity and also strengthen the team.
Here’s a good example:
Recently, we were building out multiple applications with each application having its own login.
Our objective was to create one application that everyone logs in through, called a single-sign-on app, giving the user authentication for each of the apps.
At first, we weren’t really sure how we were going to accomplish this.
Through code reviews, we were able to benefit from shared knowledge and different thought processes to tackle the issue and bring about a solution.
Other Benefits of Code Reviews
Code reviews don’t always have to be about code. Sometimes we end up talking about a new technology that someone worked on over the weekend and how we’re going to implement that into what we’re working on now or in a step that may be approaching.
It may be a new way of pairing remotely, a new tool we’re using, a new programming language, or maybe a new testing tool.
Sometimes you choose teammates to run the code review and let them determine the topic. It’s planned so everyone knows what’s going to happen and they’re in the mindframe of sharing what they know about the topic.
This also encourages people on the team to beef up on a subject they may feel they’re weak on to contribute something to the conversation. In this way, code reviews encourage growth.
If you don’t have anything planned and you get thrown into the code review, go ahead and go through commits. Go through the last two weeks of commits and find a good tool that allows you to continue on a successful path.
Software for Code Reviews
Code reviews help the business. They establish a solid channel of communication. Code reviews increase knowledge, retention, and add to a team atmosphere that is necessary in the software industry. Conduct them as needed to promote these attributes within your business.
If you have any questions or need help pleace contact me.