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.
So how do you decide if it's right to outsource an agile project? Begin by asking yourself what you hope to gain from working with an outsourcer. "The ideal reason is so as to give immediate response to a business need," says Max Rayner, executive-in-residence at consulting firm Hudson Crossing. "Can you find ways to also have it lower cost? Yes -- but something important enough to be done in an agile way is likely to be worthwhile, whether you're paying $1,500 a day or $1,000 a day or $750 a day. By going to some of the lowest-cost countries, you can get a very competent programmer for $25,000 a year, including benefits -- but that's not necessarily going to help your project succeed."
Before joining Hudson Crossing, Rayner was CTO at TravelZoo and oversaw the creation of the travel search site Fly.com, for which he used an outsourcing company based in Lisbon, Portugal. "That was a 100% agile project using scrum," he says. (In scrum, small teams work on a specified portion of the requirements for a limited amount of time and hold daily meetings to assess progress and address any questions or problems.) "I was in California, so we had hardly any overlap in our work days, but it worked brilliantly. My morning was their evening so I would get to say, 'OK, yesterday we agreed you were going to do these five things. Did you do them? How's it going?' "
There were members of Rayner's team working on the project in California as well, he adds. "At the end of the workday, each team would hand off to the other shift. That's more complex than a traditional agile arrangement where everyone is in one location, but I was willing to take responsibility for the time, cost, and feature tradeoffs," Rayner says.
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.
Sign up for Computerworld eNewsletters.