Offshoring is frequently promoted as a way to produce great products for far less money. So many software development companies boast about sending large amounts of their work to India or China to reduce costs. Unfortunately, in doing so they’re often reluctant to pay the price to create and maintain high-performance distributed teams.
Agile works on the basis of a few simple principles:
- Short Feedback Loops—which leads to iterations, TDD, …
- Radical Transparency—which leads to daily standup, demo/review, …
- Face-to-Face Communications—which leads to high trust, group problem solving, …
- Value—which leads to eliminating waste
- Continuous Improvement—which leads to retrospective, adoption of engineering practices
Thinking back on every project that I’ve ever worked on (Agile or not), the quality of communications was a good predictor of success. So when we run distributed teams, there has to be a focus on making communications work.
At best, the typical approach to this problem is to buy web cams, fancy video- conferencing software, and conduct our meetings sitting in front of them. But that misses the point—these devices improve the quality of communications but not enough. They don’t build trust. To really build trust, you have to meet face to face for at least a week. Unfortunately, trust is weakened through the course of a year, so it has to be renewed. At a minimum, team members should visit each other twice a year.
So, if you really want to get a high-performing team—don’t underestimate the real costs. Be sure to budget for travel—a minimum of twice a year to build and maintain trust. Don’t shortchange your distributed teams.