Programmer frustration: Yak Shaving

Crowds of fun-seekers exploring a city on foot, "

Arjan Franzen

14 June 2023

Logo of Nippon Yusen with text "YAK SH

The term "yak shaving" in programming originated from an episode of the popular 1990s cartoon "Ren & Stimpy." The episode titled "Stimpy's Invention" features a scene where Ren asks Stimpy to shave a yak, but in order to do that, Stimpy needs a special razor, which requires a special blade, which needs to be sharpened with a special stone, and so on. The chain of tasks keeps expanding and becoming more convoluted, leading to frustration and a feeling of being stuck in an endless loop.

Programming joke

For programmers, yak shaving refers to a similar situation where they find themselves getting caught up in a series of seemingly unrelated tasks that need to be completed before they can tackle the original problem at hand. These additional tasks often arise due to dependencies, requirements, or unexpected complications. It can be frustrating because the programmer's focus keeps shifting away from the primary objective, and they may spend excessive time and effort on seemingly trivial or unrelated tasks, moving further away from their initial goal.

Yak shaving frustrates programmers because it hampers their productivity and slows down progress. Instead of making meaningful progress towards completing the main task, they get entangled in a web of secondary tasks that divert their attention and consume valuable time and energy. To prevent yak shaving, collaboration and effective communication are key. By discussing the problem at hand and seeking input from others, they can gain fresh perspectives and potentially identify more direct solutions. This collaborative approach helps prevent unnecessary detours and keeps the focus on the primary task.

Shaven?

Delegating tasks is also crucial in preventing yak shaving. When faced with a multitude of tasks that are tangential to the main objective, programmers should evaluate if some of those tasks can be re-assigned. By delegating tasks to team members or other teams who are better suited because of expertise. Scrum masters will come to the rescue after you’ve created a new impediment named ‘shaving the yak’.

background

Happy Nerds are productive Nerds