I No Longer Care How My Apps Get Built! 🧭
I used to specify the input in obsessive detail. Now I specify the output and the fences, and let my agent find its own weird way there.
Hi everybody - For most of my career, building software felt like planning a road trip back when a paper map was the only thing you had:
I would start with where I wanted to end up, and then spend nearly all of my energy on the path. Which highway. Which exits. Where to stop for fuel. How long each leg takes. By the time I actually started driving, every interesting decision was already behind me:
In software terms, the route was my tech stack, my folder structure, my data model, my API shape. I wrote all of that down carefully, and I wrote it down first. For the KIRUPA site, I even wrote about and recorded a video walking you all through the arcane process I use.
All of this planning and pre-work felt like a chore. Worse, this process wasn’t perfect. I was being extremely precise about things I could not possibly know yet. Traffic, construction, whether that clever shortcut actually exists. The plan looked confident because it was detailed, not because it was correct:
Every project I have ever shipped rerouted at least once. Usually a lot more than once when I learned more about user preferences and had to course correct to meet the new destination.
Today, I Set the Destination and the Fences
These days I do something that my younger self would have called reckless. I describe the output, I describe the boundaries, and I let my agent work out the middle.
I stop planning and let my agent drive:
The path it picks is frequently not the one I would have picked. It doubles back. It builds something, throws it away, tries a different angle. On the map it looks inefficient, yet it arrives at the destination.
I wrote about a version of this a while back, when I told an agent to optimize for a fast code, build, and test loop, and it went and picked PHP. I would never have chosen PHP on my own today. Measured against the fence I actually gave it, PHP was the right answer and I was wrong.
What Actually Changed
Both worlds have a specification. Going output-first did not make me less specific or less details-oriented. I just shifted where my attention was focused on:
I have also not become hands-off. What the agent generates back is usually about 70% of what I wanted. So I look at it and I nudge until the destination gets sharper:
This is where things like product sense and taste come into the picture in full force. Without a clear picture of what you want the destination to look like and the refinements you need to make to will that into existence, your agent will define a route that won’t meet your or your users’ expectations.
Conclusion
The old instinct was to define the process and trust that a good result would follow. The new one is to describe the result precisely, fence off the things I genuinely care about, and let the process be whatever it needs to be.
Now, you may be asking whether this approach scales to real-world scenarios. What if you need to handle a billion concurrent users? What about enterprise readiness and compliance? What if some random bug causes data loss for some user? These are all valid concerns, and today these may require a little more human intervention in the input-side of the problem definition. Longer term (like say, 3 months from now!) this would just be a detail we tell our LLM to handle for us.
Curious whether you have made this switch yet, or whether you are still route-planning out of habit. Reply to this email, post on the forums, or find me on Twitter / X.
Cheers,
Kirupa 😇








