As programmers, we have a powerful tool that we deploy often: OCD.

While the name connotes a ‘disorder’, certain obsessive behaviors make for very effective programmers. Remember, code that is 99% right is wrong. Crashingly, money-losingly wrong. OCD is made for this profession.

Its strength, however, is also its weakness: it monopolizes our attention. Our ability to dive deep, to focus, to simply not let things go, makes for amazing code and terrible time management.

To me, this makes programmers something you don’t hear often: visceral. We think we do big-brain work; perhaps we do. But our decision of what to prioritize in this moment, and for the next several moments, is often pure id.

Herein lies the confusion: obsession as a proxy for high standards. The difference is that high standards are defined by what we deliver to others; OCD is not.

OCD is entirely about the self. It is an urge to be assuaged.

‘High standards’ (for lack of a better expression) are closer to ethics, or ego. They describe the desire to do the right thing for others, regardless of reward. It is outward where OCD is inward.

The distinction is not binary, to be sure. OCD can be a great tool to be deployed in the service of high standards.

Think of it this way: you’re swinging a hammer. Are you building a bench, or pounding a nail?