2009-05-05

IT Outsourcing

Outsourcing of IT services - especially software development - has been a very common behavior of companies. We can either see separate outsourcing of support so that you have finally a local call-center with a lot of students just picking up the calls and taking notes plus software development very far away in a very cheap eastern country.

I never really understood the big benefit of outsourcing as there are serious drawbacks on the other hand like
  • Know-How is pulled away from the company.
  • Communication channels get inefficient (e.g. several people involved while nobody is communicating in mother tongue, physical distance, different time zones, ...).
  • The cheaper employees often do have less qualifications.
  • Cultural differences may introduce additional obstacles during the collaboration.
One major fact, that companies should understand: Good software developers are difficult to find. You can find a lot of cheap coders, but there is usually a difference in the output quality (clean code, sufficient comments, good component design, ...). This applies for other IT services also but especially for software development.

Outsourcing can make sense under the following circumstances:
  1. There is a clear and compact technical specification of what to implement.
  2. The project is smaller and/or not to be tightly integrated into a lot of other projects.
  3. Few dynamic adjusting of the application at the customer necessary (so the far away from the customer the better suited for outsourcing).
I have experienced that the time from the need to the finished implementation of a solution is much shorter, when development is moved towards the customer (so doing the contrary to outsourcing). The response to changes in the priorities and goals are much shorter - even more, if there are no consultants in the middle. From the productivity point of view the direct connection from the developers to the customers is the best - but attention: There are prerequisites and pitfalls:
  • For a developer that is in close contact with the customer there are more qualifications needed than just being a good coder and being a good software designer: There are communication skills, project management skills, understanding for the business point of view etc. necessary.

  • The biggest mistake that is made often at this point is to act faster than to think! What I mean is, that both sides should think double before ordering and implementing a change request.
While in big software projects (or in big software companies) often the progress of development slows down massively, in very small projects and companies often there are shortcomings in software design.

Related posts: IT project costs explosion, The features, The small software vendors.

No comments: