Yak shaving (programming term)

Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.

Coined by Carlin Vieri in his time at the MIT AI Lab (1993-8) after viewing a 1991 episode of The Ren and Stimpy Show featuring “Yak Shaving Day,” a Christmas-like Holiday where participants hang diapers instead of stockings, stuff rubber boots with coleslaw, and watch for the shaven yak to float by in his enchanted canoe.

Via Wiktionary

And of course, the Ren & Stimpy video:

If you’re in the middle of doing something like “I’ll just try installing this web app”, and then you find yourself updating your database, shuffling SSH keys, debugging DNS settings, etc. – that’s yak shaving :slight_smile:

Very recognizable :smile:. I found Seth Godin’s writeup on yak shaving enlightening and entertaining as well.

1 Like

I realize that the base concept is kind of lost that inspired this. What I had originally heard, was the concept that you are in the Himalayas and there is a yak in front of you. And you need to shave the yak. But you don’t have a shaver of any kind.

Ok, what do you need to do to make a shaver? Well, do you have some metal? You’re going to have to get a pickaxe, and mine raw ore, and smelt the ore, and build the parts for a shaver.

Ok, now you need electricity to power the shaver. How do you make electricity? OK, first you’re going to need to build a generator…

etc. etc.

Basically, there is a long list of things you need to do before you’re even ready to shave the yak. This is very common in programming with all of the dependencies that are needed to make something work, across the operating system, permissions, databases, web hosting, domain names etc. etc.

More yak shaving references and imagery:

This one has a “crest / award” with a yak: