A big problem for me when it comes to programming is to overdesign. I caught myself worrying about future features, hoping to solve problems that haven’t even occurred yet.
Say you’re building a website (like this one). You’ve got the design, the content, and the functionality. But you’re worried — what if I want to migrate to a new platform? What if I want to add a new feature? What if I want to change the design? I’d admit this is a valid concern to a certain extent, but it’s also a waste of time.
Chances are, I won’t want to migrate to a new platform, add a new feature, or change the design. I should be focused on the current problem and the current solution.
I think this is a common problem for many people — not just me, not just programmers, but everyone. It is easy to worry about the future and forget about the present (socio-economic metaphor intended).
I used to call it “getting prepared” or “forward-thinking”. Now I found a better term: perfectionism’s delusion. Being too idealistic about the future and ignorant about the present is dangerous.
There’s a Chinese saying: “千里之行,始于足下” — the journey of a thousand miles begins with a single step.
Chill, brother. Let the future take care of itself.