Skip the navigation

Is your outsourcer agile enough?

More companies are choosing agile development to create user-friendly, quickly evolving enterprise apps. Here's how to decide if your outsourcer is up to the task.

By Minda Zetlin
March 12, 2012 06:00 AM ET

Computerworld - About four years ago, Medidata Solutions decided to switch from its traditional "waterfall" method of software development to an agile methodology. Medidata provides clinical testing solutions in a software-as-a-service model. "We made the change for all the usual reasons," says Andrew Newbigging, senior vice president of research and development. "We wanted to be more responsive to customer needs." At the same time, Medidata's IT leaders explored the possibility of outsourcing some of the company's software development. Though that might have made sense in the traditional waterfall world, they concluded that it was the wrong way to do agile.

"We do an iteration, get feedback, and iterate again," Newbigging says. "That works well for us, and we were concerned that in any sort of outsourcing approach we would lose that ability to be responsive -- and end up with a product our customers wouldn't want to buy."

It's an opinion that many industry experts share. "We have seen cases where folks were successful outsourcing agile development. But they were the exception, not the rule," says Sean Kenefick, an analyst at Gartner.

He and many other experts believe that the best way to create a pure agile methodology is to keep all development work in-house. Companies that do outsource agile development will inevitably face tough tradeoffs: They'll likely have to give up some agile principles, as well as some of the cost savings typically associated with outsourcing. And managing an outsourced agile project is likely to be more difficult than managing that same project in-house.

Nonetheless, a growing number of companies will have to face the challenge of outsourcing agile development. In a survey of more than 6,000 software developers conducted by VersionOne, which makes a tool for managing agile projects, more than 80% of the respondents reported that their companies had adopted agile development.

Meanwhile, the trend of outsourcing more and more IT functions continues. According to Gartner's IT Outsourcing Forecast, outsourcing expenditures worldwide grew 8% from 2008 to 2011, and will grow an additional 6.6% in the next two years. Judging from those statistics, it's clear that at least some agile development projects will be outsourced.

The Case Against Outsourcing Agile

Why is it so rare for an outsourcer to successfully deliver agile development? Consider that agile development is always challenging, even in-house, with everyone at the same location. "It requires a huge amount of discipline and cultural change, and a lot of buy-in from the group, from the lowest-level person to the highest executive," Kenefick says.

Even a company that is successfully using agile may find it hard to maintain, he adds. "It's a very delicate balance. I've seen a situation where everyone was working in a bullpen and the developers wanted their own offices. That change was enough to disrupt the agile process. Just by moving a function from one side of a room to another, you make something difficult even more difficult. If you outsource it and take it to another company, you've made it that much harder."

Agile Communication

Can We Talk?

When people on the East Coast arrive at their offices at 9 a.m., it's already 7:30 p.m. in Bangalore. That might not be a big problem in the old-fashioned world of waterfall software development, but if you're using agile, which requires constant communication among developers, testers and the business users of the software, having team members in different time zones poses a serious challenge. What can you do? Here are some tactics that have proved effective for successful outsourced agile projects:

1. Write detailed requirements. "When we need to exchange information about detailed requirements, the time difference is a challenge," notes Rene Rosendahl, senior manager in the project management office at Kelley Blue Book. "We're mitigating that by providing more detailed written information than would be needed if it weren't offshore. The goal is to minimize the questions that come back to us."

2. Use collaboration technology. Kelley Blue Book uses a tool called VersionOne to manage agile projects and keep the lines of communication open within its agile teams. And that's not all. "We are heavy users of instant messaging and email," Rosendahl says. "So if someone's gone home for the evening and offshore team members need information from that person, they might get it via email or IM."

3. Ask offshore workers to match your time zone. Many developers in other parts of the world approach agile development for U.S. companies by working hours that, to them, are odd. "Most of our team based near New Delhi are operating on Eastern time. That helps a lot," says Shane Aubel, CIO of the outsourcing company Tarika Technologies. The Indian workers are at their jobs from around 11 a.m. their time to 7 or 8 p.m., he adds.

It helps to not keep anyone on the late shift for too long, notes Kevin Quick, North America testing lead for Capgemini. "It's a rotational thing, so our people can manage their lives well," he says. "We learned the hard way that if we leave people on the late shift for too long, we tend to lose them."

4. Keep some team members onshore. "My biggest recommendation is to make sure that the designers, architects and engineers are located onshore," Aubel says. "We do a lot of the architecture, design and requirements, and then the specifications we send to the team are pretty well defined. It's just a matter of coding. The challenge arises when you try to start offshoring design and architecture."

But some industry experts are skeptical about this sort of approach for a truly agile methodology. "If you're doing waterfall development, it's OK to have a Java person who only knows J2EE," says Max Rayner, executive-in-residence at Hudson Crossing. "In agile, you want developers who think like business people. It's not enough that they can program. They have to be engaged and challenge the demands, thinking of the outcome rather than the process. So a lot of the outsourcing companies that are coder mills have a problem because they don't have talent that is able to engage with core business matters, just on how well their code is written."

5. Buy lots of plane tickets. Videoconferencing, instant messaging, document-sharing and remote scrum meetings all help, but in the end, nothing compares to meeting face to face. So IT leaders who've successfully managed offshore agile projects recommend frequent visits -- in both directions. "You may have parts of your onshore team going offshore to meet the offshore scrum team in person and introduce them to your technology," Rosendahl advises. "And you might also plan for offshore resources to come onshore to keep the exchange going and continue building these relationships. It's not cheap, and it takes effort and time, but it's well worth it."

— Minda Zetlin

Our Commenting Policies