Is Outsourcing Really Good Business?
Greed Ultimately Drives Business
In the pursuit for increased profits, companies are continually searching for opportunities to lower labor rates by moving operations to countries where labor is cheaper than the domestic workforce. In the United States this trend started with manufacturing and has continued with white-collar services such as technical support, help desks, and software development. This move is particularly lucrative when the foreign nationals speak English and India is the biggest benefactor of this trend because of the large population of college educated people who can speak English. And while senior managers and bean counters project large cost savings by outsourcing, I wonder, in the long run, does it really save the corporation money or are there hidden costs that management does not consider in their financial models?
What about the intangible side effects such as cultural differences, time zone differences, communication misunderstandings, and overall customer satisfaction? I would like to offer my opinions on the subject but I will freely admit that I have not been privy to anybody else’s perspective except my own and those around me (I also have experience as a consumer who has been forced to deal with offshore help desks, if you know what I mean).
Are Software Developers Commodities?
I currently develop software for a large financial corporation and have steadily observed functions within the organization move offshore and the associated domestic resource right sized (i.e. laid off). I have seen outsourcing start off small but it has grown more and more pervasive. As a matter of fact in my department the current goal is to outsource 30% of the staff. These are just target numbers to senior managers and bean counters but outsourcing is having a real effect on the American worker. I have seen whole development teams experience associate impacts (i.e. laid off) and their jobs moved offshore. I personally am under constant threat of having my job outsourced, continually asked to justify my existence even though my work and the work of my team speaks for itself. Are us developers simply a commodity that performs work that any person with programming knowledge can do? To me the answer is not only no but hell no!
Understanding the Problem You are Solving
To me developing applications is a form of art. Anyone can pick up a paintbrush and paint but what really matters is what is on the canvas when they’re done. Likewise, anyone can learn a programming language and write code but what matters is what that code does when they’re done. Although a painting is a good metaphor for writing software there is one major difference. The painter is free to express himself in any fashion that he chooses. The developer, however, must write an application that solves a need or problem that the intended users have. He may write the coolest most sophisticated application in the world but if it doesn’t do anything useful for anyone, who is going to use it? So by definition if an application is useful to you it is performing a task that simplifies your work or brings greater satisfaction to your life and that is what we developers are really striving for.
There are very talented software developers all around the world. Skilled developers are not limited to simply a handful of countries. However, I would assert that without a proper understanding of the problem that your application is trying to solve, your code will not be useful to anyone no matter how smart you are. So if you’re sitting halfway around the world and do not understand the problem domain you are working in, or if your software specifications are inadequate and vague, how could you possibly produce code that will delight your users? A deep understanding of the problem you are trying to solve is essential for a software application to be successful. You can develop this understanding by talking to users directly about the problem, or perhaps a talented architect can talk with a business analyst or users and capture his understanding of the problem in a detailed set of specifications. I personally have never met an architect that can do that, but my experience is just one data point. Moreover, iterative development strategies have become mainstream because users don’t really know what they want in the first place (once again I have made first-hand observations here).
Where Outsourcing Can And Cannot Work
There used to be a lot of people in my group like project managers, business analysts, developers, and production support staff. That team was responsible for creating a very successful internal application that is critical to the daily operations of the corporation. But after years of cost-cutting the team has been whittled down to four people. These guys are some of the smartest folks I know but we simply cannot make up for the past sins of mismanagement. Let’s look at a scenario where my current team of four gets outsourced because we have been labeled as strictly software developers?
I understand for the price of one of us domestic developers you can pay two developers in India. Great! We have just doubled the staff to eight! You MBA’s pat yourselves on the back and go off to your next meeting because your work is done here. But in the meantime who is going to manage that new offshore staff? Well I guess we need one domestic person to manage them. So who is going to define what the development needs are? Well I guess we need a domestic business analyst to work with the clients and gather their requirements. We’ll who’s going to translate the business requirements into software specifications? Well I guess we’ll need a domestic software architect to do that because he needs to work with the business analyst and hopefully understands the problem domain.
So there you have it. The original four guys played the role of project manager, business analyst, software architect, and developer but the “suits” only saw their official title of developer and assumed that’s all they did. So where you once had four domestic resources performing the job, you have three domestic and eight offshore resources. That must add up to some big cost savings because the Excel spreadsheet model said it would, right? Or perhaps the model is wrong.
You might think that I am exaggerating the situation, but trust me I have seen it with my own eyes. I simply do not believe that the financial models accurately account for the intrinsic side effects of outsourcing and tuning your financial models seems to get skipped in six Sigma green belt training.
To be fair I’m sure there are many situations where outsourcing works and saves the company money. In my mind it would work only if you could leverage economies of scale. If you were running a huge project and already had domestic project managers, business analysts, and software architects then throwing the software coding over the proverbial fence and letting the offshore resources handle it might work. I don’t know where the tipping point is but it sure seems to me that the smaller and more diverse your team’s skill set is the harder and harder it will be to realize any cost savings from outsourcing.
How Can You Remain Significant as a Developer?
I’ve pondered the question of outsourcing for a long time and have concluded that you must it morph yourself into more than simply a developer. You must improve your problems solving skills, your software architecture skills, your presentation skills and most important, you must develop your relationship and leadership skills. In short, you need to develop the skills to stand out in a crowd. The days of working for a single employer your entire career have gone the way of the pension…never again. I believe the best way to keep yourself employable is to learn a multitude of skills, like those I mentioned above, that people are willing to pay you for.
I have a friend who believes the American programmer is an endangered species. I think he’s right if you continue to maintain a narrow skill set. I believe in the future if you want to develop software in the United States you will need broaden your skills and perhaps take your game on the road. You’ll most likely need to sign-on with smaller companies that provide consulting services or with companies that are too small to hassle with outsourcing. But I am interested in what you think. This is only my assessment of the employment environment. What is yours?
No comments yet. Be the first.
Leave a reply