This article is the first in a series of four blog posts by Breakthrough Technologies Managing Partner Doug Wilson about the Good, the Bad, the Ugly and the Future state of offshoring in 2012
The past year has been an interesting one for how offshoring is being applied to US software development. The economics have shifted, the way that enterprise software is being built has shifted, and public perceptions have shifted. In light of these changes, we'll examine what's good about offshoring, what's currently not working very well, and some of the longer-term effects for our software development industry. And we'll also offer some predictions about the future of the practice.
Let’s begin with The Good.
To analyze what's succeeding in offshoring, it's important to look at the economics, the domains and industries in which it is thriving, and the business structures, processes and systems that can make it work. India needs to be a major focus of this discussion since that seems to be the most frequent source of offshoring options for software development these days. Obviously, Ireland and the Philippines are strong contenders, and the rest of Asia and Russia are possibilities. But they currently lack the scale and predominance that India holds in the software development realm.
India maintains a substantial salary gap with the United States – a gap that by various accounts currently is pegged at about 80 percent. If you look purely at salaries, this means that a US developer is paid about twice as much as his or her Indian counterpart.
However, two trends are closing this gap. The first is wage inflation. The average Indian software developer has seen an annual rise in salary that has varied between 9 and 15 percent over the past five years. Compare that to the United States in 2006, where the average IT salary actually decreased by 1 percent from the previous year. While I don't have aggregate numbers on what's happened over the past six years, based on what I know through my involvement in the industry, and given the wage pressures from our recession, we have seen as many years of small declines as we have incremental gains over that period. I would fix the average annual US IT wage increases over the past six years at about 0.5 percent.
So advantage, India. But watch where we're headed!
Domains and Industries
So what are some of the domains and industries where offshoring is thriving? The call center is the traditional, and first successful, model. But many organizations that used to build and staff small teams of IT developers have found that working with an offshore IT firm can lower cost and eliminate the need for that organization to staff and manage a team of their own. This is particularly effective when working within a known architecture, like SharePoint.
The constraints of SharePoint mean that you don't have to make a lot of decisions as a development team and you don’t need a strong software architect to guide the offshore team.
Other frameworks exhibit this to a lesser extent - Java Spring, Microsoft .NET, and some Ruby or PHP frameworks. But the more open and extensible the framework, the more governance is required to implement features consistently and well.
One of the most successful models I have seen implemented is the "friend in a strange land" model. Typically this model begins with an immigrant tech worker on your technical team in the U.S. who has worked him or herself to a point of leadership. They then express a desire to return to their native country and build a team there. That, then, becomes a captive offshore model with an embedded lieutenant who understands your product, systems and company culture, in addition to the culture of their native country.
If you can manage the ongoing time differences and subsequent communication and deployment issues, this can serve as a golden model, although experience has shown that it often isn't stable after five years or so.
Why? As the captive shop grows, the experiences your lead brought with them are watered down, and eventually the captive shop, even with your expert onboard, starts picking up bad habits and behaving like other offshore shops. The fundamental problem is that there just isn't much beyond the initial inertia to drive these local and offshore organizations to work together. But during those early years this can be a very effective model and one extremely difficult to beat. I have had a variety of prospective clients who employed this model, measured the costs and schedules against those of my team, and I had to admit defeat.
Shifting focus to business processes, what is it that’s required to make offshore teams work? Here is the sad truth – you need a strong waterfall process. Many offshoring teams claim to be agile, but they simply can't operate in an effective way given the physical separation of the teams. Ask any scrum master the most important thing about a daily standup meeting and he'll say, "Everyone's gotta be there." Ask if he means “there” there, or “just on the phone” there, and he'll tell you, “You all have to be in the room.”
Why? Just attend a few “long distance” meetings with offshore teams that show only spotty attendance and see for yourself. The disconnected, remote standups are just that, everyone taking turns with status updates until the 30 minutes are exhausted. You can hear the click of fingers on keys as bored participants continue their work instead of listening, communicating and problem solving with their peers.
But watch what happens at the conclusion of a standup where everyone was present. People walk away in pairs or small groups, already engaged in helping each other resolve the barrier of the day. Quick, efficient, personal. It's all part of the process.
To be successful, embrace the waterfall. You must master requirements analysis and capturing user stories graphically. It is crucial to excel at coordination and planning because waterfall is all about making the tasks meet at release points and coordinating distributed activities. If all of these targets are hit perfectly you just might have a shot at pulling this off.
But don't call what you're doing “agile” because although it might be working, offshoring is anything but.