Programmers are problem solvers by nature. At a job interview, you can immediately distinguish a good from bad programmer, by requiring a candidate to solve a specific problem and then observing his behavior. But if you hire just based on problem solving capability, you may end with people who jump from problem to problem, without ever really finishing anything. So the second thing I always look in candidates is their track record of getting things done and I don't recommend for hiring candidates whose resumes contain lots of starts and only few finishes.
But even programmers with a good track record of getting things done, have quite often their productivity substantially reduced by not being able to walk past the problem without trying to solve it. The complexity of systems we are using to do our work is enormous and every tool or technology that we use has so many bugs and idiosyncrasies, that one could spend an eternity trying to fix them all. So the next time the beamer is not in the right position, or css is not organized perfectly, or you just can't find that perfect citation to explain your point, stop, take a breath, and ask yourself: "Is this really a problem worth solving?".
- Creating A Culture That Promotes Problem-Solving Delegation (jamkib.wordpress.com)
- Problem-Solving: What Your Style Says About You (inc.com)