Or at least it's a rigamarole. For a folk etymology, I like to imagine that I'm making a costume for a costume party, and I need a fake mustache or something, and I can't find one anywhere so I look up how they're made, and it turns out most fake facial hair appliances are made from yak hair, but I can't find a supplier for yak hair anywhere, which is why my quest to dress up as Fu Manchu or Mr. Spock for Halloween has led me to a yak ranch 90 minutes out of town patiently explaining to a bemused yak rancher why I'm standing around his pasture with a straight razor.
"I need to shave a yak," I explain. "That's the only way I can get yak hair."
I'm in a deeply absurd situation, purely as a consequence of perfectly normal and understandable desires that just got completely out of control. I take in a deep breath, the smells of fresh air and yak manure and whatever the hell they feed yaks, gazing upon miles upon miles of gently rolling hills before rugged mountain peaks in the distance, awkwardly shaking my can of shaving cream. The rancher squints at me. I imagine him as an old man, his face weathered and wrinked, wearing suspenders and a red flannel shirt. "Why do you need yak hair?", he asks. I sigh. "It's a long story."
Re:‘Find Your Passion’ Is Awful Advice
by allannienhuis on Friday July 13, 2018 @08:13PM
(#17527900)
right, and I thought the implication is that at some point in that process we really should be unwinding the stack and fixing/resetting some assumption that will let us move ahead in a more efficient manner. So in that sense I've always thought of it as being in an undesirable state (like a code smell), not a necessary one.
I wouldn't call it yak shaving to review a help file for accuracy.
My characteristic example of yak shaving would be, "I want to add a radio button (mutually exclusive pick-one option) to this form, but the framework's docs don't say how, so I'll implement it with the checkbox list and require only one to be checked, so I look up how to enforce input validation, but that requires installing an extra module in the build, which then installs a different version of one dependency we're already using, which the framework doesn't like, so I need to install another extension that lets you use two different versions of the same library in the build, but has an occasional bug..."
Those steps are necessary in the sense that the current system forces you to do them, but (like technical debt), they're completely artificial steps that shouldn't be necessary (in that sense) to begin with.