Having the ability to work effectively with a team that may be spread out around the world is an increasingly important demand of modern developers. With Internet-enabled collaboration, programming projects have gone global in the search for the best talent. A recent Memeburn post named collaboration “across space and time” as one of the three most important skills for young developers, noting that being comfortable with distance is essential in today’s distributed work environment.
“Working and collaborating with people in remote locations and with differential time schedules is one of those things that’s easier said than done – and one that can be especially challenging for young devs,” contributor and senior software architect Ray Augé wrote. “Evolving and remaining relevant in this industry requires us to break down our dependency on being in the same room with all our collaborators. If you look at prominent development houses like Google and Oracle, you’ll see a global distribution of developers. They’re looking for the best talent, and if they can’t find the perfect people locally, they go abroad.”
One of the areas in which this type of collaboration is most important is in carrying out thorough code reviews, according to a post by software CTO Jim Bird appearing on Java Code Geeks. While some traditional ideas of code review maintain that the inspection process should be a detailed, highly organized in-person scan with a several person team, the reality is that lightweight, casual reviews are also effective – in addition to being considerably faster and cheaper to carry out. With modern code review tools, teams can avoid the complication of scheduling and setting up a formal meeting, instead easily sharing ideas and critiques regardless of distance.
The importance of code review tools
For small teams working out of the same office, it can make sense to do in-person reviews, but the larger and more distributed a team is, the more expensive and infeasible this becomes, Bird noted. In particular, teams that are spread out across the world can benefit from using tools designed to facilitate collaborative code review by tracking changes, critiques and notes.
“These tools integrate with your version control system (and sometimes your bug tracker) and are especially useful if you are involving multiple reviewers in different locations and different timezones,” Bird wrote. “Reviewers and the programmer can add annotations or comments directly in with the changes, cutting back on the need for review meetings.”
Additionally, such tools can also be an effective way to make sure code reviews are actually done and that they are carried out in a useful manner, Bird noted. Managers can confirm that the reviews are taking place, collect metrics and scan the contents, while new programmers can get a sense of how effective review works by looking through the history of changes and comments.
Code review tools also work well as supplements to self-testing tools like static analysis software because they help developers find subtle errors or omissions in each others’ work that don’t look like bugs, Bird wrote. Not only does code review help find errors, it gives programmers a chance to correct issues that might make code harder to understand, modify or maintain down the line – another essential in contemporary coding, where many developers may only work briefly on a project as independent contractors.
According to Bird, many development teams still avoid reviews because they are complicated to implement and take time to carry out effectively. These problems are only magnified by the challenges of collaborating over a distance, so tools that are designed to facilitate such remote partnerships can be particularly effective in making sure the type of review needed to avoid security, functionality and comprehension problems in code is properly carried out.
Software news brought to you by Klocwork Inc., dedicated to helping software developers create better code with every keystroke.