Recently, I have been having various conversations with people about Offshore Development Centres (ODCs). Offshoring was quite popular some years ago, and it has become a standard practice by many development shops these days to be able to leverage a (diminishing) development budget.
I have worked with various development teams, many of which have been offshored, and last year, whilst CTO of Aegeon Corp, I was responsible for moving much of the development of Aegeon’s products to an ODC. In the selection process, I screened dozens of companies and ultimately travelled to China to make a final selection.
In recent discussions with people, I realised that many people (developers and managers) are quite uninformed about the issues of outsourcing. They tend to get quite hung up on items that have become redundant, or at the very least, are issues that are quite common that many ODCs have more than adequate mitigation in place, and overlook some of the more important issues.
In this blog posting, I intend to uncover some of the myths that are being spread around when managers plan to set up an ODC.
1. You must stick with the Major Tier 1 Cities
When sourcing offshore providers, we tend to go to the major technology hubs in popular offshoring countries such as India and China. And although there is a certain advantage working with companies in these countries (since they have now reached a certain level of maturity and experience in the industry), you do not necessarily need to put your teams together in cities such as Beijing, Mumbai, Shanghai or Pune. In fact, doing so means that you are likely to be paying a premium rate for little business benefit.
When travelling to these countries, you soon realise that many of the resources that are working in the capital cities are actually sourced from many of the Tier 2 cities. Since cost of living in the tier one cities is higher, rates for resources are higher. For example, in China, you will pay 10-25% more for resources in Beijing and Shanghai, than you would for the same calibre of talent in Dalian, Chengdu or even Guangzhou.
Remember the talent pool to choose from in these countries is greater than the entire population of some countries.
2. Beware – any IP developed offshore is going to be pirated!
This is always an issue regardless if you offshore, but there is a certain amount of uncertainty knowing that it may be difficult to prosecute any pirates in foreign countries. But in reality, there is a lot going on both abroad and locally to combat this.
For example, any technology parks, and any half decent companies are very stringent and provide a high level of control an police this quite effectively. For example, when in China, I discovered that technology parks in Beijing and Dalian had their own prosecutors and courts to administer fines and even jail terms for any individuals that are accused and convicted of piracy (particularly in ODCs).
Additionally, you have to consider what the real risk is. In some instance, if you are developing an autonomous desktop application, you may want to be careful how to approach this. But if you are developing a web application, remember that the technology is only a small portion of the product. The strategy, go-to-market and marketing in general is what is going to make the product a success. Do you really think the pirates are going to have the wherewithal to successfully pirate and market such a product?
If there are certain aspects of your application that are unique that is sensitive to the success of the product if it were to be pirated (such as algorithms or particular workflows), you may want to consider ensuring the development of those aspects locally.
Finally, you have to accept your ODC partner exactly as that, a ‘partner’. So there needs to be a certain level of trust. You have to accept that ODCs are not in the business of pirating your software but developing software for clients like yourself. You will be one of many, and the best reference for this are the testimonials you will receive from their other customers.
The quality of the code is going to be poor
This is one of the most prominent myths I come across, and sure it may have been true several years ago, the reality is that most of the resources working on the projects are going to be quite senior. When you talk to the companies running the ODCs, you realise that they have extremely stringent resource acceptance criteria, such as high IQ, top percentile of university graduates and high expectations of English language.
In most cases, the quality of code I have seen is as good and sometimes better than a lot of the code developed locally.
But don’t let this myth get mixed up with the reality that sometimes, your ODC does not clearly understand your requirements. So you have your requirement, you believe that you have documented and described the requirement to the n’th degree, and then when you finally get the code, it is not what you expected. This is a communication issue (which could happen to your local team if left unsupervised as well), and does not mean that the quality is rotten.
It is not possible to run projects using Agile methodologies with an offshore team
Because of the fact that your team is remote does not mean that the team cannot be run using Agile methodologies. In fact, I believe ODCs lend themselves quite nicely to Agile development, particularly if you select an ODC that is in a relatively good timezone as you.
You can have daily stand-ups, write your requirements as stories, manage them into sprints and allow your remote team to use disciplines such as TDD and pair programming. You just must accept that the team is remote, and the biggest challenge is communication and interaction with that team, particularly when clarifying requirements. So make sure you pay close attention to the communication aspect (hence why timezone helps). But see point 7 below for more detail.
Stick to the large ODC providers
Sure there is more security and better processes with the larger ODC providers, but there are 2 downsides that you will have to take on board (in my opinion outweighing the benefits). Firstly, you are likely to pay 25-50% more for resources from larger ODCs as they have greater overheads, and secondly, if you are a start-up or smaller organisation, you are not going to get the top class developers or attention from these companies. They will be reserved for their blue chip clients. Remember, companies such as Microsoft, Cisco, SAP amongst others are outsourcing as well and pumping millions of dollars into these companies, and those customer will get the top notch service, no matter what you think.
As long as you shop wisely, and do your homework on your ODCs you will find some great smaller ODCs where you will be one of their premier clients and will receive the attention you deserve. The quality of resources are still going to be fantastic, and you will be able to screen who works on your project anyway.
I cannot recommend enough the benefits of physically visiting your team and ODC. The cost to travel there a couple of days will probably be the equivalent of a few days of development time from that team, should be budgeted in the project and is money well spent.
Language and Culture are a huge barrier
Sure, this is a barrier, but I do not think that these days it is a huge barrier. Most resources that you will be working with in your ODC (particularly the senior ones) will have exceptional English. Many ODCs encourage all their resources to speak English constantly in the workplace so they can get the practise.
This will be a diminishing issue as the project carries on, you will soon discover what the constraints and difficulties are, and how to best communicate with the team. For example, in a project I ran with one ODC, I initially conducted stand-ups over IM chat (as written English was more comfortable for the team), but after that became impractical, we moved to telephone calls with the team leader who would convey updates on behalf of his team. As the rest of the team became more confident with their English, they would start to participate and you would all soon be working as one autonomous team.
A big no-no is to alienate the team and treat them as outsiders. The sooner you accept them as part of your team, and ultimately your company, the sooner you will get better results from them. Remote teams, like local teams, will take great pride in their company, and if they feel to be part of your company, that can only benefit you
Give your ODC team instructions and let them write code
This is not as much a myth as it is an expectation that most people adopt that infuriate me when they finally admin that the ODC failed! I constantly find local teams (product managers and subject matter experts) passing on their instructions and then walk away from the development hoping to get a great result at the end. Managing the ODC team is a full time job, just as it would be managing a local team.
I have found that the best mix for a local team to manage a remote team is a product manager and one technical lead. Both these resources need to be available 100% of the time to the remote team, but as the project progresses, the demand on them will be less.
The product manager will be responsible for clarifying requirements and final user testing, whilst the technical lead will partially act like the architect and review the results of what is delivered. I believe that the cost overhead is certainly bearable considering your remote team would cost 60%-75% less than a local team.
So there you go, that is what I have discovered in the last few years working with ODCs, do you have any opinions and your own experiences? I would love to hear about them.
RSS feed for comments on this post. TrackBack URL
The 7 myths of outsourcing your development: http://tinyurl.com/ddmgfq
The 7 myths of outsourcing your development: http://tinyurl.com/ddmgfq
FavesNews The 7 Myths of Outsourcing your Development:
Shared one time http://tinyurl.com/ddmgfq
#recommend Excellent post from @snaglepus. The 7 Myths about Outsourcing Development -> http://tinyurl.com/ddmgfq
My experience is actually setting up a team myself. I totally agree with “Managing the ODC team is a full time job”. Technical skills of the offshore team is definitely good, the key is to provide easy to understand specification and have a well thought through execution plan, things can go smoothly. I wouldn’t recommend relying on an offshore team to come up with smart solutions to difficult problems.
It is often too difficult to communicate the pain of the problem in the first place.
Rob,
After reading this, I wonder if you would want to see your own children become software developers themselves, or if you would advise them to go into a different field?
@Rex Chung
Communication and ensuring that the offshore team feels like part of the core team is critical to the success of an ODC. Leaving the ODC to their own devices is the easy path to failure. Likewise, leaving your local team with simply a spec and coming back in 3 months hoping for a perfect result is a recipe for failure.
@Dean Shulze
Besides the obvious comment of “I would support my kids with whatever they chose to do”, I don’t believe the offshore teams have killed local development. I can feel a whole new blog post in regards to this, but one of the points I would highlight is ‘innovation’. Your ODCs are very unlikely to innovate, you still need locally motivated bright minds to do that.
An interesting conundrum
Rob,
Regarding innovation, I’d say no more than 10% of software development requires any real innovation, if even that much. What the vast majority of software projects need is just good design and good code (which is surprisingly hard to get).
If most non-innovative development is offshored, that doesn’t leave much left.
What I’d really like to hear from someone like yourself who is in the forefront of offshoring is what do you think career prospects are going to be like for US software developers in 5 – 10 years?
A pretty interesting article. I agree with your views in this. Outsourcing or local development both require constant attention.
@Dean Schulze
I think you need leave your narrow minded thinking.
Do actors from other countries complain when “Hollywood” rakes in most of the box office collections?
Do (traditional) Musicians from other countries complain when crappy (2pac and Biggie are still awesome) Hip Hop albums out their records.
When was the last time you stood up against McDonalds and Wallmart when they started up in other countries and ran the local mama-papa shops out of business? ( I know you face this in the US, I see a lot of posters of “Buy Local” around)
@Luke M
I don’t know or care what actors or musicians in other countries think about Hollywood or Hip Hop.
I don’t know what you think is narrow-minded in my comments. I’m looking for some insight from someone with expertise in offshoring to plan my career path several years in the future. I don’t plan to end up like one of the laid off steel workers in the 1980s when Japan and Korea took over steel production.
I hope that’s not too narrow-minded for you.
@Dean Shulze
I don’t think that only 10% of software dev is innovation. To me innovation also means the technical innovation that you go through with architecture and other design (such as security). There is the obvious advantage of having the ‘plumbing code’ done offshore. But Its a balance. To answer your question, I don’t think that it lessens the opportunities for developers, in fact, I think it broadens the opportunities.
I have found that my local devs have learnt a lot from their offshore counterparts, they have shared experiences and learned a lot from each other. Which has made for better quality and experienced code.
In my last company, when we took the decision to offshore, there was the same old reaction of people fearing of loosing their jobs. That just wasn’t the case, in fact we got more on. We had different problems to solve and we could focus our local devs to work on things such as innovation and architecture whilst the offshore guys worked on some of the plumbing and what I was calling fringe apps components such as plugins.
There is a rapid growth of Outsorcing these days as manufactures try to cut cost and maximize profit.,*`