A lot has been written about outsourcing and the flattening world and labor arbitrage and a global pool of talent, etc. etc. etc. I’m not going to repeat that here. This article focuses on the implications of outsourcing from the perspective of a software startup founder/CEO. Though most of my background is with U.S. startups (that’s where I live), the points in this article should apply equally elsewhere.
Lets go ahead and stipulate that there is a normal distribution of software talent across countries (i.e. India, China, Russia and others are just as likely to have smart, competent software developers as the U.S.). Lets also stipulate that there is the opportunity for cost reduction by outsourcing to countries that have a large pool of talent available at lower prices. This is reasonably well documented and understood –and my personal experience bears this out.
Despite the above, I am going to argue that most startups should not try and outsource their core product development. The rationale is very simple: software businesses are usually not a “cost play”. Basically, you are not predicating your success on the fact that you can build a product that solves a particular problem cheaper than anyone else. If you are, we really need to talk, as this is a risky strategy. Generally, most software company founders start product companies for one simple reason: fantastic profits because of low variable costs (and of course, the thrill of having many, many users). Basically, this means that once you’ve written the software, reproducing it has near-zero cost and assuming you can acquire customers cheaply, your margins are great. This is not hard to understand. This is why so many software people avoid service/consulting companies (there’s less risk, but also less reward).
In order to understand why outsourcing can be a bad idea, lets take a look at similar industries that have high profits (but also high risk): entertainment (the movie industry) and books (the publishing industry). In both of these cases, the model is to try and create the “killer” box-office hit. In the publishing industry, its about creating the runaway bestseller. Both of these industries rely on having a really, really successful “product” that many people will want and pay for. In both of these industries, the number of these “blowout successes” is also very small (much like the software industry). The challenge here is that success driven more by art than science. Nobody really understands what makes a bestselling book or a blockbuster movie (though some ingredients certainly increase the chances of success). Its not formulaic. Its not predictable. In your case, you are probably trying to build “the killer app”.
Software has similar attributes. Nobody really knows what the right mix of “ingredients” is that creates a product that thousands or millions of people will buy. But, that’s what many of us hope to build. Lets assume that you have a 1% chance of creating a reasonably successful product (in terms of revenues/sales). Lets say it would cost you 10,000 hours to build said product (at a cost of $100/hour, that would be $1 million). Lets say by outsourcing, you could reduce this cost by a fair amount (maybe bring it down to $250,000, if you were really good). However, I will argue that doing so would dramatically decrease the probability of you building the successful product. Its no longer 1%. Its considerably lower.
Why? Simple. Its hard enough to build a successful product when its coming from the “mind of the few” that spend long days/weeks together, sit across the hall, discuss customer feedback, debate usability vs. performance, timeline vs. quality and other “tradeoff” issues that are typical of any startup. Even when the distance between members of the team is measured in feet, its still hard to really communicate without something being lost in translation. In an ideal world, the founder (you) would have an infinite amount of time to create the killer app. If you could do this, your probability would go up (the product would be elegant, well designed, maintainable and something to be proud of). Many of the most successful products I know were effectively built by one or two brilliant minds (with supporting staff of course). But, you don’t have infinite time and non-trivial problems will likely take additional resources. So, you can outsource (and save some money) or you can try and find the best talent possible to minimize the risk premium you’re going to pay (in terms of impacting your probability of success). I advocate the latter. So, its fine if you want to outsource. Its fine that your development team members are not a few feet away (I’m using physical distance as a proxy for measuring “closeness”). But, you need to do it for the right reason. If the best possible person that you can find to work on your project is 3,000 miles away – fine. If they happen to be cheaper because they have a lower cost of living where they are. Fine. But, that shouldn’t be the motivation.
In summary: Trying to save money as the primary motivator for outsourcing in a software startup is being a penny wise and a pound foolish. There are other places to save money (which I encourage you to do). Just don’t skimp on the one single factor that will likely have the highest impact on your probability of success. You’ll be sorry you did (and won’t even know it). There are a thousand reasons why your startup might fail – try to avoid this one. If it were as easy as identifying a possible market, writing a 200 page specification document and finding the lowest bidder with the highest IQ, that’s what software startup founders would be doing everywhere. I assure you, they’re not. Not the savvy ones, anyways.
It doesn’t make it any easier that investors are often pushing for some type of “outsourcing strategy” as part of your business plan. My strategy is simple: Find the best talent you can find for your product and try to find investors that are sophisticated enough to understand and respect your approach.
But, that’s just my opinion. I could be wrong…J