My one company HumanXtensions provides outsourced staffing in India and the Philippines. We offer software developers, testing, data entry, transcription, and several other services. I am completely convinced of the value of outsourcing, and got into the business when I started to use global resources for my own start-up businesses.
I do know that there is a lot of controversy about outsourcing from the numerous sales conversations that I have been in. There are a lot of people who see outsourcing as a threat to American jobs, and some people voice this to me very loudly. 🙂
I wanted to offer a few suggestions about an alternative way to look at outsourcing. If for a moment people can step back from the conversation, and look at things objectively, I believe they will see both a value, and an inevitability.
Specifically related to the software industry, I believe that our schools and higher-education curriculum are doing a huge disservice to Computer Science students. For some reason we are stuck in a model of teaching programming which seems to promote the software developer building applications completely from the ground up. Although we teach “object oriented programming”, we also teach the students to create all of the objects themselves!
There is almost no other industry that follows this model. If you were to look at the automobile industry, this would be like suggesting that the car manufacturers build all of their own nuts and bolts, windshields, gas tanks, wheels, tires, and floor mats. But that is not how it is done. Likewise, in the construction industry what contractor is out there cutting his own lumber, making doors, windows, toilets, and door knobs? None!
These industries, and I’ll argue almost all others, have evolved to understand the value of leveraging the value of other companies who can focus on the creation of components that can be used in their business. Automobile companies can focus on the core designs, and customer experience. Contractors can focus on constructing homes.
So why is it in the software industry that we want to pay our best and brightest software developers to sit around creating the “nuts and bolts” of software? Why are they spending their time – and your money – working on creating foundation elements of a software project that could be created elsewhere much more cost effectively?
I believe that the value of outsourcing is that we can leverage our own developers talents, and also leverage the cost-effective talents of a global resource pool. Our schools, in my opinion, would be educating CS students better if they were teaching courses on how to leverage outsource resources to create software. Not how to build every single object and component themselves, but how to define the specifications and manage remote developers. This would allow them to focus on the bigger problems, the overall architecture, and the core business that the software will target.
I can almost see the day that when I am reviewing resumes for software developers and I am looking for their experience working with outsourced resources. I would want to see information about the number of remote developers they utilized, and the tools they used to manage the distributed project.
In fact, I can see a day when I review a resume of a software developer, and he/she includes the details about the outsourced team they will bring with them if I hire them. I believe that the real future of being a software developer will be to become someone who understands how to leverage the value of the growing global pool of software developers. They are not going to go away …