When yesterday’s choices become today’s constraints¶
Cross-Domain EchoesShared pattern · Path Dependence
A software service can be difficult to change because other programs have come to rely on how it behaves—even details its maker never promised. A spread-out city can be difficult to reshape because roads, utility lines, and separated destinations were built around earlier development. In both, an initial arrangement gains dependent structures that make later alternatives costly. The useful question is not only “What would work best now?” but “What already depends on the way things are?” The resemblance concerns accumulated constraints. Software compatibility and urban infrastructure create those constraints through different materials, timescales, and decisions.
Choose a role to see its counterpart in both examples. The diagrams show relationships, not measured quantities.
Software interfaces
Hyrum's Law
Read Hyrum's LawDomain-specific abstraction
Observable behavior becomes difficult to change as other programs build dependencies on it.
In this example: Observable behavior becomes difficult to change as other programs build dependencies on it.
Urban development
Urban Sprawl
Read Urban SprawlDomain-specific abstraction
Early roads, utilities, and separated parcels channel later development.
In this example: Early roads, utilities, and separated parcels channel later development.
The starting arrangement creates opportunities that later participants build around. It need not be the result of a single deliberate master plan.
Written comparison
Earlier arrangement
Software interfaces
Observable interface behavior
Urban development
Roads and single-use parcels
The starting arrangement creates opportunities that later participants build around. It need not be the result of a single deliberate master plan.
What builds on it
Software interfaces
User programs depend on observed details
Urban development
Infrastructure and subsequent development follow the established pattern
History matters because it changes what is now connected to, or organized around, the original arrangement.
Cost of changing course
Software interfaces
Changing behavior can break dependent code
Urban development
Undoing roads, utilities, and parcel layouts is costly
The inherited arrangement becomes a constraint through concrete dependencies, not simply because it is old.
Later options
Software interfaces
Maintainer must account for actual reliance
Urban development
Later development follows the established grain
Present decisions face a landscape already shaped by past use and investment.
What carries across
Before replacing an established arrangement, map what has grown dependent on it. Present-day preferences alone do not describe the cost of changing course.
Where the comparison stops
Hyrum’s Law concerns observable behavior acquiring external software dependencies; sprawl also depends on land-use policy, geography, transport, and physical construction. These are distinct dependency mechanisms.
- The comparison does not imply that either outcome is irreversible or that the same intervention works in both. Hiding an implementation detail before reliance forms has no direct urban-planning equivalent.
- Hyrum’s Law describes a tendency that strengthens with use and time. It supplies no quantitative model of urban change or common prediction from user counts.
Conditions for this comparison
- Software users have built reliance on observable behavior.
- The city example concerns persistence of physical infrastructure and parcel patterns, not all causes of sprawl.
Source entries
Shared pattern
Path Dependence
Prime
Core Idea
Outcomes are determined not only by current conditions but by the specific historical trajectory of choices, where past decisions constrain present options and lock in consequences that persist despite present incentives to change
Software interfaces
Hyrum's Law
Domain-specific abstraction
Core Idea
every observable property of a system is sampled by some user, and at least one of those users incorporates that property into production code
What It Is Not
Only shrinking the *observable* surface (encapsulation, jitter, proactively randomized iteration order) prevents dependencies from forming; the contractual lever is inert.
Urban development
Urban Sprawl
Domain-specific abstraction
Core Idea
And once the first wave of low-density development is built, infrastructure path dependence locks in the pattern: roads, utility mains, and the spatial logic of single-use parcels are costly to undo, so subsequent development follows the established grain.