Commit or Quit

I am a perfectionist. Scratch that. I am an ambitious perfectionist. I want to do everything, and I want to do it perfectly the first time, and I want to do it faster than anyone else has ever done it before. These are unrealistic goals, which means I fail… a lot.

Then comes the self-doubt, and the shame spiral, and eventually I’m sitting in front of a mirror saying over and over again, “You’re not good enough. You’re never going to be good enough. You suck.”

Is this fun? No. I hate it. Does it make me do more or produce better work? Nope. All it does is waste a lot of time and make me feel terrible about myself.

I often make this joke around git types, but in seeking to curb this pattern of self-degradation, I have started to follow one basic principle:

Commit or quit.

(If you don’t get the git joke, read about making commits here.)

Seriously. I have made some garbage commits. Things that broke my entire workflow, things that make my website background bright green, blog posts that are half-written and used as a tool for teaching others about GitHub Pages. And I have learned from every single one of them.

Commit or quit.

Sometimes, though, something comes along that I just can’t do. I don’t have the knowledge yet, or my free time availability is so slim that I know I will be unable to complete a task with the quality it deserves. And I have started to realize that this is okay. Sometimes quitting is the best solution, as it will better allow you to commit fully to something else.

Commit or quit.

This principle applies to other, non-programming aspects of life, too. Just because you have had the same job for five, ten, fifteen years doesn’t mean you need to stay committed to it. But it doesn’t mean you should beat yourself up for not enjoying it anymore. Taking the time to figure out what you want, knowing that at the end of that discovery you will decide to either commit or quit, which can be liberating.

Commit or quit.

It is also important to realize that committing and quitting are not forever. I allow “quit” in my life to mean “pause temporarily” if the situation allows it. I also allow “commit” to have a variable timeline. The idea is that if you force yourself to make a decision about something, you’re taking action and not just engaging in motion.

Commit or quit.

So the next time you’re staring yourself in the mirror, feeling battered by that JavaScript exercise or that error you just can’t figure out or that shapefile that won’t project correctly no matter what you do, ask yourself if you really can do it. Tell yourself that if you can’t, it’s okay. But make yourself make a decision. Stop berating yourself in the mirror and pick one: commit or quit. I promise, once you’ve made the decision, everything will start to look better.