A friend and I were talking about how sometimes in a small company, it feels like you move at a snail's pace due to a shortage of hands, minds & bodies. He was wondering about the possibility of chopping things up and outsourcing certain parts of the product in order to move the whole thing forward faster.
It's something I've been asked about before and thought it was worth jotting down my thoughts. As a general rule, I'm not a fan of chopping and outsourcing anything that is supposed to be a "core competency" of your business. If you're a software company, then your product, your software, is your core competency.
The reason I'm generally against it however, is not simply a matter of style or personality - there's a method to my madness. Generally speaking, chopping things up into modules (and worse), having them developed by people outside the core team is a great way of producing what I call a "Frankenbaby". That's a piece of software that looks and feels like it was stitched together from pieces of different products, rather than being "crafted" by purpose. You all know the kind of product I'm talking about.
But it's more than that. "There are lots of products out there like that and they're selling just fine.", you'd say. Well yes, but if you look closely, here's what you'll see:
Big companies and small companies sell things differently.
Big companies can sell Frakenbabies. Small companies can't. Big companies can get away with it because they sell on a completely different level than small companies.
Big companies:
- trade on an established (trusted) brand - you may not trust them to treat you like anything other than a number, but at least you know they'll still be in business tomorrow when you want to call them to complain and they're not very likely to just take your money and run like those vendors that used to sell XRay glasses by mail order on the back of comic books when you were a kid (damn them!)
- sell by the spreadsheet - the concept of "feature per dollar" comes into play and since user experience or quality are very hard to quantify, they very rarely make the spreadsheet
- sell to department heads who aren't even the actual users of the products they're buying
- usually sell based on services as much as software (especially with enterprise software)
Little companies however:
- sell directly to users (small to mid-sized companies) rather than to big company department heads, so user experience and quality are more obvious to the people paying the bill
- have no established brand and therefore have no choice but to "do it better" than the bigger guy just to close a sale (or get raped on price competing with an economy of scale)
- have to be careful about bundling too many services with the product to "finish it off" because the model is tougher to scale than a 100% product based solution
A lot of software companies try to act like big companies because they think that's how they will eventually "be" a big company. The truth is, you have to be really good at being a small company first before you get the chance to grow into a medium sized company, and finally a big company if you're lucky.
Small companies should choose the best strategy for their situation, rather than just trying to follow suit with the big companies - the same strategies do no necessary apply because the context, environment and players are different.
Plus, chopping & outsourcing does one other thing that can be very bad, especially for a small company: it robs you of the experience gained by doing it yourself. Experience counts for a lot, especially in research heavy fields. "Production"-type fields, not so much. Pump out widgets as fast and as cheap as you can.

Comments