One of my improvements recently has been to get a software side project up and running. As I’m a programmer by trade, this shouldn’t present any particular difficulty—but software has this uncanny knack of making things slightly more complicated than they really should be.
This is the story of the last few weeks—the end result of which is that there is still no actual visible side-project.
So sit back and enjoy the story of the yak (and the alligator and the bike-shed…). I hope it is more fun to read than it was to live (and, in the end to write, too!)
Yak-shaving: The tasks between you and your goal
Yak shaving: Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem. —Wiktionary
You can usually tell a yak-shaving story because its introduction will contain the phrase “All I wanted to do was….” And that, in a nutshell, is what yak-shaving describes. It’s the seemingly endless progression of annoying but vital intermediate tasks that need to be done before the final, important task can be completed.
Software development is particularly prone to this due to the plethora of versions, platforms and products that lead to a dazzling array of things that can go wrong. This, in turn, leads to the multitude of things that need to be fixed.
Let’s deploy a web app
I want to deploy a web app. It’s nothing special – it’s the equivalent of “Hello World” for web apps. It might even actually say “Hello World.”
I go to my current hosting provider of choice and create an account. They want some billing details, so I give them what they want, eager to get things up and running. I am already imagining sharing the link to this new web app in under an hour. I click “submit!” Job done?
Let’s sort out my credit card
But my billing details are rejected. My card has been declined. No doubt for some arbitrary reason because I have had the gall to purchase something from two different continents within the timespan of a few hours.
Ah well, such is life—security is good to have, after all. The credit card company phones me up automatically with their robot voice and asks me to confirm some recent transactions. No problem! Job done?
But I can’t for the life of me understand what the robot is trying to tell me. I swear it deliberately mangles the names of the companies I purchase from just to make things more difficult.
I squint and strain as I try to make out the weird metallic utterances, but after a number of retries I declare defeat. Not to worry – I have the relevant receipts in my email, so I can just look them up there and translate them into robot-speak! Job done?
Let’s log into my email account
But I’m not actually logged into the correct email account at the moment. I have a few false starts, trying to change the account before going Incognito and just logging in again. Oh – but I’ve enabled two-factor authentication. Good for me – security is vital in this day and age after all! I’ll just type that code in and that’ll be that! Job done?
But I need my phone for that all-important code. And for whatever reason, my phone is not with me. Not a problem – there’s only a few places it can be. A quick search and I find it (that was a lucky escape – the yak could have got a lot more shorn if I hadn’t). Right then – just enter in the code. Job done?
Let’s resurrect my phone
But the phone has no charge and has powered itself off. Oops. That was a bit careless of me. No problem, though. Just plug it into the laptop and we’ll be off and running. Job done?
But the wire isn’t here either. Cue a hunt for the elusive wire that looks just like every other wire but is subtly different just about everywhere. It’s probably in a bag somewhere, for safe-keeping. And sure enough it is – tangled around its coiled siblings. A few tugs and twists and it’s free! Job done?
But the phone doesn’t work even with a wire. Oh no. It needs time to wake up and get its act together, it seems. So I have to wait what seems like an age but is more likely just five or ten minutes for the phone to respond to my increasingly insistent button presses that inquire “Are you alive yet?” Still, it eventually stirs. Job done?
Let’s try and remember what we were trying to do
And the great news is that yes, that job is done, and the whole chain rolls right back up again, provided I can remember what I was doing at each stage.
I think there was something about getting a web host. That was definitely mentioned…
Can yak-shaving be avoided?
The good news is, with so much behind-the-scenes work going on, something must break through soon to take centre-stage and the undoubted rapturous applause and adulation that such a journey deserves.
I see yak-shaving as you trying to be productive but things keep getting in the way – totally not your fault, just the way of the world. Not much can be done about yak-shaving except to live through it and remember your goal.
Now, alligator wrestling and bike-shedding? That’s a different story….
Has yak-shaving ever happened to you? How did you deal with it? I’d love to hear your stories in the comments.
Postscript: Writing up the original draft of this post, everything was going exceedingly well. I was all the way through the yaks and was about to dive into the alligators and bike-sheds when my laptop completely froze. Only a reboot could revive it. And as a result my first draft just disappeared. I don’t know if that was the yaks, the alligators or the bike-sheds, but looking back it seems particularly appropriate. Maybe the productivity gods just hate me.
Interested in helping Buffer grow? No yak required. We’re hiring!
Image Credit: NepalGateway Trekking
This post originally appeared on my personal blog. Follow me there for more wild animal adventures into web development.