What is yak shaving?
Yak shaving is programming lingo for the seemingly endless series of small tasks that have to be completed before the next step in a project can move forward. The term is a great example of internet slang making its way into the collective consciousness and being used to describe impediments to coding.
The term was coined by Carlin J. Vieri, a Ph.D. student at Massachusetts Institute of Technology in the 1990s, and was inspired by an episode of the Nickelodeon channel's cartoon The Ren & Stimpy Show. In the episode, Ren informs the viewers of an upcoming holiday called Yak Shaving Day, where one must leave shaving cream and a razor on the bathroom sink so that, at night, the Shaven Yak can come and leave presents.
Of course, Vieri was being sarcastic, but the term yak shaving caught on. It refers to engaging in a meaningless task that has no obvious relationship to what's supposed to be worked on but may be necessary to troubleshoot a larger problem. The process of making a simple task unnecessarily complicated may also qualify as yak shaving.
A yak is a domesticated, horned, cowlike mammal native to Tibet that looks similar to a Texas longhorn cow -- albeit with shorter horns -- but with a thick, shaggy coat to help cope with the cold climate of Tibet.
Examples of yak shaving
Examples of yak shaving fall into two categories: procrastination and necessary annoyance. In the case of the former, it's easy to slip into while working from home, where temptations and distractions abound.
For example, procrastination is when there's a report due today, but it seems dull and a waste of time because no one will ever read it. So, it falls to the end of the priority list behind other household chores -- anything to avoid writing the report.
Necessary annoyance occurs when the original goal is to complete task A, but an unforeseen cascade of circumstances intervenes to distract from completing it. Those involved with software development may be especially sensitive to necessary annoyances. For example, a field entry name must be changed in source code because it was changed in the database. But, as the software engineer looks into the code, other errors become apparent and need to be corrected. The required changes affect other apps, and then those, in turn, affect yet more applications. That can lead a developer down a rabbit hole of dependency hell that needs to be fixed before making the initial modifications.
How to avoid yak shaving
Avoiding both types of yak shaving requires self-discipline and self-awareness. In the case of procrastination, it comes down to recognizing it, stopping the time-wasting exercises and getting on with the unpalatable task at hand.
In the case of distraction, stopping isn't an option because these are necessary steps. Even if a half-dozen other updates occur before making a planned change, they must be done.
It is possible to reduce the distracting effects of yak shaving by reframing the situation. Here are some steps to consider:
- Realize you have been sidetracked. The moment you realize you are moving toward yak shaving, stop.
- Understand the task at hand. You can't get back on track until you realize what the track is. Refocus to become aware of possible distractions.
- Have a plan of action. Once you've recognized you are off course, formulate a project plan to get back on course.
- Set modest goals. A series of small tasks is easier to accomplish than one giant task.
- Set periodic checkpoints. Stop periodically to ensure you are still on the planned path.
- Have a better working environment. This is ideal advice for avoiding procrastination: Reduce as many distractions and temptations as possible.
One method for setting periodic checkpoints is the Pomodoro Technique, which breaks work into 25-minute chunks punctuated by five-minute breaks.
Fostering well-being is essential to productivity. These 10 digital wellness tips help workers stay on task and improve work experience.