20

Is there a term or expression for this besides prerequisite? The main idea to convey is that the topic is spiraling out of control.

  • 6
    Please edit your question to include an example of how you would use the phrase or expression. – Lawrence Feb 2 at 4:49
  • 9
    For example, linguistics rabbit hole, as in 'I fell down a linguistics rabbit hole.' It resulted in information overload. Good luck, and welcome to ELU. – KannE Feb 2 at 7:32
  • 9
    @Xai_Phon - In software development, the humorous term "yak shaving" describes precisely this situation. You start out aiming to do A, but then you realise you must do B first. But B requires C, which requires D, etc, ad infinitum. In the end, you never end up achieving A because of the infinite regression of dependencies. I've written a more complete answer below. – TechnoCat Feb 2 at 11:35
  • 6
    en.wikipedia.org/wiki/Siphonaptera_(poem) : "Great fleas have little fleas upon their backs to bite 'em, / And little fleas have lesser fleas, and so ad infinitum." – rajah9 Feb 2 at 12:44
  • 2
    Depending on what you're asking, a person trying to learn A before addressing prerequisites B, C, etc, could be said to be "out of their depth" - meaning that they're attacking a topic several levels more advanced than they have competency to execute. – J... Feb 2 at 19:44
39

In the software development world, there is a humorous term called "yak shaving" that describes a very similar situation of cascading dependencies.

As noted on https://americanexpress.io/yak-shaving/:

"Yak shaving refers to a task, that leads you to perform another related task and so on, and so on — all distracting you from your original goal.

In other words, we want to start some task, but there is something that precedes that one, and so on, ad infinitum.

The internet is full of examples of yak shaving. One thoughtful example that I like is at https://blog.gruntwork.io/introducing-the-yak-shaving-series-247e7f20f81, where the author likens software development to a fractal:

".... when you actually start doing the project, you begin to zoom in, and realize there is quite a bit of detail hiding in every corner. And each of those details seems to have more details attached to it, and each of those has more, and so on."

Bringing this back to your example - where subject A has a prerequisite of B, which in turn has a prerequisite of C, etc - I would refer to it as an infinite regression of dependencies ... or simply as yak shaving if you want the humorous term. :)

  • 18
    For those who never shaved a yak, why exactly this activity was chosen as a metaphor? – svavil Feb 2 at 13:01
  • 7
    @svavil - Here's a lovely reference from 11 Feb 2000 - almost exactly 20 years ago!!! - about the origins of the term "yak shaving". projects.csail.mit.edu/gsb/old-archive/gsb-archive/…. It's a wonderful read! – TechnoCat Feb 2 at 13:18
  • 6
    @svavil - Here's a link to someone who's tackled the problem that there is no good etymology for the term: alexandrasamuel.com/toolbox/yak-shaving-etymology. In short, you'll find that there is NO really good reason for it being a yak rather than a sheep, a goat, an elephant or a koala. It's simply that someone used the term ... and it caught on because the situation it describes is so well understood by all of us. – TechnoCat Feb 2 at 13:29
  • 5
    @svavil: probably because "yak" is more obscure, and so more funny. "I thought svavil was supposed to be recalibrating the main gun on the scout ship, why is he shaving a yak? And where did he get one?" "Oh man, it's a long story." – Dave Feb 2 at 17:31
  • 12
    yourdictionary.com/yak-shaving explains why it's a yak. – shoover Feb 2 at 20:45
19

I've worked at a number of software development companies where it would be called:

going down a rabbit hole

https://idioms.thefreedictionary.com/go+down+the+rabbit+hole

To enter into a situation or begin a process or journey that is particularly strange, problematic, difficult, complex, or chaotic, especially one that becomes increasingly so as it develops or unfolds. (An allusion to Alice's Adventures in Wonderland by Lewis Carroll.)

(Emphasis mine)

Additionally, you might describe a specific task as a rabbit hole if you're likely to find those characteristics once you start working on it...

  • I first thought of this. Probably only used in Britain (and Commonwealth? ). – nigel222 Feb 4 at 15:05
  • Not just software. People would understand "going down the rabbit hole of planning regulations" or "... inheritance tax planning" or " ... flat earther conspiracy theories" – nigel222 Feb 4 at 15:09
  • @nigel222 Very common in AmE as well. – StackOverthrow Feb 4 at 16:15
  • @nigel222 "Going down a rabbit hole" is colloquial in American English as well. – Daniel Feb 4 at 18:52
14

Dependency hell refers especially to software with conflicting dependencies, but can be used somewhat more broadly to refer to pain from prerequisites.

Scope creep mostly refers to new requirements being added, broadening a project's scope, but might sometimes also be applied to dependencies causing things to spiral out of control.

  • 2
    Yes, "dependency hell" is such a great term! Also, empirically, it's interesting to consider the extent to which "scope creep" is actual scope creep or unidentified dependencies. In my own career I've seen vast amounts of scope creep but - after thinking about your answer - I realise that much of it's not genuine scope creep but a failure to consider all the related projects that need to be done to achieve the scope. Good answer! – TechnoCat Feb 3 at 13:48
6

There is a logical expression, which, though not exactly what you are asking, could reasonably be applied to it. I mean the idea of infinite regress

Google.com offers this explanation.

An infinite regress arises when we ask what are the justifications for the reasons themselves. If the reasons count as knowledge, they must themselves be justified with reasons for the reasons, and so on, ad infinitum. The problem of the infinite regress was a critical argument of the Skeptics in ancient philosophy.

Merriam Webster offers the following;

an endless chain of reasoning leading backward by interpolating a third entity between any two entities.

The earliest such chain of reasoning occurs in Plato, or, rather, occurs in Aristotle’s critique of Plato’s theory of forms. Plato claimed that to explain the properties, like just, or beautiful, you had to understand that such qualities are reflections of real entities, JUSTICE and BEAUTY. Aristotle, in his Nichomachean Ethics points out that if this were true, Then in order to understand, for example BEAUTY, we must have to understand a third entity (say BEAUTY and so on ad infinity. This type of chain of philosophical questions is what has come to be known as infinite regress. The argument that points it out has come to be known as the third man argument.

Children subject us to it. when they realise that to every answer you give, they can keep saying “why”.

Your question involves a regress of questions, whether actually infinite or not.

6

I call that a chain of prerequisites, and it applies to more than learning.

  • What's to expand? If you're renovating a kitchen, you spackle, then you paint, then you install new cabinets, and so on and so on. If you're baking a cake ... well, you get the idea. Applying this phrase to anything else is just too obvious to be explained. – Jennifer Feb 16 at 17:01
0

What you describe is actually called a stack overflow in computer science: A stack is a LIFO data structure (last in, first out) designated to manage tasks. When too many tasks come in before they can be handled, all memory available for the stack is full. And bad things happen.

  • No matter how many prerequisites you have IRL, I doubt your going to run out of room to track them. But you CAN have so many that it's going to take you a long time to get through them. – Jennifer Feb 16 at 17:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.