Hacker News new | ask | show | jobs
by smcl 1267 days ago
> Hal and Lois just illustrated for us what software people like to call “Technical Debt”

Wait didn't they more accurately illustrate what software people like to call "yak shaving"? I mean sure all of these little problems could be analogous to tech debt ... but the thing that sticks out more than anything is that Hal is shifting from one task to the next, each one to make the previous one easier/possible, and each one is further and further from the original goal

2 comments

The way I understand it, yak shaving involves prerequisites. But Hal didn't actually need to do any of those things, they were side issues he found but could have ignored - which is a better fit for technical debt.
Correct, he didn't need to do them at all. He went off and did them anyway. This is what Yak Shaving is - optional, nested distractions that you engage in and which take you away from a task that you intended to perform. I don't understand what you mean about prerequisites.
In the original yak shaving story, every next step was not an optional distraction but was a prerequisite to doing the previous thing; often caused by 'tech debt' (e.g. the protagonist couldn't borrow the tool you needed from your neighbor because he hadn't fulfilled an earlier obligation, and needed the yak hair to do that)
Don’t Shave That Yak! - https://seths.blog/2005/03/dont_shave_that/ (this is the original with the borrowed EZPass)

2020 https://news.ycombinator.com/item?id=21930441 (81 comments)

Don’t shave that yak – God loves lazy programmers https://petewarden.com/2010/06/26/dont-shave-that-yak-god-lo...

2012 https://news.ycombinator.com/item?id=4034034 (3 comments)

The third link has a link to http://www.catb.org/%7Eesr/jargon/html/Y/yak-shaving.html

> [MIT AI Lab, after 2000: orig. probably from a Ren & Stimpy episode.] 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.

So yeah, both in your first link (mostly) and here: prerequisite - something you have to do, not a side thing like the clip of Hal. That GIF has apparently been misused this whole time, muddying the issue.

(The first link ends with the equivalent of "you can avoid yak shaving by introducing technical debt")

> Situation: You have a push-down stack for all your goals. When you hit an obstacle, you push "remove the obstacle" onto the stack. Then, when the obstacle is cleared, you pop the stack, and you are back at your original problem.

> Problem: For some reason, the problems you push onto the stack keep getting bigger and bigger and bigger, dwarfing the original problem, each one dwarfing the one before it.

http://wiki.c2.com/?PushDownGoalStack