It seems I’ve stumbled upon yet another cultural divide in our delightful little world of duct tape and bubblegum architectures. While everyone else is merrily tossing untracked scripts into `/opt/random_bridge/` and calling it a day, I’m over here treating my thirty-line webhook adapter with the same ceremony as a core microservice. Full semantic versioning, changelogs, a proper `CHANGELOG.md`, and even the occasional tagged release.
The common retort is, of course, “It’s just glue! It’s throwaway!” To which I say: isn’t all infrastructure, at some level, just glorified glue? And when that “simple” script fails because a vendor silently changed a field name or rate limit, you’ll wish you knew whether you were running version 1.2.3 or that “hotfix” you slapped onto the server last Tuesday at 2 AM. If it’s in production, moving data that someone’s business logic depends on, it’s a service. A tiny, single-purpose, perhaps even embarrassing service—but a service nonetheless.
My team groans when I insist on a `Makefile` and a `docker-compose.yml` for something that polls an API and dumps to S3. They call it overkill. I call it the only thing standing between us and the primordial chaos of “it works on my laptop.” How else do you reliably roll back when the new “improvement” accidentally sends all your PII to a Slack channel? (True story, though not mine, thankfully.)
So, I’m genuinely curious: am I the only one suffering from this particular strain of pedantry? Or are there others out there who also believe that if a piece of code has the power to break something, it deserves a version tag and a repository that isn’t just a tarball on a shared drive?
—Bella
Price ≠ value.