Code reviews can elicit unfavorable feelings and thoughts endemic to software engineering teams. Images of long torturous meetings while having their projects critiqued and torn to pieces... but these images can be quelled with an effective peer code review while keeping ego’s in tact. Proper code reviews need to be seen as a learning tool so the team can quickly catch mistakes instead of a grueling session filled with criticism. To improve on this paradigm and make it more human, let’s look at some examples derived from our software engineering teams for the past 13 years:
Aggregated social components
We’ve learned through trial and error that even the most junior member is essential to the code review ecosystem and no one is too senior to be submitted to the same process. By bringing everyone together, the team can disseminate more knowledge and glean creative ideas as whole.
Junior members will be able to learn and trust more senior members if they are equally part of the review. The new members in the team could actually detect certain bad habits that the rest of the team became accustomed to e.g. try to review code in areas that will surprise the team; this will also raise level of awareness and create situations that could lead to the team learning something new; allows room to test validity of assumptions.
Multiple segments of code may be the interest of just more than one member of the team and having an open-to-all platform that fosters collaboration can be incredibly powerful. Fostering this type of open platform for collaborative code review enables the teams to focus on the objective rather on criticizing the person who coded that segment.
The value in this is that the team as a whole learns as a community, and as a community they will be able to build better software. The team’s knowledge base grows and that creates fertile grounds for innovative ideas to bubble to the surface.
Awareness of time
To avoid creating massive backlogs and letting “Code Reviews” turn into marathon sessions that disrupt natural development output-flow of the team. There are plenty of code review tools out there to manage priority and accelerate review requests by team members. This enables the team to communicate and respond to code reviews in a timely fashion.
Best way to avoid code-review bottlenecks is to view them as they come in. Some can be grouped if they relate within the same segment of code. This inadvertently can provide a nice break from solving a problem or shifting to new tasks.
By implementing code reviews with social components, not only does the team benefit from gaining greater insight, knowledge and trust, but the entire company will benefit from better quality products. At the end of the day, software is about people; because it’s that “software” that it will have an affect on how people communicate and do business transactions.
To get a better view of this process in real time we welcome you to visit our Tech Ecosystemfocused on people, ideas, craftsmanship and client business objectives.