Blog

#8 Yak Shaving

When someone first used the phrase yak shaving with me, I was as perplexed as you were. The generally accepted definition for the phrase…

Press enter or click to view image in full size Photo by Chris Spalton on Unsplash

When someone first used the phrase yak shaving with me, I was as perplexed as you were. The generally accepted definition for the phrase “Yak Shaving” which is credited to Carlin Vieri (an engineer at MIT at the time) apparently after he saw an episode of Ren and Stimpy, means “a task that leads you to perform another related task and so on, and so on — all distracting you from your original goal.” This is relevant in both coding and analyzing legal matters.

In coding, yak shaving can be a dangerous and expensive exercise unless individuals exercise self control. I’ll give you an analogy in the home improvement space. Picture in your mind a blank wall of a room. On that wall you need to hang a painting. Easy enough. So you start with holding the painting up to the wall to determine the best place for it, when you look down and notice that one of the power outlets has a cracked cover. So you put down the painting, inspect the power outlet cover and go on the task of going to find locate a new power outlet cover in the garage, when you notice that a light bulb in the garage is out, so you shift gears to going to find a new light bulb. You see where this is going. You went from hanging a painting to replacing a light bulb.

As you can imagine, in code there are plenty of opportunities to go down these similar rabbit holes. This is why ensuring where your point A and point B is in terms of objectives is important to establish at the beginning of the task. Then, as you progress you should always ask yourself “Does this contribute to getting me from point A to point B? If not, then I can drop it.” Two relevant concepts come into play that are useful when trying to mitigate the risk of yak shaving: (1) KISS — keep it simple stupid; and (2) YAGNI — you aren’t gonna need it. We’ll do a deeper dive on those principals another time, but if you keep those concepts in mind as you’re programming, you should be able to avoid most yak shaving rabbit holes.

In the legal field I found that yak shaving usually took on the form of folks getting mired in the minutiae of every single issue they spot. My mentor and former law professor, Michael Roster, would remind the class: “Good lawyers ask what if, what if, what if, but the best lawyers follow up with so what, so what, so what.” If all of the issues you’re analyzing hold the same weight, then that puts you in the unenviable position of needing to hit every single target. Instead, if you weight the issues (e.g. by creating an ordered issues list), then you’ll be better positioned to know what points you can trade on and what you don’t need to devote your mental bandwidth on. You’re probably thinking, “Dude, this is super obvious. It’s called prioritizing issues.” Yeah you would think so wouldn’t you? This all comes with experience and having more reps working on matters, but I’ve seen folks spend their entire careers being slogged in the mire and failing to advocate for their client’s best interests, simply because every single issue was important to them.