Balance Features vs Bug Fixes | Sprint Allocation Guide
Allocate sprint capacity between features and bugs using GitScrum's prioritization workflows. Labels, automation rules, and dashboards ensure bugs don't derail your roadmap.
13 min read
Every development team faces the tension between building new features and fixing existing bugs. GitScrum's board configuration, label system, and sprint planning tools help teams find the right balance by making bug work visible, establishing allocation policies, and creating processes that prevent bugs from being perpetually deprioritized while still delivering customer value through new capabilities.
Understanding the Tension
The Balance Problem
COMPETING PRIORITIES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WHY BALANCE IS HARD β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β FEATURE PRESSURE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β’ Roadmap commitments to stakeholders ββ
β β β’ Competitive pressure to ship ββ
β β β’ New features = visible progress ββ
β β β’ Revenue tied to feature delivery ββ
β β β’ More "exciting" work for team ββ
β β ββ
β β Result: Bugs get pushed to "later" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β BUG PRESSURE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β’ Customer complaints and churn ββ
β β β’ Support ticket volume ββ
β β β’ Technical debt slowing development ββ
β β β’ Team morale (working on broken product) ββ
β β β’ Security and compliance risks ββ
β β ββ
β β Result: "Bug bankruptcy" if ignored too long ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β THE DEATH SPIRAL: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Skip bugs β Ship features β ββ
β β More bugs appear β Skip bugs β ββ
β β Ship features faster (pressure) β ββ
β β Even more bugs β Product destabilizes β ββ
β β Features can't ship (everything breaks) β ββ
β β Emergency bug sprint β Team burns out ββ
β β ββ
β β Breaking the cycle requires intentional allocation ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Healthy Balance Indicators
MEASURING YOUR BALANCE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HEALTH SIGNALS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β HEALTHY: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β
Bug count stable or decreasing ββ
β β β
Critical bugs resolved within SLA ββ
β β β
Features ship without major regressions ββ
β β β
Team confident in product stability ββ
β β β
Support ticket volume manageable ββ
β β β
Bugs distributed across sprints (not batched) ββ
β β ββ
β β Typical allocation: 70% features, 20% bugs, 10% tech ββ
β β debt ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β UNHEALTHY: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β οΈ Bug backlog growing every sprint ββ
β β β οΈ "Old" bugs (3+ months) accumulating ββ
β β β οΈ Critical bugs take weeks to fix ββ
β β β οΈ Features blocked by existing bugs ββ
β β β οΈ Team dreading bug triage ββ
β β β οΈ Customer complaints increasing ββ
β β ββ
β β Warning: Need to rebalance allocation ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β CRISIS: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β π¨ "Bug bankruptcy" - too many to count ββ
β β π¨ Features can't ship due to regressions ββ
β β π¨ Major customers threatening to leave ββ
β β π¨ Team afraid to touch code ββ
β β ββ
β β Emergency: Need dedicated bug sprint(s) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Allocation Strategies
Percentage Allocation
FIXED ALLOCATION APPROACH:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SPRINT CAPACITY SPLIT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β MODEL: 70/20/10 β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Sprint Capacity: 80 story points ββ
β β ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β β FEATURES β 56 pts β ββ
β β β (Roadmap items, new capabilities) β 70% β ββ
β β βββββββββββββββββββββββββββββββββββββββββΌβββββββββ€ ββ
β β β BUGS β 16 pts β ββ
β β β (Defects, regressions, quality) β 20% β ββ
β β βββββββββββββββββββββββββββββββββββββββββΌβββββββββ€ ββ
β β β TECH DEBT β 8 pts β ββ
β β β (Refactoring, tooling, upgrades) β 10% β ββ
β β βββββββββββββββββββββββββββββββββββββββββ΄βββββββββ ββ
β β ββ
β β IN GITSCRUM: ββ
β β β’ Use labels: type/feature, type/bug, type/tech-debt ββ
β β β’ Filter by labels to verify allocation ββ
β β β’ Track in sprint analytics ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ADJUSTING BASED ON STATE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β State β Features β Bugs β Tech Debt ββ
β β ββββββββββββββββΌβββββββββββΌβββββββΌβββββββββββ ββ
β β Healthy β 70% β 20% β 10% ββ
β β Bug backlog β 60% β 30% β 10% ββ
β β Stabilization β 50% β 40% β 10% ββ
β β Crisis β 30% β 60% β 10% ββ
β β Post-crisis β 80% β 15% β 5% ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Bug Days/Rotation
DEDICATED BUG TIME:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ROTATION APPROACHES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β OPTION 1: BUG DAY β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Every Friday: Bug fix day ββ
β β ββ
β β Rules: ββ
β β β’ Whole team works on bugs ββ
β β β’ No feature work allowed ββ
β β β’ Triage in morning, fix all day ββ
β β β’ Celebrate fixes at end of day ββ
β β ββ
β β Benefits: ββ
β β β’ Predictable bug time ββ
β β β’ No context switching during week ββ
β β β’ Team ritual builds culture ββ
β β ββ
β β Drawbacks: ββ
β β β’ Critical bugs wait until Friday ββ
β β β’ One day might not be enough ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OPTION 2: BUG ROTATION β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Each sprint: One developer on bug duty ββ
β β ββ
β β Rules: ββ
β β β’ Rotates each sprint ββ
β β β’ Bug duty = only bugs, no features ββ
β β β’ Handle critical bugs immediately ββ
β β β’ Work through prioritized backlog ββ
β β ββ
β β Benefits: ββ
β β β’ Fast response to critical bugs ββ
β β β’ Dedicated focus (no split attention) ββ
β β β’ Everyone learns all areas of code ββ
β β ββ
β β Drawbacks: ββ
β β β’ Feature velocity reduced by 1 person ββ
β β β’ Can feel like punishment ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OPTION 3: BUG SPRINT β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Every 4th sprint: Bug-only sprint ββ
β β ββ
β β Rules: ββ
β β β’ Entire sprint dedicated to quality ββ
β β β’ Bugs, tech debt, testing improvements ββ
β β β’ No new features ββ
β β ββ
β β Best for: Teams with significant accumulated debt ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Bug Prioritization
Severity and Priority
BUG CLASSIFICATION:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SEVERITY VS PRIORITY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β SEVERITY (Impact of bug): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β S1 - CRITICAL: ββ
β β β’ Data loss or corruption ββ
β β β’ Security vulnerability ββ
β β β’ Complete feature broken ββ
β β β’ No workaround possible ββ
β β ββ
β β S2 - HIGH: ββ
β β β’ Major feature significantly degraded ββ
β β β’ Workaround exists but painful ββ
β β β’ Affects many users ββ
β β ββ
β β S3 - MEDIUM: ββ
β β β’ Feature works but with issues ββ
β β β’ Easy workaround available ββ
β β β’ Affects some users ββ
β β ββ
β β S4 - LOW: ββ
β β β’ Cosmetic issues ββ
β β β’ Edge cases ββ
β β β’ Minimal user impact ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PRIORITY (When to fix): β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β P1: Fix immediately (drop everything) ββ
β β P2: Fix this sprint ββ
β β P3: Fix soon (next 2-3 sprints) ββ
β β P4: Fix eventually (backlog) ββ
β β ββ
β β Priority considers: ββ
β β β’ Severity ββ
β β β’ Number of users affected ββ
β β β’ Customer tier (enterprise vs free) ββ
β β β’ Workaround availability ββ
β β β’ Effort to fix ββ
β β β’ Related work in progress ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SEVERITY β PRIORITY MAPPING: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Many Users β Some Users β Few Users ββ
β β βββββββββΌβββββββββββββΌβββββββββββββΌβββββββββββ ββ
β β S1 Crit β P1 β P1 β P2 ββ
β β S2 High β P1 β P2 β P2 ββ
β β S3 Med β P2 β P3 β P3 ββ
β β S4 Low β P3 β P4 β P4 ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
SLA Approach
SERVICE LEVEL AGREEMENTS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BUG RESOLUTION SLAS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β DEFINE RESPONSE AND RESOLUTION TIMES: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Priority β Acknowledge β Fix Started β Resolved ββ
β β ββββββββββΌββββββββββββββΌββββββββββββββΌβββββββββ ββ
β β P1 β 1 hour β 4 hours β 24 hours ββ
β β P2 β 4 hours β 1 day β 1 week ββ
β β P3 β 1 day β 1 week β 1 month ββ
β β P4 β 1 week β Backlog β When capacity ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β TRACKING IN GITSCRUM: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Add custom field: "Bug Priority" (P1-P4) ββ
β β 2. Add custom field: "Reported Date" ββ
β β 3. Create saved filters: ββ
β β β’ "P1 Bugs" - immediate attention ββ
β β β’ "SLA At Risk" - approaching deadline ββ
β β β’ "SLA Breached" - past deadline ββ
β β ββ
β β 4. Review daily in standup: ββ
β β "Any P1/P2 bugs? Any at SLA risk?" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SLA BREACH ESCALATION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β At 50% of SLA time: Yellow flag, PM notified ββ
β β At 80% of SLA time: Orange flag, Lead involved ββ
β β At 100% (breach): Red flag, leadership escalation ββ
β β ββ
β β Breaches require post-mortem: Why did this slip? ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Sprint Planning
Bug Selection
PLANNING FOR BUGS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SPRINT PLANNING APPROACH β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β BEFORE PLANNING: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Triage bug backlog ββ
β β β’ Update priorities ββ
β β β’ Close duplicates/invalid ββ
β β β’ Add effort estimates ββ
β β ββ
β β 2. Calculate bug budget ββ
β β β’ Total capacity Γ bug percentage ββ
β β β’ Example: 80 points Γ 20% = 16 points for bugs ββ
β β ββ
β β 3. Pre-select candidates ββ
β β β’ P1/P2 bugs (required) ββ
β β β’ Oldest P3 bugs ββ
β β β’ Bugs related to sprint features ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DURING PLANNING: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β 1. Start with required bugs (P1/P2) ββ
β β β’ Non-negotiable, must fit ββ
β β β’ If too many, escalate capacity problem ββ
β β ββ
β β 2. Fill remaining bug budget ββ
β β β’ Pick from P3 candidates ββ
β β β’ Consider: age, customer impact, related work ββ
β β ββ
β β 3. Plan features with remaining capacity ββ
β β ββ
β β 4. Check balance ββ
β β β’ Does allocation match target percentages? ββ
β β β’ Adjust if needed ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β BUG BUNDLING: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Group related bugs for efficiency: ββ
β β ββ
β β "Payment bugs bundle" (3 bugs, same area): ββ
β β β’ Fix all while context is loaded ββ
β β β’ Test together ββ
β β β’ Deploy together ββ
β β ββ
β β "Feature X bugs" (bugs in area being changed): ββ
β β β’ Fix while already modifying code ββ
β β β’ Prevents double context switching ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Board Configuration
VISUALIZING BALANCE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BOARD SETUP FOR VISIBILITY β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β OPTION 1: SWIMLANES BY TYPE β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β βββββββββββ¬ββββββββββ¬ββββββββββ¬ββββββββββ ββ
β β β To Do β In Progβ Review β Done β ββ
β β βββββββββββΌββββββββββΌββββββββββΌββββββββββ€ ββ
β β β FEATURES ββ
β β β [card] β [card] β [card] β [card] β ββ
β β β [card] β β β [card] β ββ
β β βββββββββββΌββββββββββΌββββββββββΌββββββββββ€ ββ
β β β BUGS ββ
β β β [card] β [card] β β [card] β ββ
β β β [card] β β β β ββ
β β βββββββββββΌββββββββββΌββββββββββΌββββββββββ€ ββ
β β β TECH DEBT ββ
β β β [card] β β β [card] β ββ
β β βββββββββββ΄ββββββββββ΄ββββββββββ΄ββββββββββ ββ
β β ββ
β β Visual: See balance at a glance ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OPTION 2: COLOR-CODED LABELS β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Label colors: ββ
β β π£ Feature (purple) ββ
β β π΄ Bug (red) ββ
β β π‘ Tech Debt (yellow) ββ
β β ββ
β β Quick scan shows color distribution on board ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OPTION 3: SEPARATE BUG BOARD β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Bug Triage Board: ββ
β β [Inbox] β [Prioritized] β [Ready] β [In Sprint] ββ
β β ββ
β β Feature Board: ββ
β β [Backlog] β [Sprint] β [In Progress] β [Done] ββ
β β ββ
β β Cards move from Bug Board to Feature Board when ββ
β β added to sprint ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Prevention
Quality Gates
PREVENTING BUGS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β QUALITY PRACTICES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β BEFORE MERGE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β Code review (required) ββ
β β β Automated tests pass ββ
β β β Manual testing for UI changes ββ
β β β Test on staging environment ββ
β β ββ
β β Rule: No merge until all boxes checked ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DEFINITION OF DONE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Feature isn't "done" until: ββ
β β β Tests written (unit + integration) ββ
β β β Documentation updated ββ
β β β Error handling implemented ββ
β β β Edge cases considered ββ
β β β Monitoring/logging added ββ
β β ββ
β β In GitScrum: Add DoD checklist to task template ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β REGRESSION PREVENTION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β For every bug fixed: ββ
β β β’ Write test that would have caught it ββ
β β β’ Add to regression test suite ββ
β β β’ Link test to bug task ββ
β β ββ
β β "A bug fixed without a test is a bug waiting to return" ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