Skip to content
How to ThinkIn the Age of AI
Rulev2RL-547

Match allocation mechanism to contention structure…

When multiple goals compete for the same scarce resource, match the allocation mechanism to dependency structure—use priority queue when importance differs, rotation when all are equal, and time-slicing when multiple need access within the same period.

Why This Is a Rule

Different contention structures require different allocation mechanisms. Using the wrong mechanism for the structure produces predictable failures: priority queues applied to equal-importance goals starve the "lower priority" ones indefinitely. Rotation applied to unequal-importance goals gives too much resource to less important goals. Time-slicing applied when only one goal needs same-period access wastes switching costs. The mechanism must match the structure.

Priority queue: when goals have genuinely different importance levels, the most important goal gets the resource first. This is efficient (highest-value work gets done first) but can starve lower-priority goals if the high-priority goal always has work to do. Use when importance differences are clear and lower-priority goals can tolerate delays. Rotation: when all goals are equally important and each needs periodic access. Strict alternation ensures no goal is permanently disadvantaged. Use when no goal dominates and fairness matters more than optimization. Time-slicing: when multiple goals need access within the same period and can progress with partial-period blocks. Divide the period into dedicated slices. Use when all goals need weekly or daily progress and full-period allocation would starve some for too long.

When This Fires

Common Failure Mode

Defaulting to priority queue for everything: "My most important goal always gets time first." This produces priority-one-monopoly: the most important goal consumes all available resources while goals two through five receive nothing. If goals two through five also matter (they wouldn't be goals otherwise), a priority queue with no starvation prevention produces systematic neglect of everything except the top priority.

The Protocol

(1) When multiple goals compete for a resource, assess the contention structure: Are the goals different in importance? If clearly yes → priority queue. If roughly equal → rotation or time-slicing. Do multiple goals need access within the same period (week/day)? If yes → time-slicing. If one can wait for the next period → rotation. (2) Implement the matched mechanism: Priority queue: rank goals, allocate to highest-priority first. Add starvation prevention: even low-priority goals get minimum guaranteed allocation. Rotation: cycle through goals on a fixed schedule. Each gets its turn regardless of perceived urgency. Time-slicing: divide the period into dedicated blocks. Each goal gets its slice; no reallocation during the period. (3) Review mechanism fit monthly: is it producing the right distribution? Is any goal being systematically starved? Adjust the mechanism or switch to a different one.