GlowWords

Stop Buying Yaks

In software development "Yak Shaving" is the process of going down a winding road of tasks seemingly unrelated to the goal you started with. It is well illustrated by a scene in Malcolm in the Middle where Hal discovers a light bulb is out. He goes to the cupboard to find a new bulb but the shelf is a little wobbly. He goes to get a screwdriver from the drawer, but the drawer is squeaky. So it is out to the garage for a can of lubricant, but the can is empty. Time to head to the store for a new can, but the car is sputtering. When Lois, his wife, asks him about replacing the light she finds him with the engine lifted out of the car. Fixing the car is the yak he is shaving so he can change the light.

I had to do a bit of yak-shaving while working in another team's project. Their build pipeline depends on an external tool to do checks before advancing, but some setup was broken, so it blocked my PR. I tried to run the same check locally, but their project uses a build system that would not install. But I did have the tool used for the failing check installed, but it was missing some dependencies that would not download. All this blocked my already approved PR that was clean despite the tool failures.

No doubt the team added each tool was added to ease some aspect of the development process. Tools and features can be alluring for thier promise of efficiency and convenience. I was looking at getting a string trimmer with the option of an autoload feature. I was unsure about the autoloader but talked with a friend who had one. He just loved how easy it made loading the string. But did it still work? No.

More features and more tools often fail in their promise of convenience by being one more thing to fix and maintain. They become barriers to entry and points of failure. I've learned that it is usually best to stick with something simple and just use what you need. The best time saver is to stop buying yaks. They're just one more thing to shave.

-