They ask the AI to build the entire project.
Something like:
“Build me a full SaaS app that does this”
The result?
A messy codebase.
AI tries to generate everything at once, and the architecture usually falls apart.
After experimenting with AI coding tools, I’ve found a workflow that works much better.
Think Like an Architect, Not a Prompt Engineer
The key idea is simple:
You design the system. AI helps implement pieces of it.
Instead of asking AI to generate the whole project, break it down.
You decide:
architecture
folder structure
data models
API design
Then AI helps implement one piece at a time.
A Better Workflow
Here’s the process that works well for me.
Design the architecture first Before asking AI for code, define:
project structure
database schema
API routes
major components
Example:
/api auth.ts users.ts
/services userService.ts
/components Dashboard.tsx
This prevents AI from inventing random structures.
Ask AI to build one file at a time Instead of:
“Build the backend”
Ask:
“Create an Express API route for user registration with email and password validation.”
Or:
“Create a React component for a dashboard that displays a list of projects.”
Small tasks = much better results.
Review and refine Never paste AI code blindly.
Check for:
unnecessary complexity
security issues
inconsistent patterns
AI is great at generating code, but developers are still better at judging it.
Use AI for boring work Where AI really shines:
boilerplate
tests
simple CRUD endpoints
documentation
refactoring suggestions
Let AI do the repetitive work.
Focus your time on system design and product decisions.
The Real Shift
AI doesn’t replace developers.
It changes the role of developers.
Instead of spending most of our time writing code, we spend more time:
designing systems
reviewing generated code
thinking about architecture
Which, honestly, is where the interesting problems are anyway.
The story goes back to medieval England.
In the 1300s, English courts had a strange legal trick. When lawyers needed to test a case or file a claim involving someone whose identity was unknown, they used fictional names. The most common ones were John Doe and Richard Roe.
They were never real people just placeholders for "someone."
Centuries later the legal system kept using them, especially when the identity of a person was unknown. Hospitals used it for unidentified patients, police reports used it for unknown suspects.
Then tech borrowed the idea.
When developers needed a safe, neutral name for examples in forms, documentation, and test accounts, they adopted the same placeholder the legal world had used for hundreds of years.
That's why in almost every signup form you'll see: Name: John Doe
A 700-year-old legal tradition quietly living inside modern software.
Funny how the oldest traditions end up inside the newest software