Do That Which Makes Your Life Easy

·

The words "Effectiveness and well-being aren't at odds" on a blue background, above the name Elijah Potter and the title "Sotware Engineer, Founder of Harper" and the Automattic logo.

Elijah Potter, a software engineer who founded and maintains Harper, explores quality of life as a critical decision-making factor. You can read the original post on his blog.

With a rel­a­tively small team, David Heinemeier Hansson (DHH), Jason Fried, and 37signals laid the foun­da­tion for a num­ber of suc­cess­ful com­pa­nies and main­tained a working com­mu­nity of ex­tremely in­tel­li­gent en­gi­neers. I have long fol­lowed their work and benefitted from their advice, which I apply to my own practice.

I re­cently read Getting Real, 37signals’s guidebook for build­ing a suc­cess­ful SaaS com­pany. Through­out their writ­ten work, Fried and DHH bake the same deeply personal idea into their advice: As you build your busi­ness or ap­pli­ca­tion, set­ your­self up to have a good qual­ity of life.

Frequently, making decisions in the interest of your own quality of life can also produce better software. If you come to a fork in the road where a de­ci­sion must be made be­tween two or more op­tions, you can of­ten safely choose the one that improves your own qual­ity of life.

In an older blog post, I pro­posed a different kind of men­tal short­cut, one I found effective after imagining what “the most effective engineer” would do in my position. When you imag­ine your­self on the path to be­ing the kind of per­son you most ad­mire, I found, you tend to be­come that per­son, as if by ac­ci­dent.

Effectiveness and well-being aren’t at odds. Imagining yourself as “the most effective engineer” shouldn’t prevent you from making decisions that improve the quality of your life. Rather, these two shortcuts can be used in tandem.

Eat Your Own Dog Food

When you are re­quired to use your own prod­uct—to eat your own dog food, as the saying goes—there’s a strong personal in­cen­tive to make your own product better. If you make a change and it im­proves the qual­ity of your own life, it will almost certainly improve the lives of your users, too.

Here’s an example: Dogfooding, as we know, is a helpful way to identify bugs. If you use your own soft­ware, you re­ceive a rep­re­sen­ta­tive sam­ple of what the ex­pe­ri­ence is like for the av­er­age user who con­sumes your prod­uct. When you encounter an obvious bug, you can take steps to address it so your future users won’t.

Which Feature Is Best?

When work­ing on a new fea­ture or ca­pa­bil­ity, it is al­most al­ways bet­ter to pri­or­i­tize that which will most tan­gi­bly help you.

For me, this meant mak­ing Harper avail­able in Discord. At the time, I was us­ing Harper a ton in GitHub. I had grown used to typ­ing out a messy mes­sage before hit­ting Ctrl+E to fix all my mis­takes, a strategy that helped me to write code re­views faster. But I felt frus­trated when­ever I needed to col­lab­o­rate with a fel­low main­tainer in Discord because I had to type slower and manually fix my mis­takes. By adding Harper to Discord, I improved my own qual­ity of life and in­tro­duced a core ca­pa­bil­ity to my prod­uct, opening a new mar­ket for po­ten­tial users.

Indirectly Helping Your Users

Sometimes improving your own quality of life is the right call even when it doesn’t directly improve the product experience for your users.

Consider con­tin­u­ous in­te­gra­tion. It may take a few min­utes to com­plete, or it may take a few hours. In ei­ther case, the wait can be frustrating because it slows everything down.

Now imagine that you must choose between adding a new, highly-re­quested fea­ture to your prod­uct and speed­ing up your con­tin­uous in­te­gra­tion. How should you choose to spend your time?

If you believe that speed­ing up your con­tin­u­ous in­te­gra­tion won’t im­prove your qual­ity of life, then I sug­gest that you add the new fea­ture in­stead. However, in my experience, this is rarely the case. Engineers can lose nontrivial amounts of time waiting for their GitHub Actions work­flow to com­plete so they can free up time and space to work on other things. If you have had that ex­pe­ri­ence, then speed­ing up your con­tin­u­ous in­te­gra­tion (or even re­mov­ing it!) might be the bet­ter choice. You’ll move faster, get more done, and, I bet, feel better about the work.

Always Use Your Brain

No mat­ter how many blan­ket rules you encounter, please use your brain. Some­times a men­tal short­cut is the right move, and other times you need to put some real gray mat­ter to work. Each de­ci­sion should be afforded the consideration it de­serves—and learning to assess each situation accurately is an extremely valuable skill.