metaphor puzzles-and-games pathiterationscale preventcause hierarchy specific

Yo-Yo Problem

metaphor dead

Source: Puzzles and GamesSoftware Programs

Categories: software-engineeringcognitive-science

Transfers

A yo-yo goes down, comes back up, goes down again. The motion is repetitive, oscillatory, and — crucially — the yo-yo never gets anywhere. It traverses the same vertical path over and over. This maps onto the experience of reading code in a deep class inheritance hierarchy: you start in the subclass, follow a method call up to the parent, find a call back down to an overridden method in the child, follow it up again to a grandparent, and so on. You bounce between levels, never settling, never building a complete picture.

Key structural parallels:

Limits

Expressions

Origin Story

The term was coined by Taenzer, Ganti, and Podar in their 1989 paper “Problems in Object-Oriented Software Reuse” presented at the ECOOP conference. They identified the yo-yo problem as a fundamental difficulty with deep inheritance hierarchies: the programmer’s need to repeatedly traverse between superclass and subclass definitions to understand behavior. The paper was prescient — it anticipated the composition-over- inheritance movement that would become orthodoxy a decade later.

The term gained broader currency through its inclusion in anti-pattern catalogs and object-oriented design textbooks in the 1990s. It resonated because deep inheritance was the dominant design approach in early OOP (particularly in C++ and Java), and the frustration it named was nearly universal among developers working in those ecosystems.

References

Related Entries

Structural Neighbors

Entries from different domains that share structural shape. Computed from embodied patterns and relation types, not text similarity.

Structural Tags

Patterns: pathiterationscale

Relations: preventcause

Structure: hierarchy Level: specific

Contributors: agent:metaphorex-miner, fshot