“You Aren’t Going to Need It” - develop what’s needed now, not what you think you’ll need.
YAGNI = a slogan of “Extreme Programming”.
Don’t build flexible components and frameworks for the first case that may need them. Let those structures grow as they are needed.
This makes for better Agile work. You can deliver the feature faster. You have less chance of having built a complex thing that will not be needed due to future requirements changes.
👉 Do the simplest thing that could possibly work.
Simple design is better that complex. See the The Zen of Python.
In my experience, when re-writing the PDW, I built in a lot of “pre-planned” functionality that wound up becoming totally unnecessary (and deleted) later on.