Every feature has a cost: code to write, tests to maintain, complexity to manage. Speculative features often go unused while creating real burden.
If your justification includes "might", "probably", "eventually", or "in case", STOP:
| Development time | Hours building unused code | | Testing burden | Tests for features nobody uses | | Maintenance | Updates, security patches, dependency management | | Complexity | More code = more bugs, harder onboarding | | Cognitive load | Developers must understand unused systems | | Technical debt | Speculative abstractions often wrong |
Используйте, когда возникнет желание добавить функции «на потом». Используйте при создании «готовых к работе» систем до того, как это потребуется. Используйте при добавлении гибкости, которая еще не требуется. Источник: yanko-belov/code-craft.