Coderrob brand logo Coderrob

Hi, I'm Rob—programmer, Pluralsight author, software architect, emerging technologist, and lifelong learner.


Planning the Planning: The Agentic Software Development Paradox


Tue, 21 Oct 2025

Planning the Planning: The Agentic Software Development Paradox

You know what’s wild about working with AI agents to build software? The planning. Oh boy, the planning.

Not just a plan - that would be too simple. No, no. We’re talking about:

  1. Creating a planning document
  2. Planning the planning (because that first plan will encounter the enemy)
  3. Planning the planning of the planning (we need to go deeper)
  4. Having an agent review the plan to identify any planning not planned in the plan
  5. Having another agent revise the plan after being told to plan the planning based on the planning and the current implementation

It’s like Inception, but instead of dreams within dreams, it’s plans within plans within plans. Plan-ception, if you will.

And yet… despite all this recursive planning madness, here’s the thing: it actually works.

From “Measure Twice, Cut Once” to “Only Describe Once”

Remember the old carpenter’s wisdom? “Measure twice, cut once”?

Well, welcome to the agentic era. We’ve got a new mantra:

ODO: Only Describe Once

You describe what you want. The agents plan it, review it, refine it, validate it. Then you implement - once. Successfully. Guided by all that beautiful documentation and specification work that happened in planning space.

No more:

The agents are basically playing out all those failure scenarios in planning space before a single line of code gets committed.

The Planning Feedback Loop

Here’s how this typically plays out in my workflow:

graph TD
    A[Start: Feature Request] --> B[Agent 1: Create Initial Plan]
    B --> C[Agent 2: Review Plan]
    C --> D{Gaps Found?}
    D -->|Yes| E[Agent 1: Revise Based on Feedback]
    E --> C
    D -->|No| F[Agent 3: Validate Against Current Implementation]
    F --> G{Compatible?}
    G -->|No| E
    G -->|Yes| H[Agent 2: Final Review & Sign-off]
    H --> I{Approved?}
    I -->|No| E
    I -->|Yes| J[Agent: Execute Implementation]
    J --> K[Done: Working Feature]
    
    style A fill:#e1f5ff
    style K fill:#d4edda
    style J fill:#fff3cd

It’s like having a whole team of architects arguing about the blueprint before the construction crew shows up. Except the arguing happens in milliseconds, and nobody’s ego gets bruised.

Why This Actually Makes Sense

I know what you’re thinking: “Rob, I can code an implementation faster than I can describe it.”

And you’d be… partially right? But consider this:

The Cost of Planning vs. The Cost of Implementing Wrong

Traditional Development:

Agentic Development:

The math is… compelling. And here’s the bonus: those planning artifacts? They’re reusable. Share them with your team, fork them for similar features, or archive them as documentation. The planning effort compounds over time.

The Agents Catch What You Miss

When you have multiple agents reviewing plans from different angles, they catch stuff like:

It’s like code review, but for your intentions.

The Pattern That’s Emerging

After working this way for a while, I’ve noticed something: the planning is the implementation.

Hear me out.

In traditional development, you plan in your head (or in a doc that gets outdated immediately), then translate that plan into code. Two separate steps, two opportunities for things to get lost in translation.

With agentic development, the plan is executable. It’s detailed enough, reviewed enough, validated enough that the implementation step becomes almost mechanical. The agents have already “implemented” it in planning space multiple times.

The code? It’s just the final serialization of that plan.

You only describe once. The agents make it real.

This is essentially specification-driven development - an approach where the planning of the planning becomes formalized. You’re not just writing requirements; you’re creating executable specifications that agents can iterate on until they’re implementation-ready. The spec isn’t separate from the code - it’s the blueprint that directly informs every line written.

The New Developer Skillset

This shift means we need different skills now:

These aren’t your typical coding skills. You need to know how to structure information so agents can parse it. You need to understand data schemas, taxonomies, and classification systems. You need to think like a librarian organizing knowledge for future retrieval.

And that edge case creativity? That’s where your domain expertise shines. You’re not just thinking “what should happen” - you’re thinking “what could happen,” “what shouldn’t happen,” and “what happens when Murphy’s Law kicks in at 3 AM on a Friday.”

The more precise your domain language - whether it’s “idempotent REST operations” or “eventual consistency in distributed systems” - the better the agents can refine the plan. Generic descriptions get generic results. Domain-specific precision gets production-ready implementations.

We’re becoming software conductors more than software writers. We’re directing the orchestra, not playing every instrument.

The Irony of It All

The funniest part? After all this planning, after the recursive meta-planning, after the multi-agent reviews and validations…

Sometimes you still need to go back and adjust something.

Not because the plan was wrong - the plan was beautiful. But because the context wasn’t sufficiently defined.

No amount of planning can prevent the classic software development experience of building the perfect solution to the wrong problem.

So, Is It Worth It?

Yes. Absolutely. 100%.

Here’s why:

  1. You describe once, implement once (the ODO promise)
  2. Quality is consistently higher (agents are pedantic in the best way)
  3. You catch issues early (when they’re cheap to fix)
  4. Documentation comes built-in (the specifications guide the implementation)
  5. You focus on interesting problems (not boilerplate)
  6. Complete specs eliminate guesswork (no more “I think they meant…”)

The planning might feel excessive. It might feel like you’re planning the planning of the planning plan (because you literally are). But when that implementation happens cleanly, correctly, and quickly?

Chef’s kiss.

The Bottom Line

Agentic software development isn’t about writing less code - it’s about describing once and implementing once.

We’ve moved from “measure twice, cut once” to Only Describe Once (ODO).

You create your plans, best practices, processes, standards, and instructions. You have agents review and iteratively refine them until they’re ready. Then you implement - often on the first try - because you’ve got complete specifications guiding the way.

The planning might feel excessive. You’re literally planning the planning of the planning plan. But when that implementation happens cleanly, correctly, and quickly? When you ship a complex feature in a fraction of the usual time, with fewer bugs, and you actually enjoyed the process?

That’s when you know ODO works.

Welcome to the future. It’s meta, it’s recursive, and it’s surprisingly delightful.

-Rob