Match allocation mechanism to contention structure — priority queue for unequal importance, rotation for equal, time-slicing for concurrent needs
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
- When designing allocation rules for contested resources (Pre-define allocation rules for contested time blocks — negotiating access in the moment is too late and too costly)
- When the current allocation mechanism produces starvation, unfairness, or inefficiency
- When goals compete for time, budget, cognitive energy, or physical resources
- Complements Pre-define allocation rules for contested time blocks — negotiating access in the moment is too late and too costly (pre-define allocation) with the mechanism selection criteria
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.