One of the keys to keeping things simple is to avoid doing stuff until it actually needs to be done. Good design comes from a discovered need; from evidence that your code is not as easy to change as it could be.

From Premature Design Is Not Design.

design