define yagni --plain-english
YAGNI
TLDR:Don't build what you don't need yet.
It stands for You Aren't Gonna Need It. And it's the four letters that talked me off the ledge more times than I can count.
Here's the trap, because you've felt it. You sit down to build one simple thing. Then your brain starts whispering. "But what if I want it in five languages someday? Better add a language setting now. What if a thousand people sign up at once? Better build for that. What if I want a dark mode, an admin panel, a whole settings page nobody asked for?"
None of that is the thing you sat down to build. It's the thing you're imagining you'll need. YAGNI says: stop. Build the thing in front of you. The someday stuff waits until someday actually shows up.
Why this matters more than it sounds like it should. Every speculative feature isn't a one-time cost you pay and forget. It's a pet you have to feed forever. Once it exists, you have to:
- maintain it when everything around it changes
- debug it when it breaks (and it will, usually at the worst time)
- explain it to anyone else who touches the project
- carry it in your head as one more thing that exists
So you paid to build it, and now you're paying rent on it every month, for a "someday" that, nine times out of ten, never arrives.
The everyday version. It's packing snow chains for a beach trip. You don't know you won't hit a freak blizzard. But you're driving to the beach. The chains are heavy, they take up the whole trunk, and they're for a problem you invented. Pack for the trip you're actually taking.
Where this hits you the second you start building with AI. This is the big one, and almost nobody warns you about it.
When you ask an AI to build something, it is delighted to over-deliver. You ask for a simple contact form and it hands you a contact form with spam protection, three fields you didn't ask for, a settings panel, and support for file uploads. It feels generous. It feels like a gift. It is quietly handing you four extra pets to feed.
So the move is to say it out loud in your prompt:
Build the simplest version that solves exactly this problem.
Don't add features I didn't ask for. No "just in case" extras.
If you think something else is worth adding, ask me first instead of building it.
That last line is the cheat code. It turns the AI's eagerness from a tax you pay later into a quick yes-or-no question now.
The honest catch, because YAGNI gets abused too. It is not an excuse to build sloppy. "You aren't gonna need it" applies to features, the stuff you're guessing a future-you might want. It does not mean skip the version control or skip thinking about it at all. Don't build the imaginary cathedral. Do build the one room you're standing in well.
Here's the test I actually use. Before I build anything, I ask: am I solving a problem I have right now, or a problem I'm picturing? If it's a real problem sitting in front of me today, build it. If it's a "what if," write it on a list and walk away. The list is free. The feature is not.
You can always add it the day you genuinely need it. You almost never get that day back once you've built the thing you didn't.