Presets and a taste slider

Search for a command to run...

I have built a lot of internal tools, and I have noticed a pattern in the ones that actually help me versus the ones that waste my time. The good ones never ask me to specify what I want up front. They generate something close to what I want, and then they let me push it the rest of the way. I have come to think this is not a coincidence, and that the pattern generalizes to how all good design tools should work.
I call it presets and a taste slider. The more I build this way, the more I think it is the right model for a lot of creative software, and the more I distrust the alternative.
The conventional wisdom is that to build something well, you write a precise specification, and then you execute against it. Define the requirements. Pin the dimensions. Decide everything in advance, and then build exactly that.
This works for bridges. It is miserable for design, and I think the reason is that human beings are bad at knowing what they want in the abstract and good at recognizing it when they see it. Ask me to specify the ideal layout for a dosage chart and I will produce a spec, and the spec will be wrong, because I do not actually know the ideal layout. I only know a good one when I am looking at it. A specification asks me to do the hard part — knowing what is good — before I have any feedback, with my eyes closed. That is backwards.
Every time I have tried to spec a design in detail and then build to the spec, the result has been technically compliant and aesthetically dead. It met every requirement and felt like nothing. The spec captured the constraints I could articulate and missed the entire shape of the thing, which I could only see once it existed.
The pattern that works is the opposite. Build a system that can generate, on its own, something that lands in the neighborhood of good. Not perfect. Not specified. Just close — a plausible starting point that already has shape and opinion baked in. Then put the human in the loop to tune it, with controls that move the design along the axes that actually matter, until the human looks at it and feels that it is right.
The generation step does the part machines are good at — assembling a coherent whole from constraints, quickly, without the human having to describe every detail. The tuning step does the part humans are good at — recognizing quality and pushing toward it. Neither half tries to do the other's job.
I think of the controls as presets and a taste slider. Presets get you to a known-good region fast: here is the calm version, here is the dense version, here is the version optimized for scanning. Then a small number of sliders — taste sliders, really, because what they control is the feel of the thing rather than any measurable property — let you move the design from the preset toward your specific intent. A few moves, each legible, and you arrive somewhere that no spec could have described.
It is tempting to read this as a license to be sloppy — generate some stuff, vibes your way to an answer. It is the opposite. It demands more taste, not less, because the human is now explicitly responsible for the quality judgment at every step. The machine proposes. The human disposes. The human has to know what good looks like, or the tuning will tune toward nothing.
What it removes is not the rigor. It is the false rigor of the spec, the busywork of describing in advance what can only be judged in retrospect. The real rigor — does this thing actually feel right — is preserved and foregrounded. You spend your effort on the judgment that matters instead of the description that doesn't.
Stripped down, the principle is this. For any creative task where humans can recognize quality faster than they can specify it, build the generating system to land near the goal and the interface to tune the rest. Do not ask for a specification when you could offer a starting point. Do not ask for requirements when you could offer a slider. The specification model assumes the bottleneck is execution. It is not. The bottleneck is knowing what you want, and you find that out by reacting to something real.
I have stopped writing detailed specs for the designs I build for myself. I build generators instead, with a few presets and a taste slider, and I tune. It is faster. It is more fun. And the things I make this way are, consistently, better than the things I used to make against a spec — because every one of them was tuned until I actually liked looking at it, instead of declared done when it met a checklist I wrote before I understood the problem.
Presets and a taste slider. It is, as far as I can tell, most of the secret.