YAGNI and future-proof architecture
You Ain’t Gonna Need It (YAGNI) is a principle that states that functionalities should not be implemented until they are needed. This principle came from Extreme Programming (XP) as an approach to improve software quality and respond to changing business requirements.
This principle is also related to the idea of minimalism in software development, which states that we should avoid unnecessary code and complexity in exchange for clean, easy-to-understand, and extensible software.
Another way to describe YAGNI is as the imperative to do the simplest thing that works. This is by no means an incomplete design or unfulfilled user requirement. It still promotes complete and functional software that satisfies user requirements with the simplest design available.
YAGNI aims at a few practices:
- Simple and lean code base: By implementing only what is necessary now, a lot of complexity can be avoided. As a result, the code base is simple...