4 ms·
I like the expression "Yak Shaving", but I don't really understand what it's supposed to mean. In the story, obviously the guy should return his neighbor's pil
by gweinberg 7y ago
I like the expression "Yak Shaving", but I don't really understand what it's supposed to mean.
In the story, obviously the guy should return his neighbor's pillow, whether or not he's going to immediately ask for another favor, and he probably ought to get a new hose also. So even if he thinks shaving the yak is way too much trouble to get his car waxed, shouldn't he shave the yak anyway?
- wolfgang42 7y agoA lot of people in this thread are talking about it in the context of technical debt, but I've always interpreted it as an allegory about time management: you find yourself shaving a yak when you've ‘gone down the rabbit hole’ and traversed several layers down the dependency chain of your to-do list. When you realize this is a good time to take a moment to reflect on the situation. Sometimes, the yak really does need shaving right now, but sometimes it's a result of performing a depth-first search, so to speak, and it's better to back up and take another tack, leaving the yak for later. And even if that yak really does need shaving, taking a moment to reflect on why you've found yourself shaving it can be useful to prevent frustration that the original task doesn't even seem to have been started yet.
- zeroimpl 7y agoYeah, it seems the metaphor is about incorrectly performing a depth-first-search, when breadth-first-search is the right algorithm in general to find the optimal solution.
- kthejoker2 7y agoI've always interpreted yak shaving as "work that is neither necessary nor sufficient to complete a task." Sometimes it's bikeshedding (looking through color swatches for your navbar when you dont even have a working CRUD system), sometimes it's indirect value add to you or your team (evaluating new ORMs or IDEs), sometimes it's just karma farming in the universe (sending PRs to a new GitHub repo you've found that almost solves your issues...) I think of it as concentric circles: the center is the goal, the first ring is the tasks you need to complete, and so on ... and yak shaving is anything more than 2 layers away (or outside the circle entirely!)
- taneq 7y agoIf it's not necessary to complete the task then it's not yak shaving, it's just procrastination.
- kthejoker2 7y agoWell, sure, procrastination is a subset of yak shaving ... but it's also a matter of degree. Consider my example of evaluating ORMs. Option 1: Blindly choose first ORM from a Google search. Option 2: spend 2 hours reading reviews, blogs, etc. to compare the 3 most popular ORMs. Option 3: spend a day spinning up containers for each ORM, testing out a CRUD prototype for each, evaluating some basic cases. Option 4: spend a week down the deep rabbit hole of ORM internals, query rolling, edge cases at scales your app will never see ... And everything in between. None of it's necessary - even the ORM itself - but it's not all wasted effort either.