But yak shaving is fun (2019)
But Yak Shaving is Fun (2019)
By Simon Park (박성범)
Date: 2019.07.31 | Language: KO | EN
The Rabbit Hole of Customization
This blog is unique in that it avoids the use of any standard static site generators or frameworks. You won't find Jekyll, Hugo, or Gatsby here.
Initially, I experimented with those tools, but I found they offered too much structure too little freedom for the level of customization I desired. Consequently, I chose to construct the site from the ground up. My journey followed a recursive path of increasing complexity:
What Exactly is "Yak Shaving"?
The phrase was first coined by Carlin Vieri, a PhD student at the MIT AI Lab. It describes a specific phenomenon: embarking on a sequence of interdependent tasks to achieve a primary goal, only to find yourself working on something entirely unrelated to the original objective.
Examples of the Phenomenon
| Source | The Goal | The "Yak Shaving" Chain |
|---|---|---|
| LangDev IRC | Chop wood | Axe is dull Need a sharpening stone ... |
| Seth Godin | Wash the car | Go to Home Depot Cross Tappan Zee Bridge Borrow neighbor's E-ZPass Neighbor wants pillow back Pillow is full of yak hair Shave a yak |
"And so, just to wash the car, I end up at the zoo shaving a yak."
The Surreal Origin Story
While the term is now common in tech, its roots are surprisingly absurd. Vieri was eating a late-night meal after a hockey game while watching The Ren & Stimpy Show. In a particularly bizarre episode titled "Yak Shaving Day," the characters:
- Decorate their home with dirty diapers and boot-filled coleslaw.
- Leave shaving cream and a razor on the sink.
- Pray for a shaved yak to arrive via a magic kayak with gifts.
In the end, a yak emerges from the drain, shaves itself, and leaves behind only the "scum" of the shaving cream. Vieri later applied this phrase to the tedious administrative "chores" (DHL accounts, permissions, post office trips) he faced during an all-nighter.
The Engineer's Dilemma: Build vs. Buy
In professional software engineering, "building from scratch" is often viewed as a mistake. This happens when:
- An engineer wants to showcase their technical prowess.
- A developer dislikes the limitations of off-the-shelf software.
- A manager underestimates the capabilities of existing solutions.
Because most projects operate under strict constraints of time and budget, starting from zero often leads to an endless cycle of yak shaving. In these scenarios, the pragmatic choice is to find a "good enough" alternative and minimize the scope of work.
The Irresistible Allure of Creation
Despite the risks, the drive to build is powerful. Even for non-engineers, the prospect of creating a bespoke solution is intoxicating. The joy of programming stems from:
- The pure pleasure of making things.
- The puzzle-solving aspect: Creating a complex system of interlocking parts and watching the logic unfold.
- The flexibility of the medium.
Case Study: Donald Knuth and
A legendary example of "productive" yak shaving is Donald Knuth's creation of . When preparing the second edition of The Art of Computer Programming, Knuth found that "hot type" was obsolete and digital alternatives were subpar.
To solve this, he didn't just find a new printer; he built an entire ecosystem. For instance, allows for the elegant rendering of mathematical formulas. If you input:
-b \pm \sqrt{b^2 - 4ac} \over 2a
It renders as the quadratic formula:
The Dependency Chain
Knuth's journey was the ultimate yak shave: to write a book, he created a programming language, a new paradigm, a line-breaking algorithm, typesetting tools, and a typeface.
The result? took nearly a decade to complete, and the book's publication was delayed accordingly. Of course...