By Abhijit Nadgouda, Guest Author
What do you think of when you hear the word outsourcing? I think of something that it is not. Traditional outsourcing is defined as contracting with another company or person to do a particular function. Many of us do this for two primary reasons:
* We give it to the corresponding experts if we do not have the expertise with us.
* We have the expertise, but we do not have enough time to do the task.
This happens across industries and across departments. It helps you focus on your task, achieve the bigger vision better and build a relationship in the industry. It also helps you keep your entity lean and fit without the need to use ad-hoc expansion plans. Overall outsourcing has a value proposition which can help you build your business in an easier and better way. However, recently outsourcing has been flagging another aspect quite vigorously which has overshadowed all its benefits; and all credit to the software industry for this.
Today outsourcing is all about cheap labor and price negotiations. Not that the other aspects are not discussed, but this is the point on which contracts are hinged. Higher quality, compliance with standards and transparency are included as a formality, not as merit. And this is the reason, in spite of being in India, I have come to hate the term outsourcing. The moment I say I am based in India, they assume that my key ability is to hire hundreds of people and get work done for a very low price. All calls shouting for quality and best practices go unheard.
Another aspect of outsourcing is to treat the outsourced work as a blackbox. You do not worry about the details as long as the output is as you desire. This is supposed to help, but it has ended up hurting more. The biggest reason for this is that only the short-term goals and partial outputs get specified. And the blame is on either side. As a client you want to get involved as little as possible and do not go the full length in participation, and the I as developer make a lot of assumptions, especially because it fits with my model of low-price service.
This does not mean that a blackbox is not recommended, but you have to pay extra attention elsewhere in this case. Make sure that the output gets specified in all aspects – functionality, quality, flexibility and security, and that everyone knows what their responsibilities are. This applies not only to big tasks, but even to small ones like development of the simplest web site. The key thing to understand is that software development can never be temporary, it will always affect the future in one way or the other. Building temporary solutions allow both parties to easily disown their responsibilities. Unfortunately outsourcing, as we know it, does not acknowledge this.
Software cannot work well for the business unless the technical decisions are based on the business decisions. A disconnect between them means that the business will have to make that extra effort to gain benefit from it. For maximum ROI a collaborative approach is a must, and this cannot happen without trust and whole-hearted involvement of both the parties.
I am close to dropping the term outsourcing altogether, unless we start bringing it back to what it meant. Right balance of the three factors – fast, good and cheap is what outsourcing can do for you. It can provide a bottom-line justification for your business, but not necessarily through cheap labor. It can provide a higher value through talent, high quality or agility.
Of course this means that there is more work in finding the one who can do your task. However, it will pay back in benefits once you can build a good and responsible relationship instead of a one-night stand, which ends up being just another blaming game.