What to work on next?

Younger engineers keep asking how I prioritize in a chaotic environment. Here's my approach.

  1. Bugs that block critical operations. Users can't make purchases, we can't deliver results, site is down, ... These are all hands on deck fires. Fix first.
  2. Does anyone need help? This includes code review. Unblocking others provides the biggest output gains. Output is a leading indicator for outcomes.
  3. New bugs in recent ships. You shipped something and it's got a bug. Fix the bug now while it's fresh in mind. This helps keep our defect rate down and trains your testing muscle. Pay attention to the kind of bugs people find quickly. Prioritize these when building new features.
  4. Bugs that block workflows. If people can't do their work, you should fix that quickly. Let small fires burn when people are annoyed, but quickly fix anything that blocks progress and doesn't have a workaround. Take note of annoyances, they may be feature requests in disguise.
  5. Data corruption bugs should be fixed quickly. The more data you have to fix, the more painful it gets. If you can't fix the broken data, this is a p-zero fire. Long-term data consistency is gold.
  6. OKR-aligned work comes next. This is the meat and butter where you should, in theory, spend the most time. Working on features that align with team goals. Ideally this includes gardening where you leave the code better than you found it.
  7. Ad-hoc requests are asks that aren't exactly bugs and they're not super important features either. But they make someone's life easier, a workflow go smoother, or remove a nag from someone's brain. These little favors build trust.
  8. Making-it-easier work is the work that makes everything else easier. Solving common bugs systemically by implementing new tools, increasing test and type coverage, extracting common patterns into libraries, adding observability, ...

Help first, fix bugs, business priorities. If this sounds bad, write fewer bugs.

Cheers,
~Swizec

PS: the more your title looks like lead or staff engineer, the more your focus shifts towards the make-it-easier work.

PPS: when choosing between OKR-aligned work, think "What will make everything else easier or unnecessary?"