Hacker News new | ask | show | jobs
by femto 4883 days ago
I can see how it happens:

You start off trying to solve a specific problem. You then spot all these related problems, that you could solve by generalising your solution. You tell yourself that if you build a tool to solve the general problem, the solution to your original problem is "free", since it is only a single button push or function call away. It seems wasteful to make your code specific, when it can be general.

Before you know it, you are completely bogged down trying to write a general purpose tool and never get to the point where you can push that button, to generate the originally required solution. You are stuck producing tools.

An alternative is to tell yourself, and continually remind yourself, that you don't know enough about the problem space to write a tool. You must solve the original problem, in order to teach yourself about the problem, by example. The solution is a prerequisite to writing the tool. Once you have your solution, you can either a) use the experience gained to generalise your achieved solution, to form a tool, or b) decide that the general solution is not important and move on to the next project.

It seems so easy when written down...