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.
I find distributed code reviews work best in this situation.
Statistics from QSM reveal agile projects are lower cost, faster to market and much higher quality than outsourced projects. This is based on 8,000 projects over 20 years. See https://www.facebook.com/notes.php?id=35322496826.
Mark, I understand your perspective all too well. Off-shoring is often accompanied with cost cutting in other areas such as travel, which is a pity. We won’t go into fixed price contracts :). I have found that having an onshore person (from offshore team) as the main channel of communication can work well if you have the right person. I found that this helps with reducing the number of “lost in translation” issues.