Don't Automate What You Haven't Repeated Yet
Flexibility roots in potential. Concrete workflows kill it.
I used to think the goal of a good setup was to have a workflow for everything. A defined path for each thing I do, wired up, automated, waiting. That felt like mastery. It isn’t. It’s the opposite.
A workflow is frozen past. It only fits when the next case looks like the last one, when input and output are of the same shape. The more you nail down in advance, the more cases that don’t fit the mold you have to pry back open later. Every premature workflow is a small bet that the future repeats. In a fast-moving field, that bet mostly loses.
We love the flow of a workflow so much that we want one for everything. I’ve decided that’s nonsense, at least for me. The important thing is not the workflow. It’s that the structure around you fits your needs so well that you can instantly invent a sensible way to do a thing. An ad-hoc workflow. You build it in the moment, you use it, you throw it away. Unless you catch yourself doing the same thing again and again. Then, and only then, you automate it.
Automation is the reward for a proven repetition, not the wager on one.
The real asset is the substrate, not the pipeline
If ad-hoc workflows are the goal, then the thing worth investing in is whatever makes them cheap to assemble. That’s the substrate: the raw material you build from.
Good substrate has three properties. The pieces are small and do one thing well. They have the same shape at the edges, so anything connects to anything. And they carry no hidden assumptions about the order you’ll use them in. When your pieces are like that, a throwaway workflow is almost free, and nailing anything down in advance becomes pointless.
When your pieces aren’t like that, the friction forces you to build workflows just to paper over the bad seams. The workflow becomes a symptom, not a tool. That’s the tell. If you find yourself building rigid paths to make your own system usable, the problem isn’t missing automation. It’s bad substrate.
So the work that pays off is dull and structural: clean data with uniform edges, information gathered so it’s easy to look at and easy for other systems to consume. Not flashy. But it opens doors instead of closing them.
Interfaces are concrete poured over a moving target
Here’s where it bit me. I noticed the parts of my own system that drained me were the ones where I’d built a fixed interface around a concept I only half believed yet. A screen that decided how I should look, click, and act. It never sparked joy, and I kept blaming my motivation. Wrong diagnosis. I’d poured concrete while the ground was still moving.
A user interface is the most concrete thing you can build. It bakes a specific idea of the right way into pixels. That’s fine once an idea has earned it, once the case has proven itself to repeat. It’s a trap when the idea is three weeks old and the whole field is still shifting under you. Concrete you pour today over a moving target is concrete you chisel out tomorrow.
The parts that kept giving me energy were the opposite. Not the polished front, but the well-structured pile of information underneath. Because it stayed soft. It let me do anything with it later, from any angle, with any tool.
Keep the rigid layer thin
None of this means never build a workflow, never build an interface. It means be honest about what you’re buying.
A fixed path buys reliability at the cost of flexibility. Sometimes that trade is right: when the cost of a mistake is high, when something touches money, deletion, or safety, you want the rigid, boring, always-the-same path, precisely because it removes choice. And when other people have to operate the thing, a stable interface is a kindness, not a cage.
But those are deliberate trades for a known, recurring case. They are not the default. The default, especially early, when your insights might not survive the month, is to keep the rigid layer as thin as you can get away with. Invest in the soft stuff. Let the hard stuff earn its place.
Build the substrate so good that the right move is obvious in the moment. Then do the move. Then throw the move away.
You’ll know what to automate. It’ll be the thing you got tired of doing by hand.