How to delay automation of your deployments and ruin your life
By not having a build, you build character
When you first build your system, it’s just you, your stupid startup mascot dog, and a few coworkers. You don’t have time to automate the deployment system because you aren’t sure if any of this will be around a month from now. This continues for a few (dozen) months, and by that point, you have:
a clear understanding of how (most of) the entire system works because you just wrote it
A Word document that lists 85% of the steps needed to deploy the software. If these instructions are followed by anyone other than you, a chain reaction starts that ends with your entire company getting arrested
So, the process is basically automated.
And you have all these new features to write, so you keep going. You hire some new programmers onto the team, and you can’t be bothered to onboard them right now, so you give the tall, quiet one the task of building a deployment system. It is a great way to learn the system, you guess. When they get halfway done, assign them one of the features that was supposed to be done months ago. Repeat this process with new developers into the next presidential term. Collect half-built deployment systems and pretend you are doing a “bake-off”. Because your system keeps changing, the usefulness of these proof(s) of concept1 expires, and you feel like you need to start over from the Word document again.
Trying to carve out some time to build it, you try to do this using official channels. No customers or product people ever ask you for an automated deployment system, and every time you try to explain why you need one to them, it sounds like:
you are currently incompetent
you were incompetent in the past and just recently became competent, like just now
you are speaking your silly tech gibberish again, saying pretend words like “tech debt”
Now you have two options:
Wear the shame of the terrible deployment process like a bad face tattoo, daring anyone who steps to you
Ignore the problem until you change jobs or rewrite the system
CONCEPT: you can build software to deploy software
PROOF: all serious software does this