That factor -- having an IT leader take responsibility for the project -- is a key differentiator, he adds. "A lot of IT managers make the following mistake: They're under pressure to reduce costs, so they decide to go to an outsourced company that promises to use agile methodologies. They think that not only will they get lower labor costs, they'll get the higher productivity of agile."
That kind of thinking can lead to trouble because using the agile methodology means giving up some of the cost savings traditionally associated with offshore outsourcing. Indeed, Rayner says, Fly.com's success was due in part to the fact that his company paid a higher price to work with the outsourcer's most experienced developers. "They were every bit as important in solving business problems as they were in solving coding problems," he says.
Outsourcing agile development may not save that much time and effort either. "You have to be willing to work as hard with an outsourced partner as you would with your own people," says Rayner. "And your super users need to be involved to help determine features."
The worst outsourced agile disasters occur when the client company thinks it can hand off responsibility to the outsourcer. "At one company I worked with, speed of delivery was worse than before the agile outsourcing," Rayner recalls. "At the root of the problem was this attitude that, 'now that we have an outsourcing contract, they have to be the ones to do it. They have to be agile and fast, and we don't have to be in touch every day.' "
He notes that there's another reason -- usually unspoken -- why IT leaders sometimes choose to outsource: So they can deflect responsibility and gain a scapegoat in case things go wrong. "You can't go to the business sponsor and say, 'I told them to do what you asked, and it doesn't work. We're going to fire this outsourcer and get a new one,' " Rayner says. "That's often what happens when a project fails."
This kind of thinking can kill an agile project before it even gets started, he says. "The very spirit of agile is to have mutual trust and respect, and a flexible relationship where you know at each decision point exactly what cost, time and feature tradeoffs you're making. That's hair-raising to some engineering leaders because they can no longer hide behind the contract."
Is 'Partly Agile' Enough?
If you do decide to outsource an agile project, one question to consider early on is just how much of the traditional agile methodology you want to adhere to. Because working with an outsourcer will almost certainly prevent you from using a completely agile framework.