The Software Purist |

Nov/09

21

My Experiences With Software Outsourcing

In this edition, I wanted to discuss the somewhat controversial topic of software outsourcing. I have now experienced it personally, having worked at one company that heavily employed this tactic. On a technicality, the company actually was doing more off shoring than outsourcing, since the company had a second office in Ukraine and any outsourcing done was also in this country, in an attempt to pool resources and minimize risks. Because of this, I think I’ve become pretty intimate with outsourcing and plan to discuss the scenario I saw and the results that I can see.

The first thing to note is that at various times I was either directly or indirectly managing and mentoring other developers in a foreign country. There were a lot of challenges I saw with this mechanism and because I this I think I can provide a somewhat unique perspective on outsourcing and how the company handled it.

Structure

I need to give some background as to how my company handled the structure. The offices were treated as two separate offices with parallel hierarchies. Neither office necessarily had authority over the other, except for the president and CEO. However, there were additional levels of implied hierarchy, where it was clear that if certain people were involved that they needed to be listened to, even if there were disagreements. I believe this implied hierarchy naturally occurred due to (or perhaps, in spite of) the company’s resistance to putting a more formal structure in place. Now, this was the official hierarchy. Unofficially, and unfortunately, the company appeared to have no faith in the Ukraine developers getting the job done without being babysit. So, a parallel structure of project management existed in both offices, where the US Project Manager’s job was to babysit the Ukraine Project Manager, whose job was to babysit the developers in the Ukraine office. I will discuss this is detail below.I personally do not advocate this approach, but this is the approach they seemed to use.

Time Difference

The first major issue I noticed and noted was the time difference. Ukraine is 7 hours ahead of the eastern time zone, and so it left only a two hour window during the work day to intercommunicate and coordinate. It is extremely tough to give a day’s worth of instructions with this small window. Furthermore, as a developer in a US office, when you come in in the morning, the Ukraine developer is getting close to ending his day. This provided a number of challenges for both sides, including the fact that you’re just getting started and they’re in a panic because they know once your office is ready to talk, that they may not be able to get much or any more work done for the day. Additionally, it’s ultimately very hard to coordinate when you give instructions that, if you were in the same office, could be attended to that day, but due to the time difference, it has to wait a night. The trouble of getting critical information and then letting it sit for a night can be different for everyone, but oftentimes the information can become only partially represented because it may not be fresh anymore.

If you have new instructions to provide, there’s a good chance the developer won’t be able to attend to them until the next day. This leads to two critical problems that I noticed. The first is that schedules will need to be stretched, because the critical communication, which often needs to happen at multiple key points during the day is uncomfortably crunched into two short hours. Because of this, the developer cannot not attend to a critical piece on the same day that you need it. The second is that they will take the instruction, but not have you for reference to verify a piece they didn’t understand for most of their day.

Communication

Furthermore, the majority of communication is done via e-mail, instant messenger or Skype. None of these means are nearly as effective as having a person physically there to communicate with. This situation was further compounded by the natural language barrier, speaking with people who natively and fluently speak Russian, but not English. This wasn’t immediately clear for a while after I first worked with Ukraine developers. Communication was frequently done via Microsoft Live Messenger, and it just seemed the developers were responding slowly. It turns out that they were actually translating the phrases using a tool, such as Google Translate, and then translating back before responding. This was an unfortunate tactic, because for a long time, it seemed that they just weren’t listening, when in fact, many of the issues stemmed from the simple problem of bad translation.

Cultural Differences

One of the biggest challenges of outsourcing is facing a vastly different culture. I would say the most noticeable cultural difference has to do with communication style. In the United States, a degree of modesty is part of normal and required etiquette. Rarely is it acceptable to send an email or direct communication to more people than necessary. However, in Ukraine, I noticed that their style dictated more directness, which took some getting used to. For the individuals I worked with, it was common to send an email with an issue about a person and CC the CEO, President, and the entire development team, even though this issue could’ve been resolved with a much smaller group of people. This took a long time to adjust to.  I’m not sure if this is common or potentially just an issue with certain individuals.

One issue I saw in my company was that the company never invested any time in damage control. If a colleage was badmouthed, the time wasn’t spent to correct the misinformation, so without a rebuttal, damaging rumors become accepted truths.  In addition, there was a different level of work ethic and responsibility. Deadlines often were not enforced equally among the offices. I believe this was mostly due to upper management’s approach. Upper management appeared to approach things as if, because they were cheaper, they would get more leeway.

Conclusion

In this post, I talked about and addressed some of the challenges with software outsourcing. In the upcoming part II, I will explore this further and start to draw some deeper conclusions based on what I’ve experienced.

When it goes live, Part II will be here: http://www.softwarepurist.com/blog/index.php/software-outsourcing-part-ii/

·

