The One Hard Thing

People (myself in­cluded) love to make cas­cad­ing lists of tasks. Ac­tions, each of which are needed to im­prove a prod­uct, re­lease a fea­ture, or man­age peo­ple. These lists tend to ex­plode in size, as more is asked of you.

There’s one prob­lem: I have only eight hours in a work­ing day. With so lit­tle time, how can I be ex­pected to both main­tain ex­ist­ing pro­jects (bug fixes, etc.) while con­sis­tently de­liv­er­ing new func­tion­al­ity and main­tain­ing a fast it­er­a­tive loop?

Insight

I’ve had two key in­sights that have led to some tremen­dous per­sonal pro­duc­tiv­ity gains.

First: I’ve ob­served that the dif­fi­culty of my tasks tends to fol­low a Pareto dis­tri­b­u­tion. A small num­ber of tasks are shock­ingly dif­fi­cult to solve, while a much larger set boil down to com­mu­ni­ca­tion.

Second: the morn­ing is my most pro­duc­tive time of day. For some rea­son, I’m able to tackle prob­lems with an oth­er­wise un­usual men­tal clar­ity. I sus­pect it’s some­thing to do with the nat­ural hu­man cir­ca­dian rhythm or di­ges­tion.

Leveraging the Pattern

Motivated by these two ob­ser­va­tions, I’ve de­vel­oped a habit: I ded­i­cate each morn­ing to its own dif­fi­cult prob­lem. This is a sin­gle task that is cho­sen specif­i­cally to stretch my lim­its. I call this my daily one hard thing.

Previous ex­am­ples:

  • Developing the first ver­sion of harper-ls which is now used by thou­sands of de­vel­op­ers daily.
  • Building the first 80% of the Harper Obsidian plu­gin, which is also widely used.
  • Grokking how Jetpack's Write Brief with AI fea­ture works (before I joined Automattic).
  • Compiling Harper to WebAssembly and em­bed­ding it some­where no one has put a gram­mar checker be­fore: in­side the web browser.

Think About It

I im­plore you: think about how you work. How is your en­ergy af­fected by the things you do in the day-to-day? If you en­joy your eight hours, maybe the rest will be bet­ter too.