|
|
|
|
|
by dfcarney
4511 days ago
|
|
How about, "Pick your battles"? I agree that it's ideal to own something vital to your business or a product, but if you're trying to validate an idea and get something to market ASAP then outsourcing and/or using 3rd-party services can make a big difference. Trying to do everything yourself is a slippery slope. Related: http://en.wikipedia.org/wiki/Not_invented_here |
|
1. Things which aren't essential to your business. (e.g.: things that could be replaced by nothing (even if just temporarily))
2. Things which meet the definition of a commodity, in the formal 'fungible goods' sense of the word.
Many .?aaS offerings fail both of these tests in that they're an essential component of a service, and also fail the commodity test in that there is qualitative differentiation between offerings. The features of EC2 (used to their fullest) are wildly different than those of Rackspace, and the two are only really fungible with one another across a small subset of their feature sets.
Examples of offerings that pass this commodity test include:
- Most mailers (sendgrid, mailgun, postmark, &c) when used simply. Switching from one backend to another isn't a huge endeavour, as they are all cut from conceptually similar cloth.
- VPS offerings when used simply (notice a pattern here?). A basic Ubuntu box in the cloud is a basic Ubuntu box in the cloud.
In contrast, Stackmob, Parse, et al. all fail this commodity test hard. Switching costs are very high (especially with Stackmob, whose iOS SDK bleeds anti-patterns all over your app), data migration is a nightmare, and major architectural assumptions can vanish in an instant
Part of the bargain of leaning on non-commoditized offerings to back essential services is accepting the risk that they may one day leave you in the lurch. In the metaphor of technical debt, outsourced services are extending you credit to finance your technical debt. Having one of your outsourced dependencies close up shop is really just them calling in their debts.
Of course, there's no right answer. I agree completely that the point is moot unless you ship; the GP wasn't really intended to be imperative; it was meant (or at least it was always how I understood it) as more as a heuristic to assess the risk associated with outsourcing a core dependency that can't be easily hedged.