Yak Shaving

dead-metaphor Animal HusbandrySoftware Programs

Categories: software-engineering

What It Brings

You set out to deploy a feature. But first you need to update a dependency. But that dependency requires a newer compiler. But the newer compiler needs a different build tool. But the build tool requires… and forty-five minutes later you’re shaving a yak. The metaphor captures the experience of infinite prerequisite regression: a chain of tasks, each seemingly necessary, each taking you further from your original goal.

Key structural parallels:

Where It Breaks

Expressions

Origin Story

The term was coined by Carlin Vieri at MIT around 1993, inspired by a Ren and Stimpy episode (“Yak Shaving Day”) in which characters celebrate a fictional holiday involving yak grooming. Seth Godin popularized the term in a 2005 blog post, giving it a definition that spread through the software development community: “the last step of a series of steps that occurs when you find something you need to do that leads to something you need to do that leads to something you need to do… and eventually you’re shaving a yak.”

The metaphor’s MIT origin is fitting: academic computing environments, with their idiosyncratic toolchains and hand-maintained infrastructure, are natural yak habitats.

References

Related Mappings