“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler
PUDO extends this idea: Good developers give AI instructions that produce understandable code.
The rise of AI coding assistants (ChatGPT, Claude, Gemini, GitHub Copilot) has fundamentally changed how we write software. But most developers interact with AI the same way they’d Google a Stack Overflow answer — reactively, without structure, one question at a time.
This leads to what we call chaos coding:
PUDO is the antidote. It’s a methodology that gives developers a repeatable, structured process for working with AI assistants — turning them from unpredictable oracles into reliable pair programmers.
The #1 failure mode of AI-assisted development is diving straight into code. When you skip planning and understanding, you’re asking an AI to solve a problem it doesn’t understand, in a codebase it hasn’t seen, with constraints it doesn’t know about.
PUDO’s first two phases (Plan, Understand) exist to front-load context. The more context your AI has, the better its output. This isn’t a theory — it’s a directly observable pattern.
PUDO is drawn as a cycle for a reason. In practice, phases bleed into each other:
The phases are a compass, not a cage. They tell you where you are and where you should go — they don’t force a rigid sequence.
PUDO doesn’t treat AI as a fancy autocomplete. Each phase explicitly defines what the human does vs. what the AI does:
| Phase | Human’s Job | AI’s Job |
|---|---|---|
| Plan | Define goals, set constraints | Draft the plan, identify risks |
| Understand | Provide context, validate analysis | Research, analyze, map dependencies |
| Develop | Review, approve, test | Write code, track progress |
| Optimize | Validate, merge, deploy | Refactor, benchmark, document |
This separation matters because AI excels at breadth (scanning a large codebase) and speed (generating boilerplate), while humans excel at judgment (is this the right approach?) and taste (does this feel right?).
Each phase has a definition of done — you know when to move on:
| Phase | Entry Criteria | Exit Criteria |
|---|---|---|
| Plan | A new task, feature, or bug | Implementation plan reviewed and approved |
| Understand | Approved plan | Confident mental model of the system |
| Develop | Understanding of codebase + plan | Feature complete, tests passing |
| Optimize | Working implementation | Code reviewed, documented, walkthrough written |
Without exit criteria, phases blur together and structure collapses. If you can’t articulate what “done” looks like for a phase, you’re not ready to leave it.
Think of PUDO as a zoom lens:
Each phase shifts your perspective, ensuring you never lose sight of the forest or the trees.
"I follow the PUDO method."
That's how frameworks spread.