To make matters worse, using an agile methodology runs counter to most outsourcers' business models. "Every outsourcing company has its own methodology for developing software, which it wants to use for all its clients," says Alex Adamopoulos, CEO of Emergn, an IT consulting firm focused on agile and lean development. "That's not necessarily a bad thing -- they want to find ways to run their organization most efficiently. But it makes them less likely to adopt whatever methodology a client company is bringing."
Indeed, embracing an agile methodology is likely to make the outsourcing company's work considerably less efficient. "One of the benefits of agile is that you can take shortcuts while you develop in order to release more quickly. Then you go back and refactor the code later," Kenefick says. "But how do you do that when a third party is doing the coding? They want to get it done once, the right way. As an outside vendor, why would I want to rewrite the same code more than once if I didn't have to?"
Then there's geography. Many outsourcing arrangements involve working with programmers in parts of the world where labor is cheaper than it is in the U.S. But if moving a function across a room can disturb the agile process, moving it across an ocean is worse.
"A fundamental aspect of agile is really quick feedback," Kenefick says. "If you've got people in different time zones, you won't have those conversations as often as you need to. I'll write some code today, but then I won't get feedback on it for 24 hours."
That's one reason why the agile methodology works so well when teams are all in the same place, he adds. "It is very hard to colocate teams, but it's the first thing I'd put on my list of effective agile practices."
If outsourcing agile development makes a challenging job even more so, is it a better strategy to keep all agile development in-house? For a growing number of companies, the answer seems to be yes. "We're seeing a trend toward companies that have outsourced in the past choosing to invest in their own people's skills and capabilities instead," Adamopoulos says. "Smart companies are figuring out that the cost savings from outsourcing aren't that significant. For instance, one insurance company we work with is bringing more of its development for key projects back in-house so as to have better employee retention and less risk. Their view -- which has been that of a number of our clients here and in Europe -- is that traditional outsourcers aren't helping them get products to market fast enough or well enough. The change rate is slower on the outsourcer side, so to offset that, they're building up the capabilities of their own people."
That's the decision Medidata made last year when the company decided to expand one of its software offerings and once again took a serious look at outsourcing agile development. "We decided to hire and increase the size of our internal development team instead," Newbigging says. "We feel quite strongly that we're better off having our own developers building the software, and also being responsible for maintaining it, responding quickly to any issues. They are able to understand the software because they built it in the first place, and that's harder to achieve if the original development was done elsewhere. You don't have that same depth of knowledge."
Outsource for the right reasons
While keeping all agile development in-house may top the wish list of many IT leaders, it's not a realistic plan for every company or every situation. With looming technology skills shortages and pressure on IT budgets, some agile software projects will have to be outsourced.