This doesn't just mean looking at code - the software facilitates actually communicating on individual lines of code and having a two-way conversation like a chat room or a newsgroup.
We visited them four weeks after the reviews started. "They're pretty cool" said the same developer who had told us they "suck" only 29 days earlier. "They're doing a good job now. They just needed a little direction. We're actually getting a lot of good code written."
How is it possible that developers who "suck" suddenly became "pretty cool?" It turns out that the Indian developers were inexperienced. They were smart and wanted to learn; they were just green. Once the two factions had a mechanism for easily talking to each other about code, suddenly the knowledge transfer could begin.
It wasn't enough when they were only communicating through project specs and long emails about how Austin expected them to work. They needed to talk about specific pieces of code and they needed a process that let this happen naturally.
Once the code review process was in place, the rest literally worked itself out. The
developers in India became far more productive and the developers in Austin became happy. The entire group produced far more working code without increasing the budget.
The developers organized themselves into a team. All they needed was an environment of communication and a tool to make it easy. They taught each other without managerial pressure or rules or strict process controls.
Working together, teaching and sharing, being happier, all without being told... sounds like a team!
Teamwork, for real though
Software architecture and design is typically coordinated and even invented in meetings. We take it for granted that these activities are enhanced by collaboration.
Writing the software is no different. You may not need a formal meeting or the time investment of pair-programming, but it does make sense to give your developers editors."
Besides the obvious bug-removal benefits of code review, you'll turn your isolated, individualistic developers into a true team.
I hope you teamwork-disbelievers out there will at least give code review a try. There are lots of ways to do it ; just pick one that sounds doable and try it for a month. If you don't find lots of defects and you don't see developers teaching each other, let me know.