Architecture & practice·Complexity and how it accumulates
you built the plugin system for the second provider, and two years later there is still only one provider.
YAGNI
Also calledyou aren't gonna need it, you ain't gonna need it
The rule that you do not build a capability until you actually need it. It is not an argument against thinking ahead; it is an argument against paying now for a guess, because the guessed-at flexibility is usually the wrong shape when the real requirement arrives and has to be removed first. The cost is compounding: the speculative abstraction is carried, tested, documented and worked around by everyone in the meantime.