In support of Yak Shaving
post by Elo · 2017-03-16T05:31:26.110Z · LW · GW · Legacy · 14 commentsContents
What should you do if you are in this situation? None 14 comments
Original post: http://bearlamp.com.au/in-support-of-yak-shaving/
Part 2: http://bearlamp.com.au/yak-shaving-2/
Yak shaving is heralded as pretty much "the devil" of trying to get things done. The anti-yak shaving movement will identify this problem as being one of focus. The moral of the story they give is "don't yak shave".
Originally posted in MIT's media lab with the description:
Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.
But I prefer the story by Seth Godin:
"I want to wax the car today."
"Oops, the hose is still broken from the winter. I'll need to buy a new one at Home Depot."
"But Home Depot is on the other side of the Tappan Zee bridge and getting there without my EZPass is miserable because of the tolls."
"But, wait! I could borrow my neighbor's EZPass..."
"Bob won't lend me his EZPass until I return the mooshi pillow my son borrowed, though."
"And we haven't returned it because some of the stuffing fell out and we need to get some yak hair to restuff it."
And the next thing you know, you're at the zoo, shaving a yak, all so you can wax your car.
I disagree with the conclusion to not yak shave, and here's why.
The problem here is that you didn't wax the car because you spent all day shaving yaks (see also "there's a hole in my bucket"). In a startup that translates to not doing the tasks that get customers - the tasks which get money and actually make an impact, say "playing with the UI". It's easy to see why such anti-yak shaving sentiment would exist (see also: bikeshedding, rearranging deck chairs on the titanic, hamming questions). You can spend a whole day doing a whole lot of nothings; getting to bed and wonder what you actually accomplished that day (hint: a whole lot of running in circles).
Or at least that's what it looks like on the surface. But let's look a little deeper into what the problems and barriers are in the classic scenario.
- Want to wax car
- Broken hose
- Hardware store is far away
- No EZpass for tolls
- Neighbour won't lend the pass until pillow is returned
- Broken mooshi pillow
- Have to go get yak hair.
So it's not just one problem, but a series of problems that come up in a sequence. Hopefully by the end of the list you can turn around and walk all the way straight back up the list. But in the real world there might even be other problems like, you get to the hardware store and realise you don't know the hose-fitting size of your house so you need to call someone at home to check...
On closer inspection; this sort of behaviour is not like bikeshedding at all. Nor is it doing insignificant things under the guise of "real work". Instead this is about tackling what stands in the way of your problem. In problem solving in the real world, Don't yak shave" is not what I have found to be the solution. In experiencing this the first time it feels like a sequence of discoveries. For example, first you discover the hose. Then you discover the EZpass problem, then you discover the pillow problem, at which point you are pretty sick of trying to wax your car and want a break or to work on something else.
I propose that classic yak shaving presents a very important sign that things are broken. In order to get to the classic scenario we had to
- have borrowed a pillow from our neighbour,
- have it break and not get fixed,
- not own our own EZpass,
- live far from a hardware store,
- have a broken hose, and
- want to wax a car.
Each open problem in this scenario presents an open problem or an open loop. Yak shaving presents a warning sign that you are in a Swiss-cheese model scenario of problems. This might sound familiar because it's the kind of situation which leads to the Fukushima reactor meltdown. It's the kind of scenario when you try to work out why the handyman fell off your roof and died, and you notice that:
- he wasn't wearing a helmet.
- He wasn't tied on safely
- His ladder wasn't tied down
- It was a windy day
- His harness was old and worn out
- He was on his phone while on the roof...
And you realise that any five of those things could have gone wrong and not caused much of a problem. But you put all six of those mistakes together and line the wind up in just the right way, everything comes tumbling down.
Yak shaving is a sign that you are living with problems waiting to crash down. And living in a situation where you don't have time to do the sort of maintenance that would fix things and keep smoulders from bursting into flames.
I can almost guaranteed that when your house of cards all come falling down, it happens on a day that you don't have the spare time to waste on ridiculous seeming problems.
What should you do if you are in this situation?
Yak shave. The best thing you can do if half your projects are unfinished and spread around the room is to tidy up. Get things together; organise things, initiate the GTD system (or any system), wrap up old bugs, close the open loops (advice from GTD) and as many times as you can; YAK SHAVE for all you are worth!
If something is broken, and you are living with it, that's not acceptable. You need a system in your life to regularly get around to fixing it. Notepads, reviews, list keeping, set time aside for doing it and plan to fix things.
So I say, Yak Shave, as much, as long, and as many times as it takes till there are no more yaks to shave.
Something not mentioned often enough is a late addition to my list of common human goals.
Improve the tools available – sharpen the axe, write a new app that can do the thing you want, invent systems that work for you. prepare for when the rest of the work comes along.
People often ask how you can plan for lucky breaks in your life. How do you cultivate opportunity? I can tell you right here and now, this is how.
Keep a toolkit at the ready, a work-space (post coming soon) at the ready, spare time for things to go wrong and things to go right. And don't forget to play. Why do we sharpen the axe? Clear Epistemics, or clear Instrumental Rationality. Be prepared for the situation that will come up.
Yak Shave like your life depends on it. Because your life might one day depend on it. Your creativity certainly does.
Meta: this took 2.5 hrs to write.
14 comments
Comments sorted by top scores.
comment by gwern · 2017-03-16T21:04:22.522Z · LW(p) · GW(p)
I think 'shave those yaks' is good advice only for some yak-shaving situations. I see 'yak-shaving' as a description of a situation where you are nested so deep in subgoals that you've forgotten your original goal, at which point a good heuristic is to wake up and say "this is a lot of yak-shaving!" and think about what is going on that has led to an undesirable situation.
Thinking about my own applications of the term, I think there are 3 different kinds of problems which can lead to yak-shaving: avoidance, lack of mindfulness, and cascading problems/system failures.
you are procrastinating or being akratic or falling into perfectionism (closely related to procrastination), by deliberately overcomplicating something or trying to use fancy or shiny new techniques, which of course frequently lead to new subgoals because you aren't familiar with them yet.
This is fine sometimes (you have to learn those new techniques somewhen) or if it's a kind of 'structured procrastination' (where the yak-shaving is itself valuable eg because it makes a neat blog post or useful software package), but often isn't. The usual akrasia/procrastination equation stuff, except it's being hidden under a gloss of superficial productivity. ("I can't write my novel, I have to clean my desk which requires [solving 15 deeper nested issues] which will take up all the rest of the day; I sure am a hard-working writer.")
By calling it yak-shaving, you admit you are just faffing around and you then solve your problem the way you knew you should all along; or you can deal with why you are avoiding finishing, or whether you really want to do it at all. If you refuse to acknowledge the yak-shaving, then even if you 'shave the yaks' you'll just find another way to overcomplicate things or a different thing to waste time on or switch to procrastinating on social media etc.
you have been following a greedy strategy of taking the obvious option at each decision node; that you have now stacked up so many tasks to complete suggests that the greedy strategy has failed and you have fallen into a local pessima.
Like with sunk costs, it's time to stop being so mindless, step back, think about it more globally, and ask if there's some better approach. Was there some entirely different strategy which seemed too expensive compared to your current path (which has actually turned out to be far more costly than predicted) and now looks cheap? Or are there any intermediate middle steps which are expensive but cut out a large number of other steps? Or perhaps all the paths are so costly that the top-level goal now no longer looks worth bothering with and you should just drop all the existing tasks and stop shaving the yak entirely.
Programmers are particularly susceptible to this because the line between useful automation and immensely complicated time-wasting tinkering is a fine one indeed. This can be common in programming where you can say, build up a Rube Goldberg collection of shell scripts and Emacs functions and manual edits to text because you wanted to avoid writing a SQL function (because it would take 20 minutes of consulting the SQL documentation to get it right); but by the time you're consulting the Bash FAQ or resetting
IFS
variables to deal with a problem half an hour later, it's good to wake up and ask 'am I yak-shaving?' - and then you might realize that the data or problem has turned out to be sufficiently painful (eg lots of special characters or oddity in data formatting) that you can't catch all the special cases and you would've been better off writing the SQL query in the first place. In Godin's example, perhaps one should simply return the yak pillow and hope the neighbor won't notice the missing stuffing, or they will prefer to simply have it back rather than wait for you to fix it whenever, or simply bite the bullet of upsetting them a little; or order the hose on Amazon even if it costs $5 more just to get it done; or, pay the damn toll like anyone else; or finally, is waxing the car worthwhile at all (I mean really, who notices)?Here 'yak-shaving' serves as a useful mental trigger which can break you out of the myopic problem-solving loop. This sort of yak-shaving is usually quite bad, and if you don't break out of it soon enough, can lead to considerable exhaustion and waste of time, and lock you into bad long-term decisions. So it's good to periodically ask, if you aren't making progress on a problem of intrinsic interest to you, "so all this work, what's it for anyway? If I were starting over from scratch - knowing what I do now - is this really how I would approach this problem?"
what you are doing is the best way to solve the problem overall, it's just that things have been going wrong and you've been running into continual problems, so you find yourself nested many layers deep dealing with the cascade of problems and documentation
...all your (encrypted) backups are broken because you can't get the most recent decryption key because your drive is corrupted because you were running the GPU 24/7 (to name a recent example of mine) so you're in a LiveCD trying to mount the drive trying passwords trying...
In this case, in addition to simply shaving the yak, you need to do root-cause analysis - you are experiencing what might be called muri or the swiss-cheese model of failure - and in addition to figuring out how to solve each proximate problem on the way, figure out why they happened & how to prevent them in the future. In programming, this frequently entails filing bug reports & document patches, formalizing your recovery methods as scripts or programs, adding tests or redundancy or upgrading hardware, and writing post-mortems.
So the OP interpretation of a stack of nested related problems here is simply a form of this. But here, simply yak shaving may solve the fur problem & allow popping, but it's not enough. It's not enough to simply close those open loops, or have a system for recording open loops. Root-cause analysis is needed. Why did the yak fur fall out of the pillow in the first place and how can it be prevented ever again? Why didn't he have his EZPass in the first place? Why wasn't the hose put on the weekly shopping list (there is a shopping list right?) and replaced long before? And so on. Without attacking problems at the root, you might as well buy a seasonal pass to the zoo, because you are merely applying bandaids to a complex system failing, and if you don't do any root-cause fixes, eventually your problems will seriously stack up and you'll find yourself hit by a so-called 'perfect storm' (actually perfectly foreseeable & inevitable) and then you'll really be sorry.
So 'yak-shaving' is a useful heuristic for keeping planning stacks nested not too deeply by periodically asking whether one is falling prey to one of those 3 failure modes, and need to break out of the yak-shaving by an appropriate countermeasure of either: interrogating the reasons for the akrasia; finding a better approach; or prioritizing fixing the root-causes of needing to yak-shave (rather than focusing on the yak-shaving).
Replies from: Sniffnoy, Elocomment by moridinamael · 2017-03-16T12:03:54.304Z · LW(p) · GW(p)
This perspective suggests "don't yak shave" is a classic deepity. The superficial true meaning is "don't waste time on unimportant sub tasks" and the clearly false but immediately actionable meaning is "don't do subtasks". If you've already clearly identified which tasks are on the critical path and which are not, the yak shaving heuristic is useless, and if you haven't, it's harmfully misleading.
Replies from: entirelyuseless, Lumifer↑ comment by entirelyuseless · 2017-03-16T14:47:56.275Z · LW(p) · GW(p)
I think the post is suggesting rather that "unimportant sub task" and "important sub task" is a mostly fallacious distinction. Omitting lots and lots of somewhat unimportant sub tasks, even though they really were not very important taken individually, can lead to very bad effects overall. Mark Forster notes that if you keep "prioritizing" in such a way that you are always doing the "important" things, and consequently never doing the less important ones, sooner or later they will show you just how unimportant they are.
Replies from: Viliam↑ comment by Viliam · 2017-03-17T16:23:03.565Z · LW(p) · GW(p)
Things that could possibly go wrong when ignoring "unimportant things":
- you were wrong about "this is unlikely to happen" (see 1, 2);
- you were wrong about "and if it happens, I can fix it quickly" (see 3);
- things go wrong at an inconvenient moment when you are even more busy than today (and today you already believe to be too busy to fix the "unimportant thing");
- things are connected, so when the unlikely event happens, dozen "unimportant things" fail at the same time.
Arguably, unfixed problems can encourage creating more problems. If you decide to ignore some aspect at some step, you are more likely to ignore the same aspect at the following steps, because you already decided to not think about X.
Replies from: entirelyuseless↑ comment by entirelyuseless · 2017-03-24T15:01:25.781Z · LW(p) · GW(p)
I am saying that you can be right that ignoring the thing will be unlikely to cause problems. But if something has a 1 in 1000 chance of causing a problem when you ignore it, but you ignore it 5000 times, then you likely will have at least few problems.
In a similar way, you might think "the total negative effects of ignoring this particular case will be necessarily very small," you might be right. But if you ignore the same thing 5000 times and the effect is multiplied by 5000, the total effect is not necessarily small.
I am not necessarily disagreeing with you. I am just saying that the thing might really and truly be unimportant in the same way you think it is; but that does not mean it is unimportant if you ignore it forever and in large numbers of cases.
↑ comment by Lumifer · 2017-03-16T14:45:38.474Z · LW(p) · GW(p)
The superficial true meaning is "don't waste time on unimportant sub tasks" and the clearly false but immediately actionable meaning is "don't do subtasks".
Not quite.
The meaning is "If you have constructed a very long chain of prerequisites, consider that it's likely to be suboptimal and look for a direct shortcut to the terminal goal".
comment by MrMind · 2017-03-17T15:05:37.478Z · LW(p) · GW(p)
Surely, if you find yourself yak-shaving, then it means that things around you are broken. And usually adjusting brokeng things is good.
But what distinguishes yak-shaving from structured procrastination is that yak-shaving is a form of avoidance: yes, the hose is broken, but do you need to buy a new one or you can just temporarily fix it with tape? Do you really need an EZpass from your neighbour or you can just pay the toll? And so on.
If you yak-shave, you're putting unrelevant problems in front of the relevant ones in order to avoid the ugh field projected by the main issue.
comment by The_Jaded_One · 2017-03-19T11:42:06.379Z · LW(p) · GW(p)
We had this problem at work quite a few times. Bosses are reluctant to let me do something which will make things run more smoothly, they want new features instead.
The when things break they're like "What! Why is it broken again?!"
Replies from: Viliam↑ comment by Viliam · 2017-03-24T22:56:38.296Z · LW(p) · GW(p)
But are they personally harmed in some way when the things are broken? At least enough to compensate for the bonuses they get when you add the new features earlier? Maybe in their incentive landscape such behavior is optimal.
Replies from: The_Jaded_One↑ comment by The_Jaded_One · 2017-04-01T09:46:57.359Z · LW(p) · GW(p)
I'm not 100% sure what the incentives for such people are, but it is a very small company.
Actually yesterday this came to bite them and we now have a serious problem because my "fix this underlying system" advice was rejected.
comment by SnowSage4444 · 2017-03-17T18:56:35.670Z · LW(p) · GW(p)
Quite right! Who even came up with "Don't shave yaks"? It sounds like something someone too lazy to shave some damn yaks and get the problem fixed would invent to justify not solving the problem!