Everyone of course knows of the widspread anti-practice of not invented here, whereby many software companies overzealously rewrite software internally when an existing package would have worked fine. The net effect is normally a project that doesn’t work as well as the existing alternative would have, and which becomes a maintenance burden for engineering and operations teams forever.
I’d like to throw another in the same vein into the mix: not hosted here (NHH). Conformance to this idea involves the insistence of installing and maintaining a self-hosted system where leaning on an existing service would have been faster, cheaper in the short run, and much cheaper in the long run. It’s usually done in the name of compliance, security, or perceived need for customization or access to specific features, and can take many forms:
The most common consequence of NHH is the long term expense that goes into maintaining the hosted service. Where a cluster of Kafka servers might require a team of 1-5 engineers to operate in near perpetuity, using Kinesis requires none. Services like HipChat can usually operate fairly autonomously for longer periods, but without a caretaker will fall severely out-of-date with the current version, and may have difficult and time-consuming upgrade paths. The worst possible consequence may be related to security in that outstanding vulnerabilities won’t get patched as quickly as a hosted version. Other problems might include chronic unreliability, degraded performance as services are slow to be scaled up with usage, and frequent service outages for offline maintenance.
Did I make a mistake? Please consider sending a pull request.