Before code check-in, authors use Collaborator to invite participants to a review, where the software presents before/after “diff” views to all participants. Everyone can type comments next to any line of code, and can carry on threaded discussions with each other, in real-time or on their own time.
While Cisco does have an internal conferencing product that allows real-time application sharing, it involves manually creating “diffs” and shipping them around to reviewers. The tracking features in Collaborator are particularly helpful to our team. We can immediately see what the outstanding issues are, and we can verify that all bugs found in review have been fixed before we release a version.
Our biggest challenge in implementing code review was getting people to try it. Our engineers initially resisted it because, like many engineers, the concept of code review conjures visions of excruciating process, meetings, paperwork, and time spent not coding. Once they tried Collaborator, however, perceptions changed. Now the team looks positively on code review, as they both recognize the benefits and enjoy the process of working together. And we have the bandwidth to review code for every bug fix.
Another benefit of Collaborator is its ability to integrate with our internal defect tracking system. This system will not let us resolve a bug until the code has been reviewed, and we must submit reviews to this system in a certain format. We were able to work with SmartBear to integrate Collaborator into our defect system to make this process smooth. Now, when a team member finishes a review, the right “enclosure” for our system gets built automatically and attached to the defect. Then our defect tracking system allows us to check in the change and resolve the defect. This integration saves us a lot of time.
Collaborator is also extremely easy to use. The interface is intuitive, and since it integrates directly with Perforce, it really simplifies the processes of both packaging code for reviews and of conducting them. Reviews are packaged and sent automatically, so we don’t need to manually assemble files and mess with emailing them.