Globalizing Software Development

Nov 22, 2017

Outsourcing Sucks!...Wait...What?...This Actually Works Great!

In one sentence, this title sums up my journey from outsourcing skeptic to believer. First, a little background on me. I am an American living on the east coast who has been in the software industry for 20 years. I have been a hands on developer, manager of dev teams, and qa teams. I have held senior management positions and built highly effective development organizations. I have worked in small, medium and large companies. Startups to big name companies. Insurance, real estate, commercial software companies. Basically I am saying I have some experience in the software field. Along the way I have had some exposure to software outsourcing. I want to share a little of my experience.

Now, if you are an American in software reading this, I have a pretty good idea of what your experience is and what you are thinking. You're thinking "Mike, outsourcing sucks. I have had horrible experiences and so has everyone I know". I hear ya. Usually it's a ton of frustration and crap quality jammed down your throat by management that THINKS it's a great deal because it seems cheaper. You and I know that's not the case in the traditional outsourcing model. Supposed cost savings are eaten up by onshore fixing of low quality work which is hard to show on a budget line item. The onshore team is frustrated. Life sucks but management thinks they are saving money. Welcome to your new life in a typical outsourcing scenario.

Now before some of you start yelling at me about how I am being unfair and not all situations are like that, I'll say that it's common enough that almost anyone in US software who has actually written code will roll their eyes when you start suggesting offshore development is a good thing. You might also be a CEO or CFO who doesn't know shit about software development. You guys are generally responsible for the poor reputation of offshore development...no offense. Not all of you. I know some great CEOs who get it.

So, why does most offshore development suck? It's quite simple. The whole typical offshore development model was built on a faulty premise. I'm not going to go into detail of what the "typical" model is. I think most of you know what I am talking about. So what is that faulty premise? "I can give you 3 software developers for the price of 1 US developer in <<insert name of low cost country>>". Or something similar. Sounds like a great deal! Sign me up! Says random CEO or CFO (Sorry for picking on you guys). Now this would work if the job entailed something like, I don't know, pushing a button a la Homer Simpson. But for those of us who know about writing software, it is as much art as it is science. And one software developer does not equal another. They are NOT widgets. The whole appeal is cost savings based on the idea that software developers are interchangeable. Plenty of companies bought into this went down this path. Unfortunately, what often got lost here was quality. More often than not, the offshore developers were not of the same skill level as their US counterparts. Language and cultural differences caused various amounts of frustration and many in the US software market tasked with actually ensuring quality software got built were left disillusioned and frustrated. Again, I am speaking in generalizations and there are plenty of situations that worked out well. But the offshore industry would have a MUCH better reputation in the United States if more people had positive experiences. That does not seem to be the case.

Ok, you might be asking "If outsourcing sucks so much, how did you become a believer in it?" I'm getting to that. I was like many in the Software Industry. I hadn't had any positive experiences with outsourcing and I didn't know anybody that had a positive experience. I was working at a mid sized software company and was told by management "We will finally give you the developers you have been asking for to build the product...oh, it will be offshore, here is your partner...make it work" It probably didn't go exactly like that but you get the basic gist. My first thought after this meeting was "Oh crap. This is going to suck" I bet a number of you have been in that situation. So there I was. An outsourcing skeptic with no choice other than to make the best of it. Little did I know that the best of it was going to be pretty damn good!

So, what was different about this experience? Primarily the partner and the location. I was working with a provider whose team was based in Ukraine. Ukraine you say? That's like Russia right? Yes, Ukraine. No, its not like Russia...it's Ukraine. I'll be honest. I didn't know a damn thing about Ukraine at the time. Like most Americans, I also thought Russia and Ukraine were basically the same place. I also thought it was cold. I will sum up my knowledge like this. I thought Ukraine and Russia are the same. When I thought of Russia, I thought of Siberia, which is cold. Therefore I assumed Ukraine was just an extension of Russia and freezing cold. None of those things are true. In the past 5 years, I would say I now know more about Ukraine than 98% of all Americans and maybe even more than a lot of Ukrainians. I know its politics, its culture, its people and most importantly for this topic, its IT industry. And the Ukrainian IT industry is what has made me a believer in what outsourced software development can do for US companies building software.

What's different about Ukrainian outsourcing specifically and Eastern European outsourcing in general? It is based on a different philosophy than the typical outsourcing models. The focus is on delivering value as opposed to simply low cost. Ukrainian outsourcing is not the cheapest. If you want to get the cheapest rates possible, look somewhere else. And let me know what your product is because I want to avoid it. If you care about software development, you want to get the best quality possible at the best price. And that my friends, is what Ukraine has to offer. The strong education system, the long, rich history in technology and engineering as well as the large population means that Ukraine has some pretty damn good software developers. I put them on par with what you can find in the US. Its not up for debate. Ukraine produces some really skilled tech people. Your costs will be about 50 to 60% of what you would pay in the US and you get literally, no drop off in quality. Like I said, if you give a shit about your software product, then quality is what you want. Comparable quality at almost half the price? Now that is something worth signing up for. That is what the promise of offshore development was always about. Lower prices AND good quality. Ukraine has that figured out.

So back to me. What was so great about my experience with Ukrainian outsourcing? Really, it comes down to the people. We built a team of around 20 which included developers, QA and analysts. One thing that we did differently is that we treated the offshore team the same as the onshore team. Essentially they were just team members in a different location. We already had two separate US locations as part of the team and a few remote workers in other parts of the US. Our Ukraine team was just a third location that included a timezone difference. My philosophy and approach to offshore teams is to treat it the same way you would when building a local team. We were involved in interviewing everyone for our team. We brought them to the US for at least a month to start. We integrated our sprint teams. We used video conferencing extensively. We got to know them. We built a great team and treated them as equals and we were rewarded with a group of dedicated employees who were engaged, who were accountable, and who felt ownership and took pride in their work. Our team in Ukraine was an extension of our team in the US. They were partners in the truest sense of the word. They were invested in us and truly wanted us all to succeed. I often tell people, I could have probably built an equal team of onshore US based employees, but I couldn't have built a better team.

You might think "Mike, you got lucky, you worked with a company that happened to have some good people". That wasn't the reason. No company has a team of people waiting for you to come along. Almost everyone we hired was recruited for us. Some were available because other projects were finished. Any provider that tells you they have a team of people just waiting for you is lying. Who would pay people to sit around and do nothing? The fact is, we built a good team because there was a great available talent pool of highly qualified people. Oh, and cost? The cost was about 50-60% of what we would have paid for a comparable team in the US. I am not going to say that you can't have a positive experience with outsourcing in other locations. I have had positive experiences in other locations. Most notably, South Africa. But I do believe if you want to give yourself the best chance to succeed, you should choose a location that has the biggest pool of the strongest available talent. And in general that is found in Eastern Europe and more specifically in Ukraine.

Have questions? Want to know more about my experiences in outsourcing and with Ukraine? Let me know how I can help you! You can find me on LinkedIn: www.linkedin.com/in/mike-mclaughlin-81a9443 and Twitter: @infiniteblinker or send me an email: mike@infiniteblinker.com.




0 comments:

Post a Comment