– Is he making this up?
– DTSTTCPW you say.
– But I crave functionality!
YAGNI is a programming principle that stands for “You aren’t going to need it”.
It comes from Extreme Programming, where they have a practice called DTSTTCPW – do the simplest thing that could possibly work.
The point is to not implement functionality until it is absolutely needed, not when it is foreseen.
I talked before about not putting code in the project unless it’s needed, because it adds complexity and maybe bugs.
This is the official principle that states that concept.
YAGNI doesn’t apply to refactoring, tests and integration.
You are going to need continuous refactoring, continuous automated testing, and continuous integration.
Extreme programming uses YAGNI together with these concepts.
We want to keep the code as simple as possible but also as clean as possible.
If you apply YAGNI to clean code practices the project will become unmanageable.
YAGNI is about functionality.
This meme is part of the “YAGNI” episode from the Clean Code course.