I run a software company called Knowledgeone Corporation and I receive many unsolicited contacts a week from mainly Indian companies wanting me to outsource RecFind 6 development and support to them. They must live in a different world to me (which of course they do) because I hate dealing with outsourced anything, particularly help desks.
I have promised my customers I will NEVER outsource support (because they deserve better) and I have promised myself that I will NEVER outsource development (because I deserve better).
I regularly converse with my peer group in the industry and hear the horror stories from those that have had their development and/or support outsourced to an Indian or worse, Filipino location. I hear the same horror stories time after time.
The senior executive that instigated the outsourcing may well be getting bigger bonuses (or even secret commissions) and basking in his/her ‘success’ but down deep in the organization where the real work gets done no one is happy. The customers are also not happy and most would happily change suppliers if they could find an organization that hadn’t outsourced its development and support but that is a tough ask in today’s world where greedy and corrupt executives care much more about themselves than their customers and staff.
I have been managing software developers for over 30 years and I know for a fact that you cannot run a development team from thousands of miles away. My programmers sit outside my office and I talk to them multiple times every day and also hold regular formal review meetings. I also have them do peer reviews of work in progress and I regularly amend the specifications as we ‘discover’ roadblocks on the way to completion. They come and talk to me throughout the day and ask clarification questions or suggest better ways to do something.
The point is software development is an interactive, ‘living’ process that relies on the open exchange of ideas and a healthy interaction between team members. As the guy who writes most of the specifications I regard myself as a team member and most importantly, do not believe I am infallible. I need the interaction and so do the programmers. What we do is very, very complex and no one, even someone as experienced as me, can get the specification one-hundred percent correct on day one. Ego has no part in software development because this process is always one of cooperation, shared intelligence and open dialogue; the team produces the result, not the leader.
My peer group tells me that outsourced software development does not work even when you go to ridiculous lengths to make sure that the specification is as clear and as unambiguous as possible. By ridiculous lengths I mean doing things like actually coding the solution in process diagrams of pseudo code and creating all the algorithms and decision tables as addendums. The code that comes back is always immature, unfinished and lacking in core logic and architecture. It always has to be massaged by the local guys and even then it often goes to the customer in an unacceptable state. The ‘cost’ to the long-suffering local guys is high as is the degree of frustration. The monetary cost is rarely calculated because it involves additional time and lost time and delayed releases and much snarling and grinding of teeth most of which is invisible to the person on top who orchestrated the outsourcing just as it is invisible to other board members and shareholders. However, internal disgruntlement like this is a cancer and it will eventually behave like all malignant cancers and grow and spread and destroy.
It is a similar situation with outsourced support when the poor service level erodes customer loyalty over time and ensures a high customer churn rate. Again however, these ‘costs’ are rarely visible to board members and shareholders until it is too late.
I am pleased to see a new trend (in the USA at least) whereby companies are bringing back outsourced work (is it called insourcing?), employing locals and making their customers, staff and local city/town a lot happier. It is a great and welcome trend but so far it is just a trickle and there are still far more companies outsourcing than insourcing.
In my business at least (software development), outsourcing will NEVER produce the desired result if that desired result is focussed on quality rather than cost. Nor will you ever really save money because of the hidden and ignored costs that always accompany outsourced software development. I guarantee however that you will save money by insourcing because as long as you select your local team carefully you will be able to accomplish your work with just one quarter the number of programmers you had in India; hire quality, not make up numbers. Five experienced Americans or Australians or Canadians will easily do the work of twenty Indian interns and produce infinitely better code in the process. Never has that old adage been truer, “You get what you pay for”.
You will lose money, you will lose great staff and you will eventually lose customers if you put cost ahead of quality.
Bring it back in-house and retain your reputation, your best staff and your customers; it is a no-brainer if you really do have the best interests of your company, your staff and your customers at heart.