The early days
Carlin Vieri from the MIT Computer Science and Artificial Intelligence Laboratory is credited w coining the term Yak Shaving back in ’00 based on the plot of an episode of a Ren and Stimpy.*
Seth Godin gave an illustrative little story as well:
“I want to wax the car today. Oops, the hose is still broken from the winter. I’ll need to buy a new one at Home Depot. But Home Depot is on the other side of the Tappan Zee bridge and getting there without my EZPass is miserable because of the tolls. But, wait! I could borrow my neighbor’s EZPass… Bob won’t lend me his EZPass until I return the mooshi pillow my son borrowed, though. And we haven’t returned it because some of the stuffing fell out and we need to get some yak hair to restuff it. And the next thing you know, I’m at the zoo, shaving a yak, all so I can wax my car.”
You get the idea?
You have probably noticed how the tiniest project (programming, home improvement, etc.) often grows seemingly without bound. You start to do something very simple. You need a tool to do that. You notice the tool need to be tuned a bit to do the job properly. So you set out to sharpen the tool. To do that, you need to read some documentation. In the process, you notice the documentation is obsolete. So you set out to update the documentation… This chain goes on and on. And before you know it, yep, you are shaving a yak.
A number of additional interpretations:
- It describes one of the fundamental properties of the universe, namely the way the time to complete a simple task seems to grow without bounds because to accomplish the goal you must complete a subgoal before you can complete the goal. But to complete the subgoal, you must complete yet another subgoal, recursively.
- It is the last step of a series of recursive subgoals you need to accomplish before you can finally accomplish what you set out to do.
- It is any apparently pointless, possibly non-recursive, activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
- It is a useless activity you do that appears important when you are consciously or unconsciously procrastinating about a larger problem. (There’s a hole in the bucket, dear Liza, dear Liza)
- It is the act of collecting wool from Bos Grunniens in order to create garments. Commonly performed in the alpine meadows of the Himalayans in South and Central Asia.
But… wait… hasn’t shaving the ol’ yak ever produced something useful?
Yeah, ‘pose it did….
- The second greatest piece of yak shaving in the history of CompSci was arguably TeX. Don Knuth was working on the third edition of The Art of Computer Programming and realized his typographical tools didn’t let him do everything he wanted. So he spent a several-year diversion writing an entire page description language and a font manager for it. TeX was released in 1978. (Technically before the term Yak Shaving was coined) Knuth called it a sabbatical.
- The greatest piece of yak shaving is Unix, otherwise known as that thing Ken Thompson and Dennis Ritchie wrote back in the mid-1960’s so they could play Spacewar on that discarded PDP-7 sitting in the corner of ATT&T’s Bell Labs research center….
But before you go getting lost in life’s subroutines – consider getting out Occam’s razor first – just don’t use it to shave a yak…
* Ren and Stimpy: Once a year, children decorate their homes with diapers, stuff their dads’ boots with coleslaw, and leave out a pot of shaving cream. While they are fast asleep, the Gilded Yak sneaks into their home to shave, and leaves scum in the sink as a gift. Ok, I’ll save you the time, lmgtfy.