Wednesday, July 15, 2009

Agile and offshoring... why it doesn't completely suck.

There have been a few posts recently in various forums about mixing agile with offshoring. At first I had a repulsive taste in my mouth. You see, I've never been in an environment where offshoring has decreased the cost of development while maintaining a similar level of quality or time (or reduced the time with the same cost). I'm not saying that it is not possible, I'm just saying that the companies I've worked in that tried it have not been good enough to make it work in their favor. In my last group, we practically had an A/B test team that proved this for me.

My personal history was then combined with my positive experiences with agile and co-located teams. I saw the huge productivity gains when everyone on the team was moved into a single room together. I saw similar gains with the product owner was moved nearby and the usability and testing roles were given hotel desks in the room to spend part of the day (they were matrixed, so they spent 2-4 hrs a day in the room). To me this was proof that closer was better. Time zone issues, communication issues, latency of conversation, team chemistry.... all of these things improve with co-location. Accountability is much higher because you can see the peer that made whatever statement.

Thus, my view was always... why would I want to work on a team that isn't co-located? I hold high expectations of myself and my work. Why would I want to immediately suppress my potential by being in that situation?

But this week, I had a new thought. Some companies offshore. Clearly the model has to work for them to continue to follow this model (or they are complete idiots). Does agile improve this model?

Yes! It would! Agile is greatly about quicker feedback loops. What better way to uncover communication gaps, quality and time issues, or any other set of problems than by shortening the window of time before you uncover them?

So... I'm suddenly in a new camp. Agile and offshoring is not a bad idea, it doesn't completely suck. Actually, if you feel that offshoring is your necessary way of gaining an advantage, then agile might be one of the only ways to manage it well. Instead of looking at offshoring as a way to ruin agile, I'm looking at agile as a way to improve offshoring.

That being said... I still want to work in a way where I can be face to face with my peers at least weekly.

Disclaimer: In no way do I want to reflect any discrimination or judgement about people in offshoring centers. Many of the people I've worked with in India, Romania, or Germany are equally capable as people I've worked with in the states. I believe the disadvantage of offshoring has nothing to do with the individuals and all to do with the structure/model in which it is set up and managed. The point is that it takes extra cost to manage, and this is a cost that doesn't exist in a co-located setting.


  1. Like most of us, my preference is for co-location. I have seen it work. My concern with off-shoring is that companies are doing it only because they think it will save money. Instinct tells me this is penny-wise and pound-foolish.

    Good software ain't cheap and cheap software ain't good.

  2. I prefer co-location, but I've had some very successful offshoring experiences using Distributed Agile best practices. But we did offshoring more for talent access rather than cost savings. So while the engineers weren't cheap, they were well versed in Agile practices (and practiced them within their own globally distributed offices).

    The one retrospective issue we could never fix was the timezone difference. But we did everything from videoconferencing to sharing environments and codelines, etc., to get the collaboration to work. And if you're going to do offshoring, Agile is a good way to go to minimize bloated timelines on projects that are way off track from desired results.

    They team we offshored with is even presenting a talk on the engagement at Agile 2009:

  3. We had some trouble working with off-shore team initially, but over a peiod of time we (Scrum Master + PO) went to off-shore office & worked from there to understand the actual issues, we them sorted them on the spot at the earliest, then we asked some of their team members to work with us here in USA. This whole exercise made a great difference in the productivity & team gelling, never after that we had any issues with off-shore project b'cos the "I and you" got changed to "Us a Team" & it still works for us...