Shaving the Yak!
Don’t save the yak! But put in the work so you’re not wasting time.
This initially came up in an issue I raised on the project we were working on together (grad.then()) where I was having issues with ESLint linebreak style and Marina left a link to a Seth Godin article.
This YouTube video of Hal from Malcolm in the Middle beautifully illustrates Yak Shaving. 👇
If you can’t watch it from the video here’s the description of what happens.
Hal comes into the house from work and flicks the light switch in the kitchen but the light doesn’t work.
He proceeds to the cupboard to get a light bulb but on opening the door notices that the shelf is missing a screw so he goes off to the draw to fetch a screwdiver to fix the shelf.
On opening the draw to get the screwdriver he notices that the draw rails are squeaking.
Off he goes to the garage to get some WD-40, the WD-40 can is empty so he decides that he now has to go out and get some.
He starts the car and notices there’s something wrong with the car engine.
Lois walks into the garage and asks Hal if could change the lightbulb in the kitchen.
Hal rolls out from under the car he’s repairing with his hands covered in oil and screams “What does it look like I’m doing?” 😂
It may seem like there’s a lot of this in web development too. Want to make a React site? Sweet, ok, so in your terminal, wait, you need to install a terminal first if you don’t have one.
Ok, now in your terminal run
npx create-react-app my-app, oh, you’ll
need to install Node which comes with
Got Node installed, sweet now
npx create-react-app my-app, change
my-app and open your text editor. I recommend VS Code,
you not got that installed?
Download it here.
So, you can see there’s a few steps involved in what seems like a trivial process once you have all the tooling you need.
At what point does it become yak shaving vs. what’s needed to get up and running?
Like with most things, it depends. 😬
If you’re on a large team where you want codind standards enforced then absolutely you’ll need to have a linter like ESLint.
If you’re making a small example project to share with someone then spending the additional time to setup a linter is probably not worth it.