Focus on the Outcome Not the Means
The concept of outcome-first thinking isn't new in software development - coding agents just put this in the spotlight. You need to focus on the outcome not the means.
Instead of figuring out how to implement your next feature, focus on how to benchmark, verify, and test it. What does a good outcome look like? Design it. What are the criteria for success? Define the metrics. Our job is to design the system that allows a team of agents to achieve a desired goal in a repeatable and interpretable way.
Since we can generate several solutions against the same issue using different frameworks, languages, or approaches, we have to shift our attention towards evaluating and adopting the best offering objectively.
Here's a simple series of questions to run through:
What does my ideal solution need to deliver? Define success criteria.
How can I test performance on the client or server? Set some performance targets.
How can I generate a structured benchmark to feed back to the agent in a loop? This should be a debug harness or simulation you can run via script or custom view in playwright. Synthetic datasets work gre(storybookJS is useful here).
How can I ensure the agent stays on track? Adopt TDD - it is better for the agent to have this immediate feedback loop.
How can I ensure good design patterns are followed? Adopt fitness tests (hint: make sure you have fitness tests for your architecture!) to ensure the agent refactors as it works. You should incorporate architecture notes into the plan because things can go off the rails unless the agent sees errors from these tests as it works.
Software development has shifted from writing code to designing the guardrails, feedback loops, and tooling required for agentic systems to implement our tasks efficiently. This was important before coding agents and thankfully, we now have the bandwidth to do it. The time we spent coding the actual implementation has largely disappeared. The job is design and review. That's the single biggest shift I've seen with all of the rapid change over the past year.
I know it's different not to be as intricately involved with code. But it's a luxury to be able to design an intelligent set of constraints and build the aforementioned system that can get into the weeds for you. If you design the system well it will enable you to be far more ambitious than you ever were before and that's an exciting realization.