Friday, August 26, 2011

Software Offshore Outsourcing: Good or Bad?

Software outsourcing itself is not bad. Small businesses can't necessarily afford to put in place an IT department. In fact, for small businesses, I generally recommend outsourcing their IT needs. However, between outsourcing locally and offshore, there is quite a difference...


Personal definition of software outsourcing: delegate the IT responsabilities to an outside firm.

Figure 1: An example of the possible loss of information due to bad projet management
Its important to understand that software development does not uniquely consist of programming. If that were the case, offshore outsourcing would probably be a viable solution.  In my case, there are three main reasons that make back-off from offshore outsourcing (even though I had many opportunities to do so).
  1. Project management:
    In almost every software project, the biggest challenge is to perfectly translate the customer needs in a software solution. The reality is that this is quite hard to accomplish and the difficulty is directly linked to the distance of the implicated actors. If the client, the managers and the programmers are regularly around a same table discussing the project, the better the chances are that the client will get what he expects. The opposite can result in Figure 1. It is not impossible to manage a project from a distance but it takes much, much more time and patience to get it right.
  2. Quality Assurance
    The QA team is responsible for finding bugs, advising the programming team and, once corrected, validate the changes. This process, even though simple, can be quite long if the QA team does not have direct access to the programmers. With the language and time difference, outsourcing tend to make this process more complicated and time consuming.
  3. Response Time
    This is probably the biggest disadvantage of using offshore outsourcing. Imagine a particular software bug just occured and you can't go on with your daily operations until it is fixed. If the programming team is offshore, you'll need to wait for them to get to work, explain the problem, have their team correct it, send it back and install it. This will generally take at least 1 or 2 working days to be completed. To avoid this problem, many businesses working with offshore outsourcing firms will have an internal or locally outsourced firm handling the emergencies. Thie fact of managing 2 teams obviously leads to other problematics and costs.
Don't get me wrong, I know some companies are able to work quite well with offshore outsourcing but I know none for which it wasn't a long and difficult  process.  Businesses that can handle this are generally large businesses that can have an internal team managing the outsourced programmers.  These companies will generally tell you that in the long run, economies can be made but not as much as you can initially think: you'll save on the programming costs but you'll spend more on the management, QA and support costs.

Even though I often hear businesses complaining on the quality of the code of the offshore outsourcing firms,  I won't comment on it.  The reason is quite simple: I've seen some local companies produce horrible code.  I therefore don't believe outsourcing is the cause: wherever you go and in whatever domain, there are some good companies and ... some not so good.

My personal opinion is that when software project management becomes too big, it negatively affects the flexibility and the dynamism of a software firm.  For this reason, I don't believe offshore outsourcing is the way  to go. Yes, certain costs will be reduced on a short term basis but on a medium or long term basis, the costs saved will be overpowered by the added support and management costs.

2 comments:

  1. Software outsourcing is not a bad thing or good thing as it all depends on the way it is being carried out. If perfect provider is chosen and if carried out in right manner there are pure chances to get good results.

    ReplyDelete
  2. Software outsourcing/offshoring is not always a bad idea to do, It all depends on to which company you are outsourcing and how much experience they are having in tackling that kind of work.

    ReplyDelete