YAGNI
/ˈjæɡni/
CommonYou Aren't Gonna Need It. Don't build things you don't need yet.
Sounds obvious but surprisingly hard to follow. Most over-engineering comes from developers who are convinced they will definitely need something later.
Real-world examples4 examples
| # | Example | What it means | Source |
|---|---|---|---|
| 01 | I left a comment: YAGNI. we don't need multi-tenancy support for a tool used by 2 people. | Pushing back on adding complexity for a use case that doesn't exist. | x, 2023 |
| 02 | built the whole plugin architecture. launched the product. nobody ever wanted plugins. YAGNI was right. | A real example where the hypothetical use case never materialized. | reddit, 2023 |
| 03 | me: what if users want to export as PDF later. lead: YAGNI. ship the CSV. | Applying YAGNI to avoid scope creep on a feature in development. | x, 2024 |
| 04 | the hardest part of YAGNI is it requires trusting that you can add it later. most devs don't trust that. | The psychological reason YAGNI is hard: fear of not being able to refactor later. | x, 2024 |
Use it when
- Someone wants to add a plugin system for a feature nobody has requested.
- A PR adds config for behavior that has only one case today.
- A teammate is building infrastructure for a scale 100x beyond current usage.
Do not use it when
- There is confirmed future work that a current design decision will affect.
- You mean the feature itself is low priority.
Origin and context
Coined by Ron Jeffries as part of Extreme Programming (XP) in the late 1990s. It became one of the core XP principles and spread widely through agile and software craftsmanship communities.
- First seen
- 1990s
- Confidence
- high
Cite this page
Use this stable URL to reference the entry.
https://slang.fyi/yagniUpdated: 2026-08-28License: CC BY 4.0