Categories
Process

The Many Manifestations of Yak Shaving

In Cranked: a lean and agile software development method, I wrote about an extended definition of Yak Shaving and thought I’d share some of the thinking behind it here.

The original definition of Yak Shaving covered the common experience of finding yourself performing a task on tangentially related to an original purpose.

Zed Shaw provides this excellent example:

“If you ever wanted to mail a letter, but couldn’t find a stamp, and had to drive your car to get the stamp, but also needed to refill the tank with gas, which then let you get to the post office where you could buy a stamp to mail your letter…”

This is classic Yak Shaving. You need to do X, but have to complete Y first, but you need to do Z in order to unblock Y and so on…

The term has also been used, possibly mistakenly, to describe procrastination. You’re supposed to be writing a chapter for a book, but so far you have arranged your record collection alphabetically and tidied your fridge. This process of being side-tracked isn’t true Yak Shaving. Delaying any related task by performing an unrelated task doesn’t fit with Yak Shaving. However, as is so often the case with procrastination, it is very easy to make tasks seem related to the end goal. If you needed to submit an assignment, it can be tempting to arrange books into categories for research purposes and perhaps craft some bookmarks out of old birthday cards and find some appropriate highlighter pens… this starts to look a lot like Yak Shaving.

The more abstract characteristics of Yak Shaving are that:

  1. You should be doing something
  2. You are actually doing something else
  3. The something else is somehow related

Using this criteria, I extended the definition of Yak Shaving to encompass repetitive manual tasks that could be automated. My justification for this is closely related to the mindset of the individual undertaking the manual work. In the software industry, you could create an eternal mindless job out of manual repetitive tasks, just like you can delay almost indefinitely the task of writing a book chapter or assignment. You can spend many years manually testing, manually deploying, manually synchronising two disconnected systems… the list is almost endless.

The problem with these tasks is that they seem necessary and are highly related to the job of shipping software. In actuality though, these tasks all fit the abstract qualities of Yak Shaving. You should be doing something. You are actually doing something else. The something else is somehow related.

This isn’t the classic rabbit-hole of Yak Shaving where you get side-tracked by unexpected but sometimes necessary tangents. This is Career Yak Shaving – looking busy and looking important and hoping that nobody notices the waste.

If you are working on a good team, you will be minimising Yak Shaving in all its forms.