I simply wanted to snap some pictures of my dogs running around the park last weekend. As I was about to round up the dogs to head to the park, I went to grab my camera, but then realized that I had left it at work. So I jumped in the car to run by my office to grab the camera, but realized that I didn’t have a key to get into the building. I knew that a co-worker always had a key, so I started to drive to his house, but then realized that the last time I borrowed something from him, an exotic suit, I never returned it because I had accidentally ripped a pretty big hole in the jacket. I knew that my co-worker wouldn’t trust me with the office key if I didn’t return the suit, sans hole, but I had not been able to get it repaired because it was made out of yak hair, something I wasn’t even sure I could get. I contacted a tailor who would be able to repair the suit, but wouldn’t be able to do it unless I was able to provide a supply of yak hair so that she could weave it into a fabric, and then from there use the yak fabric to repair the yak suit jacket….
So there I was at the zoo, shaving a yak, all so I could take a few pictures of my dogs at the park.
So what does shaving a yak have to do with software development?
Yak shaving is a phenomenon that occurs when you must complete a series of seemingly unrelated tasks in order to ultimately achieve your primary goal. And yak shaving, as funny as the term may sound, is somewhat common for software development teams. Yak shaving can happen when we least expect it, and is more likely to happen to those individuals or teams that lack preparation or organization.
Yak shaving is simply a waste of effort to achieve what we believe will provide enough value to outweigh the cost of the effort to achieve it. We usually don’t set out to shave yaks, we set out to take pictures of our dogs, but then when we get sidetracked in the effort to achieve our primary goal, we forget to slow down to see whether or not the goal is worth the additional effort. People shaving yaks find themselves chasing rabbits down the rabbit hole, searching for some elusive value, that in the grand scheme of things, they rarely find.
How Do We Avoid Finding Ourselves at the Zoo Shaving Yaks?
In Agile, we generally do not have the luxury to chase rabbits or shave yaks. The short cycle times of iterations mean that we have to consistently keep an eye on the efficiencies of our actions. For example, if I were required to show the pictures of my dogs (from my story above) later that same afternoon (think in terms of a demonstration of software to a client), I would have been keenly aware that my attempt to achieve that ultimate goal was not going to be served by heading to the zoo for the yak hair. In agile we do not get the luxury of endless tinkering, or pursuing perfection, we instead need to regularly measure the goal of our pursuit against the constraints in which we must act, and more importantly, deliver.
There was a time where perfection may have been the goal, but evidence of my own experience, and history in general, bear out that the pursuit of perfection is rarely worth the effort to achieve it, even when perfection is achieved. Agile is not about setting our sights on a sub-par goal, but rather it is about recognizing that a pursuit of perfection, when reasonably good results would suffice, is simply not worth the additional tinkering and effort to attain. Goldplating is often the conclusion of this type of undertaking, resulting in a product that may exceed the original customer requirements, but in the customer’s eyes, was not worth the additional effort, time, and cost to achieve. Can we in good conscience call this type of result a success? If you have ever experienced your own version of yak shaving, then you know that the answer to that question is a simple no.
If you find yourself on the way to the zoo to shave a yak, you may already be too far down the recursive road of tasks in your attempt to complete your original goal with a reasonably successful result. But if you find yourself heading to the office to get your camera you may still be able to save yourself that trip to the zoo, so long as you are asking the question of whether wanting to take pictures of your dog is worth the effort you will spend in shaving your yak. Having shaved my fair share of yaks, I can save you the trouble and let you know that it’s rarely worth it.
Keep it simple, clearly identify your short term goals, and keep an eye on the path you are taking towards achieving those goals. When you get off track, when you start to tinker, when you mindlessly or endlessly attempt to pursue perfection for perfection’s sake, you may be on the way to shaving your own yak. Lift your head, refocus, and steer clear of the zoo and you may just save yourself some time.
And if not, I have the name of a tailor that does wonderful work with yak hair.