17 comments

  • Dave B. · November 21, 2009 at 10:59 pm

    Wow, interesting. I have noticed similar with outsourcing to India. I can certainly see and understand the difficulties. It’s a shame that outsourcing is considered so attractive for some companies.

    Reply

  • older · November 24, 2009 at 11:17 am

    It seems that you have experience working only with one Ukrainian company but you’re judging what is common and what is not “in Ukraine”.
    In Ukraine (as in the rest of the world) you’re getting what you’re paying for.
    Can you elaborate, how much developers were paid in your company?

    Reply

  • softwarepurist

    Author comment by softwarepurist · November 24, 2009 at 11:31 am

    Hi older. Thanks for your feedback.

    I do agree that perhaps it is a broad generalization. I think a lot of the issues were related to the hierarchy that my particular company used, so it was intended as being more of a condemnation of that sort of structure than necessarily all outsourcing. I think the strategy can work if it’s treated like a separate office with a limited set of points of contact. However, having people babysit and then pay 1-2 US salaries and then multiple Ukraine salaries where it would’ve just been 1-2 US salaries otherwise, because of all the overhead doesn’t really make sense, in my view. But, again, that was how my company did it.

    I shouldn’t really get into the specifics of salaries on this blog, because it is somewhat confidential information. Because of this, I’ll give some broad generalizations. As a mean, I would say that the US employees were making approximately 20% less than the norm for equivalent experience, according to some salary sites I visited. The Ukrainian employees were making 6-8 times less than their US counterparts. When you take that into account, factor in the fact that the company was already getting a deal on the US employees, so the Ukrainian salaries were also below average. As you suggested, it could be a case of getting what you pay for.

    Reply

  • Maksym · November 25, 2009 at 6:54 am

    I agree with previous commenter that usually you get what you pay for, but in my opinion it is the problem of management on the both sides of ocean. I also work for Ukrainian software outsourcer. And to be assigned on any project we have to pass usual two-round interview with the customer representatives. Speaking English is a must. As for cultural differences, probably it’s true but only partially. Yes, sometimes personally I include my manager in copy of the emails, but I do this only in cases when I have to make something which I don’t completely agree to, and which I’m not sure will bring good consequences. Don’t take it as offence, but there is a practice in companies that outsource – when something goes wrong, it is easier to say “those guys from overseas made all decisions on their own and here’s the result”. So I want to be responsible only for my own mistakes.

    As for time difference, yes, it can be a problem, but it is exaggerated too much.

    To conclude: outsourcing doesn’t differ much from usual hiring. You still have to filter out appropriate candidates instead of just accepting the team you are given(this is common mistake of western companies when they have “partners” which provide entire teams). If you do this, and additionally conduct usual reporting activities regularly instead of babysitting, most of the problems are removed.

    Reply

  • Alexei · November 25, 2009 at 7:33 am

    The salaries of Ukrainian developers are not 6-8 times less than US ones. I believe the ratio is 1:3 or even 1:2.
    So the company paid too few to expect good result and qualified personnel.

    Reply

  • Vadim · November 25, 2009 at 8:35 am

    While reading this article, I planned to reply with some objections, but Maksym have already posted most of what I had on my mind. So, instead of objecting, I’ll try to give some advices.
    Oh, yes, btw, I’m from Ukraine and I do outsource programming for Dutch company. This makes only 1-hour shift, so that’s easier than with US.

    First, if your working times crosses for 2 hours only, than, probably, you can try to shift working time for Ukrainian office, say not 9 to 18 but 10 to 19, or 11 to 20 – I know some guys, who prefer to sleep more in the morning but work later in the evening. Not the best solution, but kind of.

    Another way to improve process, is to use a piece of agile approach – when a team has only single member, responsible for communication with the customer (US office, in your case). This person should have good language skill, and probably his/her schedule should equally cower US and UK working time. Using this approach, a problem with poorly-English-speaking programmers can be solved too.

    Reply

  • Saint · November 25, 2009 at 11:15 am

    Have you tried to resolve this problems? How?

    It really looks like terrible management & hiring from both sides.

    P.S. My company is located in Copenhagen and we are using Ukrainian during last 5 years or so. I am quite happy with results.

    Reply

  • softwarepurist

    Author comment by softwarepurist · November 25, 2009 at 7:07 pm

    Hey everyone. Thanks for all of the insightful and interesting comments. I wanted to take some time to address them.

    I definitely agree with the consensus that it is a management problem. I did suggest some ideas for improvement, but ultimately it was not the direction that upper management wanted to go, so other than individuals who wanted to take some steps to improve, the process didn’t improve that much.

    As for including the manager in the emails, I think that’s a little different than what I experienced. I experienced individuals CCing half the company, including the CEO, on flame emails, and this was not discouraged by the company.

    I do agree with the premise that they were paid too little, although, from my understanding, the salaries in Crimea are a bit lower than around Kiev, naturally. But, yes, the company was discount shopping, which I think was a lot of the problem. In one occasion, we did outsource a developer in a different area of Ukraine, paid a bit higher hourly rate and got better results. So, I do agree that sometimes you get what you pay for.

    As for the time difference, the company had a set policy that employees in both countries started at 9:30, which left for the two hour overlap. I suggested having us start earlier and having the Ukraine office start later. This suggestion was rejected.

    Finally, we had only approximately one out of four employees as fluent English speakers. If it was my decision, as suggested, I would’ve had the percentage much higher. The idea of using a more Agile approach as a solution is interesting — I definitely agree with limiting the points of contact. It reduces complexity a lot.

    Reply

  • Yuri Ivanov · November 26, 2009 at 11:05 am

    Don’t know where you have get people in soft development who don’t speak English and use google translate for this. I am from Crimea from Simferopol and know almost all companies there 🙂 In all companies that I know there are responsible/experienced people who can lead team and manage tasks.
    May be you was “lucky” and it wasn’t not software company? 🙂

    and about deadlines … pls tell me how often have you seen that teams actually meet deadlines? It’s general problem in IT and first of all it’s a PM problem how well he knows his resources.

    If you are Developer/Team Leader you should speak with your developers directly without Ukrian PM. And don’t say it’s too hard to change. There is NO big companies that will refuse to find some compromise, if you really interested in it and pushing hard.

    Also you should fly to Ukraine and try to work with the team and understand where is the problem

    Reply

  • softwarepurist

    Author comment by softwarepurist · November 26, 2009 at 1:22 pm

    Hi Yuri. Thanks for your feedback. I think some of the original text was ambiguous, upon review. What I really was intending to highlight was that I didn’t feel the company was handling things right and should have given the foreign office more autonomy.

    Overall, I think your advice makes sense and I thank you for presenting it.

    Reply

  • cencio · November 26, 2009 at 4:39 pm

    best wishes for Thanksgiving day 🙂

    about the post. imho your are describing failure in building offshore/remote team and office. The situation when you have to babysit developers in the office established several years ago is weird. Performance differences in 6-8 times compared to the USA programmers is very strange too. Does company have some ramping up period for developers? are there any trainings(tech and English courses).
    I can not understand how developer hired in UA after 1 year work for the company can do 6-8 times less than their US counterparts. why? Did anybody analyze this? any attempts to fix this?

    Reply

  • Ruslan · November 26, 2009 at 4:42 pm

    There are bad programmers everywhere, that’s international. The same stands for the bad managers.

    In your case it seems to be a mix of both, to a certain degree.

    However, the whole post reads as a classical logical fallacy of taking some particular case from the experience and making general assertions based on that:
    http://philosophy.lander.edu/logic/converse.html

    (Disclaimer: Yes, I am an Ukrainian programmer. No, I did not use Google Translate to write this.)

    Reply

  • Alexander Alfimov · November 26, 2009 at 5:57 pm

    Hi!

    I personally think the first thing you need to check is developers (over)load. Most of the developers/managers I worked with knew english good enough to respond quickly, however they were simply either not aware of what you’re asking them and needed to contact another person for status update or were just overwhelmed with status requests. This is like if you’re young and full of energy and you are absolutely sure you will be able to work on 5 or even 7 projects at the same time (usual practice for young developers in Ukraine). Time difference isn’t a problem itself. There is a lot of companies in xUSSR (including Ukraine) working on US schedule (for example, our managers will work up to 4am with US colleagues if this is required).

    Another thing which is “a must” is to show how much you appreciate any extra effort. Developers (not the upper management) should see that, remember that and keep in mind that every time they write a code.

    Don’t forget about risks management.

    Request a time estimate for every task you’re assigning to the offshore team. Add 20%-30 to every estimate (don’t tell the team about it though). Don’t even start working on a project without having signed off requirements and technical specifications (a MUST for successful projects). Write specifications yourself. If you cannot create it, check every line of the document created by offshore team. Check, discuss, edit and sign off.

    Also, check how much do you pay them. Make sure developers are satisfied with what they earn at a final stage 🙂

    I hope this helps.

    Take care.

    Reply

  • Oleksiy Zubovskyy · December 5, 2009 at 12:42 pm

    Yes, you are right, use your national development team. As I know US specialist are much better than Ukrainian or Indian ones and it is true.
    Somebody wants to save money… or somebody wants to earn money by using cheap programmers outside… there is the only difference.

    Good luck.

    Reply

  • icopvollima · December 13, 2009 at 11:00 am

    What’s up one, I’m brand-new to the forum and just wanted to impart hey. hi leaning get to recollect unexplored pepole and allowance stuff with them

    contain a happy year

    Reply

  • softwarepurist

    Author comment by softwarepurist · December 14, 2009 at 6:38 am

    Welcome to the forums, icopvollima. I hope you enjoy reading my blog. 🙂

    I also wanted to mention that I received some really great comments and I know I didn’t directly address them all point by point, but I just wanted to mention that I appreciate all of them.

    Reply

  • icopvollima · December 16, 2009 at 9:47 am

    What’s up one, I’m new to the forum and justified wanted to approximately hey. hi devotion get to grasp unusual pepole and slice tackle with them

    have a glad year

    Reply

Leave a Reply

<<

>>

Theme Design by devolux.nh2.me