Yak Shaving - A developer's nightmare!
Tags: todayilearned, programming
Published: 2020-07-30 00:00:00

---
title: "Yak Shaving - A developer's nightmare!"
date: "2020-07-30"
categories: 
  - "useful-terms"
tags:
  - "todayilearned"
  - "programming"
cover_image: https://cdn-images-1.medium.com/max/2032/1*sfmk0Y-_Zcc7TsVc0yOOyQ.jpeg
---

### You may not be familiar with the term, but I promise you’ve experienced it before
***


> "**Yak shaving** is a programming lingo for the seemingly endless series of small tasks that have to be completed before the next step in a project can move forward."
> 
> source: [https://whatis.techtarget.com/definition/yak-shaving](https://whatis.techtarget.com/definition/yak-shaving)

* * *

One day I was pair programming with a colleague, wasting too much time on something that is too far from our original task. It was then, in a peak of frustration, when he taught me this term. Cool, right? Learning new things is fun. You may think this is where the story ended, but it didn’t.

I was super curious to find out **why** is that the term - Why yak? Why shaving?! All I could find online was that Carlin Vieri coined this term and that it was inspired by an episode of [_“The Ren & Stimpy Show”_](https://en.wikipedia.org/wiki/The_Ren_%26_Stimpy_Show)_._ That may explain the origin of the term, but not the big question:

### Why yak shaving?!

So, I went to the person that knows everything — the senior engineer in my team, of course. He told me a story kind of like this:

“Let’s say **you** want to ship your code. In order to do so, you need your CR (code review) to get your colleague **George**'s approval.

**George** would LOVE to go over your CR, but he is waiting for **Sarah** from IT to unlock his laptop. He forgot his password and accidentally tried more than 5 times.

So you call Sarah, asking her to help George. **Sarah** really wants to help Gorge with his laptop but she can’t do it from home. She had to stay home because schools are still closed and her dad **John** couldn’t take care of her child today.

So you call John asking him to go to Sarah’s house. **John** wants to help his daughter, but couldn’t because he is going store after store, searching for Yak hair carpet.

So **you** go to the zoo, find a yak, and shave it so you could make a yak hair carpet and get your code shipped.”

### Let’s look at a more realistic example:

A few days ago I wanted to **start a new task** I got. Before doing that I needed to **add one harmless line of code** to fix a CR I pushed the other day. When we commit a CR, we need to declare that we **test it locally** beforehand. This is to assure it works and doesn’t break anything. The problem  — I had deployment issues, so I couldn’t **deploy locally**. So I needed to **fix my deployment issues** so I could **assure I tested the code locally** so I could **get my CR approved** so I could **start working on my new task**!

Share with me your worst yak shaving story! How much time have you spent on that? How many steps were on the way?

***

I hope you enjoyed reading this article and found it useful. I would love to hear your thoughts, here in the comments or in a private message:
Facebook: [https://www.facebook.com/cupofcode.blog/](https://www.facebook.com/cupofcode.blog/)
Instagram: [https://www.instagram.com/cupofcode.blog/](https://www.instagram.com/cupofcode.blog/)
Email: cupofcode.blog@gmail.com

Did I mention I have a new website? [https://www.cupofcode.blog](https://www.cupofcode.blog)

![](https://cdn-images-1.medium.com/max/2000/1*nuq3gfWLLWCYSMb8Zoysew.png)