Comparison
Last responsible momentvsYAGNI
Last responsible moment
you left the storage choice open until the access patterns were real, and then it was obvious.
Delay a decision until just before the cost of delaying exceeds the cost of deciding badly. It is the disciplined version of procrastination: you defer in order to gather information, and you name the moment at which you will no longer be able to. Both failure modes are common — deciding in week one on no evidence, and deferring so long that the decision gets made accidentally by whoever wrote the first line of code.
Full entry →YAGNI
you built the plugin system for the second provider, and two years later there is still only one provider.
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.
Full entry →