As developers we fall into the following trap often: we focus on solving puzzles, not solving problems. What’s the difference between a puzzle and a problem?
Solving both puzzles and problems is satisfying, revealing, and educational. Solving a complex puzzle or problem can be intellectually rewarding and exhilarating. Unfortunately, puzzles are often meaningless distractions and time-wasters despite the satisfaction gained. Solving problems unblocks you and helps you accomplish your goals.
So, you’re feverishly trying to optimize your app’s search feature to make it a few milliseconds faster — is this a distracting, wasteful puzzle or a critical problem to solve? It depends! If the search feature is the most used customer feature then you might be saving the company. But, if you just stumbled upon this unused code and you remember reading a blog article a while back about a new technique and… well it just could be better and it’s annoying you then this might be a puzzle for another day.
Be a problem solver. Again, step back, get out of your own head, and ask yourself, “What am I trying to accomplish? Is this important?”