Skip to main content
A dreamy and soft palette paints a developer's desk scene. Scattered tools, a glowing computer screen, and a whimsical yak with patches of shaved fur take center stage. Above, in flowing watercolor script, the title reads 'To Yak Shave or Not'.

To Yak Shave or Not: The Art of Procrastination in Software Development

Picture this: You sit down to fix a bug in your TypeScript + React codebase. Two hours later, you find yourself deep down a rabbit hole, working on something entirely unrelated to your initial task. Sounds familiar? Congrats, you’ve just been yak shaving!

Today, let’s talk about this phenomenon known as “yak shaving” and its mysterious cousin “bike shedding.” We’ll dive into what these terms mean, how they manifest in frontend development, and why you might be doing one when you think you’re doing the other.

What is Yak Shaving?

The term “yak shaving” originated from a story about a guy who had to perform a series of increasingly peripheral tasks, like shaving a yak, just to accomplish his initial goal. In software development, it refers to the act of doing seemingly irrelevant tasks that are indirectly required to achieve your primary objective.

Practical Example in Frontend TypeScript + React Codebase

Let’s say your primary task is to implement a new feature, like a chat UI.

  1. Initial Task: Implement a chat UI using React and TypeScript.
  2. Yak Shaving 1: Realize you need to update your TypeScript version for better type utilities.
  3. Yak Shaving 2: Discover that the new TypeScript version breaks another part of your codebase.
  4. Yak Shaving 3: While fixing the broken code, you find that the testing library you’re using is outdated.
  5. Yak Shaving 4: In the middle of updating the testing library, you notice that your code formatting tool isn’t configured correctly.

Before you know it, you’re configuring ESLint, and the chat UI is nowhere to be seen. You’ve been yak shaving!

What is Bike Shedding?

Bike shedding, or the “Law of Triviality,” is when a group of people gives excessive attention to minor issues while neglecting the important ones. It’s not about doing irrelevant tasks but about arguing or focusing on trivial aspects.

How Does it Differ from Yak Shaving?

  1. Scope: Yak shaving usually happens when you’re coding alone or within a small context. Bike shedding is a group phenomenon.
  2. Nature of the Task: Yak shaving isn’t trivial; those tasks often need to be done. Bike shedding focuses on trivialities.
  3. End Result: Yak shaving delays your primary task but often with valid reasons. Bike shedding diverts attention away from important issues without justification.

Why the Confusion?

Both terms describe scenarios where you end up not doing what you originally planned. However, yak shaving has a domino effect of dependencies that make it necessary, whereas bike shedding is unnecessary and often a result of group dynamics or indecisiveness.

The Last console.log() 🐛

Yak shaving and bike shedding: Two terms that sound funny but can be a serious drag on productivity. Understanding the difference helps you recognize when you’re doing one or the other—and hopefully pull yourself back to the task at hand.

If you’ve got any epic yak shaving or bike shedding tales, share them on X (Twitter).

Stay in touch

Don't miss out on new posts or project updates. Hit me up on X (Twitter) for updates, queries, or some good ol' tech talk.

Follow @zkMake
Zubin Khavarian's Profile Photo Written by Zubin Khavarian