Code Review: Empowering Collaboration Across Time Zones
I recently had the opportunity to visit one of our Collaborator customers – one of the largest and most respected insurance providers in the country. The main point of discussion was about the integration of Collaborator and Rational Team Concert. However, one thing I discovered during this visit was how much value they were getting from Collaborator in a distributed environment.
To give some context, this company is set up with a headquarters in the U.S., but with most of their development occurring overseas in India and China. Many large companies have to struggle with these multiple locations – namely, how to effectively communicate with developers working on projects from 10,000 miles and eight time zones away.
What I found on this visit was that this company, through the use of Collaborator, has turned this disadvantage into a major advantage. Here’s how:
- A user story is uploaded into Collaborator and reviewed (not just by product managers).
- A developer in India is assigned a story, and he may start it off by writing a design document. Before leaving for the day, he submits that design document to a U.S.-based team to review.
- While the developer in India is sleeping, the U.S.-based team reviews the design and returns it to the developer.
- Eventually, the design is completed to everyone’s satisfaction, and code is written and assigned back to the U.S. team for final review.
Collaborator enables this team to turn the disadvantage of a distributed team into a notable time saver. The “team” is working 24 hours a day, constantly collaborating on and reviewing each other’s work. While some are asleep, others are working on the same code.
This company has even taken this concept a step further with what I call “cross-functional peer review.” Essentially, product managers submit user stories for review, developers submit design documents and code, and testers submit test plans. All of these documents are submitted to the entire cross-functional team so that if, for instance, a user story changes, developers and testers can see that change and react accordingly with their own documents. Likewise, if test plans change, developers and product managers can review the changes.
That may sound like a bit of oversharing, but this is the kind of communication that has to occur among distributed teams in order to keep the development and testing processes Agile. This truly is a perfect example of the level of collaboration that is required to ensure that your team is churning out high quality code as efficiently as possible – it just so happens that Collaborator was the tool that was allowing this particular organization to achieve those goals.
What processes does your organization or team have in place to ensure that the necessary communication is occurring between cross-functional team members? Leave a comment below to let us know.