ODUI Framework article

How to Prioritize Bugs, Tech Debt, Features, and Support in One System

When bugs, tech debt, features, and support requests all compete on the same list, the comparison is meaningless. ODUI separates them into distinct lanes so each type of work gets the attention logic it actually needs.

May 15, 2026 By Hani Weiss ODUI Journal 2 categories

To prioritize bugs, tech debt, features, and support in one system, stop forcing them into one ranked backlog. ODUI classifies the work first: emergencies go to B1, measurable improvements go to B2, stakeholder/service pressure goes to B3, and low-evidence ideas or minor issues stay in B4.

Definition

A mixed backlog is a list where different work types compete as if they were interchangeable. ODUI avoids that mistake by assigning each work type to the lane that matches its risk, outcome value, and response need.

Work type ODUI classification test Common bucket
Production incident Does delay cause immediate harm? B1
Outcome-moving feature Does it move a measurable KPI? B2
Tech debt Does it affect speed, quality, stability, or risk? B2 or B4
Support request Is it a service obligation rather than strategic work? B3
Experiment or idea Is evidence still weak? B4

Every engineering team manages at least four fundamentally different categories of work: bugs and incidents, technical improvement and debt, feature development, and support or stakeholder requests. When these all land in the same backlog ranked by a single score or intuition, the comparison is meaningless. A production outage and a login-page redesign should never compete for the same slot on a numbered list.

ODUI handles this by classifying work into operational buckets before any ranking happens. Each bucket carries its own logic for attention, behavior, and measurement — which means each type of work gets the treatment it actually needs.

Why a single backlog is a broken model

A linear backlog treats all work as interchangeable — rows in a table that can be compared by priority. But the urgency of a security vulnerability is fundamentally different from the importance of a feature. The cost of delaying tech debt is different from the cost of delaying a support response. By putting them all on the same list, the team is forced to compare incomparable things.

What happens in practice is not rational ranking. The team defaults to what is easiest, loudest, or nearest to a deadline. Incidents get attention because they scream. Features with vocal stakeholders get attention because they lobby. Tech debt and quiet quality improvements slide. The system rewards noise, not impact.

How ODUI classifies different work types

ODUI's two filters — urgency (will delay cause real harm?) and importance (will success move a measurable outcome?) — sort work into four buckets that naturally absorb different work types:

B1 — Keeps You Alive. Production incidents, security breaches, data corruption, payment failures, compliance deadlines with legal exposure. These are not ranked against features. They are handled immediately because delay causes provable harm. The only question is: is this genuinely a B1, or is it B3 pressure dressed as an emergency?

B2 — Makes You Great. Outcome-driven features, efficiency improvements, tech debt that slows delivery or increases defect rates, quality work that moves retention or reduces churn. These compete with each other inside B2 — a feature vs. a refactor is a legitimate comparison when both link to measurable outcomes. Ranking methods like RICE or value-vs-effort can help here.

B3 — Keeps Others Quiet. Support requests, partner demands, stakeholder asks that do not directly move strategic outcomes but must be honored. These are batched and handled on a defined schedule with a committed response window. They must not interrupt B1 response or B2 focus time.

B4 — Keeps Ideas Breathing. Exploratory spikes, prototype ideas, minor bugs with no measurable impact, theoretical tech debt. These are tracked visibly but do not compete with B2 for active capacity. Validated ideas graduate to B2. The rest are pruned periodically.

The bug that should be B2 vs. the bug that should be B4

Not all bugs belong in the same lane. A bug that blocks checkout and affects 15% of users during peak hours is B1 — fix it now. A bug that causes a confusing UI state on a rarely used settings page, with no measurable impact on retention or support volume, is B4 — track it, but do not let it displace outcome-driven work.

The distinction is the outcome link. If fixing the bug measurably improves a KPI — fewer support tickets, higher conversion, lower churn — it is B2 work and deserves protected time alongside features. If the impact is unmeasurable or cosmetic, it stays in B4 until evidence of impact emerges.

The same logic applies to tech debt. A database query that adds noticeable latency to a high-traffic flow and measurably impacts conversion or support volume is B2. A pattern inconsistency in a rarely touched module with no measurable quality or productivity impact is B4. The framework removes the moral dimension — "we should clean this up" — and replaces it with an evidence requirement.

Converting recurring support into prevention

One of the most powerful ODUI patterns is the B3-to-B2 conversion. When the same support request arrives repeatedly — "how do I reset my password?" or "why is this report not loading?" — the team has a signal. The individual tickets are B3: real obligations, handled through the support lane. But the pattern is B2: a root cause that, if fixed, would eliminate a stream of future B3 work.

ODUI's weekly review is designed to surface these patterns. The Flow Lead checks recurring B3 themes and asks: "Could a B2 improvement remove this demand altogether?" If the answer is yes, the improvement is classified as B2 and competes for protected capacity alongside other outcome-driven work. The result is a system that gets calmer over time — not because requests stop arriving, but because the causes of recurring requests are progressively eliminated.

Mini example: one backlog, four lanes

Suppose the team has four items: a checkout outage, a performance refactor, a customer export request, and a prototype for a new dashboard. A single backlog asks which one is "highest priority" and forces a false comparison.

ODUI asks a better question: what kind of work is each item? The checkout outage is B1. The performance refactor is B2 if it links to conversion, retention, reliability, or delivery speed. The customer export is B3 unless it connects to a strategic outcome. The dashboard prototype is B4 until evidence improves. Only then should the team rank work inside the relevant lane.

When ODUI is better

ODUI is better when engineering capacity is pulled between incidents, product work, support demand, and internal quality. It gives each type of work a fair operating rule instead of letting the loudest category dominate.

When a lighter method is enough

A simple backlog can work when the list is homogeneous, such as only feature ideas or only known bugs of similar severity. Once the backlog mixes survival, strategy, service, and exploration, classification needs to come before ranking.

Conclusion

A single backlog is the root cause of many prioritization failures — not because teams are bad at ranking, but because different types of work should not be ranked against each other. ODUI's bucket model gives bugs, tech debt, features, and support each their own lane with their own logic. The outcome test keeps quality work honest (is this measurable?), and the B3-to-B2 conversion pattern turns service pressure into systemic improvement. The result is not less work — it is work managed in the right category, with the right attention, and at the right pace.

Go deeper

FAQ

Why is a single backlog a problem?

A single backlog mixes fundamentally different types of work — incidents, features, technical improvements, stakeholder requests, and experiments — into one linear list. The result is that items are compared on the wrong dimensions. A security patch and a feature enhancement cannot be meaningfully ranked against each other because they serve entirely different purposes.

How does ODUI handle a bug that is not urgent but eroding quality?

A non-urgent bug that is degrading user experience or team productivity belongs in B2 — it is important work that moves an outcome. The team protects time for it alongside other B2 improvements. If the bug is minor and affects no measurable outcome, it may belong in B4 — tracked, visible, but not competing with outcome-driven work for active capacity.

What about tech debt that has no user-facing impact?

Tech debt that slows delivery, increases defect rates, or raises operational risk links to measurable outcomes — speed, quality, or stability. Those links make it B2 work. Tech debt that is purely cosmetic or theoretical stays in B4 until proven otherwise. The outcome test is the same for tech debt as for features: what measurable change does addressing it produce?

How do you handle support requests that never stop arriving?

Recurring support requests that arrive in B3 are a signal for B2 investment. If the same issue generates a support ticket every week, treating each ticket individually is wasteful. ODUI recommends analyzing recurring B3 patterns and converting the root cause into a B2 prevention or automation task. That turns service pressure into learning.