While well known in software development circles, it can be a very confusing term to other stakeholders. The term came from Carlin Vieri at MIT in the late 90’s 1. While the specific series of events that Carlin is referring to won’t make too much sense to those outside of software engineering, there is a scene from Malcolm in the Middle that paints what Yak Shaving means pretty well.

Yak Shaving is simply all those other tasks that need to be done that appear to be unconnected to the required task but must be done before the first task can be completed. One that comes to mind is the series of steps that happen when a client request that I perform a restore of a critical infrastructure, but I need to involve another stakeholder. Something like this:

Yak Shaving: Testing a File Restore

  1. In order to complete a restore test, I need target infrastructure.
  2. In order to get target infrastructure, I need the network permissions updated.
  3. In order to update the network permissions, I need to appease the network wizard.
  4. In order to appease the network wizard, I need to weave a great cape.
  5. In order to weave a great cape, I need to the hair from a Yak.
  6. In order to get the hair from a Yak, I need to shave the Yak.

  1. Yak Shaving (mit.edu) ↩︎