If you asked me a couple of years ago if I would ever outsource, I would tell you no way. I had seen an outsourcing project go quite wrong early in my career and never wanted to repeat that experience again. I should not have let one experience jade my view of outsourcing, but I did just the same. I was always of the opinion that outsourcing was bad and companies should never do it. Companies loose too much control and can never get it back. I felt outsourcing was slower than just writing the code myself.
Recently, my opinion has changed. Part of this change is a mind shift, while the other is a redefining of what I consider to be outsourcing. At my current employer, we needed to display large amounts of data to the screen in a fast and often changing environment. The tools that we had didn’t work. This left two options, create our own tool, or purchase a third party component. After much testing and failed attempts, we selected a vendor that provided the tool that we needed to accomplish our task. I consider this to be successful outsourcing.
Since that initial purchase of an external component, we have purchased a few more things to enhance our software. Two things lead us down this road. First was that our competitors had the capabilities and we didn’t. That meant that we had to quickly play catch up if we were to stay relevant in the market. Second, was that we’re a small shop and nobody in house had the experience or knowledge to create the components that we needed. This left us with a large learning curve and additional loss of market share, or the need to outsource the components.
In the end, outsourcing has been an excellent choice for enhancing our software and complementing our work in house. I don’t think that our company will be turning to IBM or Deloitte any time soon, but the option is now on the table.