Josh Long often says that “production is the best place on the Internet.” But where I used to work, developers needed to negotiate with operations, networks, and security before their code could go anywhere near this promised land.
Understandably, each of these disciplines seemed to have the same hidden agenda: change is bad. Experience had taught us that change was difficult and error-prone, so as a company we’d become risk-averse and cautious about our deployments. Releases were infrequent and large. There was plenty that could go wrong.
In spite of this, every six months or so developers would bundle up their code changes into a release, write the release notes, create a rollback plan, and wait around until midnight on a Saturday to deploy it. The deployment would be done manually, and not by developers, but by someone in operations. Developers were strictly passengers on this particular release-train (after all, we’re “the people who write all the bugs” as my friend Coté…