GitScrum / Docs
All Best Practices

Feature Flag Rollout | Progressive Release

Progressive feature rollouts: start internal, expand to beta, then 5% to 25% to 50% to 100%. GitScrum tracks flag status and coordinates phases.

5 min read

Feature flags transform deployment from all-or-nothing events into controlled rollouts you can tune in real-time. GitScrum helps track feature flag status across tasks, coordinate flag-gated releases, and manage the lifecycle of flags from creation to cleanup.

Feature Flag Fundamentals

Flag Types

FEATURE FLAG CATEGORIES:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ RELEASE FLAGS (temporary):                                  β”‚
β”‚ Purpose: Control feature rollout                           β”‚
β”‚ Lifespan: Days to weeks                                    β”‚
β”‚ Example: NEW_CHECKOUT_FLOW                                 β”‚
β”‚ Remove: After 100% rollout                                 β”‚
β”‚                                                             β”‚
β”‚ EXPERIMENT FLAGS (temporary):                               β”‚
β”‚ Purpose: A/B testing                                       β”‚
β”‚ Lifespan: Duration of experiment                           β”‚
β”‚ Example: PRICING_PAGE_VARIANT_B                            β”‚
β”‚ Remove: When experiment concludes                          β”‚
β”‚                                                             β”‚
β”‚ OPS FLAGS (long-lived):                                     β”‚
β”‚ Purpose: Operational control                               β”‚
β”‚ Lifespan: Permanent                                        β”‚
β”‚ Example: ENABLE_RATE_LIMITING                              β”‚
β”‚ Remove: Never (toggle on/off as needed)                    β”‚
β”‚                                                             β”‚
β”‚ PERMISSION FLAGS (long-lived):                              β”‚
β”‚ Purpose: Feature access control                            β”‚
β”‚ Lifespan: Permanent                                        β”‚
β”‚ Example: ENTERPRISE_ANALYTICS                              β”‚
β”‚ Remove: Never (controls entitlements)                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Flag Lifecycle

FLAG LIFECYCLE:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ CREATE β†’ DEVELOP β†’ ROLLOUT β†’ STABILIZE β†’ CLEANUP           β”‚
β”‚                                                             β”‚
β”‚ CREATE:                                                     β”‚
β”‚ β€’ Define flag name and type                                β”‚
β”‚ β€’ Document purpose and owner                               β”‚
β”‚ β€’ Set initial state (off)                                  β”‚
β”‚                                                             β”‚
β”‚ DEVELOP:                                                    β”‚
β”‚ β€’ Implement feature behind flag                            β”‚
β”‚ β€’ Test with flag on/off                                    β”‚
β”‚ β€’ Ship to production (flag off)                            β”‚
β”‚                                                             β”‚
β”‚ ROLLOUT:                                                    β”‚
β”‚ β€’ Enable for internal β†’ beta β†’ gradual %                   β”‚
β”‚ β€’ Monitor metrics at each stage                            β”‚
β”‚ β€’ Pause/rollback if issues                                 β”‚
β”‚                                                             β”‚
β”‚ STABILIZE:                                                  β”‚
β”‚ β€’ Reach 100% rollout                                       β”‚
β”‚ β€’ Monitor for 1-2 weeks                                    β”‚
β”‚ β€’ Confirm feature is stable                                β”‚
β”‚                                                             β”‚
β”‚ CLEANUP:                                                    β”‚
β”‚ β€’ Remove flag checks from code                             β”‚
β”‚ β€’ Delete flag configuration                                β”‚
β”‚ β€’ Update documentation                                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Rollout Strategies

Progressive Rollout

GRADUAL ROLLOUT PLAN:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Feature: NEW_PAYMENT_FLOW                                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                             β”‚
β”‚ STAGE 1: Internal (Day 1)                                  β”‚
β”‚ Target: Company employees only                             β”‚
β”‚ Duration: 2 days                                           β”‚
β”‚ Success: No critical bugs                                  β”‚
β”‚                                                             β”‚
β”‚ STAGE 2: Beta (Day 3)                                      β”‚
β”‚ Target: Opted-in beta users (~500)                         β”‚
β”‚ Duration: 3 days                                           β”‚
β”‚ Success: <1% error rate, positive feedback                 β”‚
β”‚                                                             β”‚
β”‚ STAGE 3: 5% (Day 6)                                        β”‚
β”‚ Target: Random 5% of users                                 β”‚
β”‚ Duration: 2 days                                           β”‚
β”‚ Success: Metrics stable vs control                         β”‚
β”‚                                                             β”‚
β”‚ STAGE 4: 25% (Day 8)                                       β”‚
β”‚ Target: Random 25%                                         β”‚
β”‚ Duration: 3 days                                           β”‚
β”‚ Success: Conversion rate maintained                        β”‚
β”‚                                                             β”‚
β”‚ STAGE 5: 50% (Day 11)                                      β”‚
β”‚ Target: Random 50%                                         β”‚
β”‚ Duration: 3 days                                           β”‚
β”‚ Success: Performance metrics OK                            β”‚
β”‚                                                             β”‚
β”‚ STAGE 6: 100% (Day 14)                                     β”‚
β”‚ Target: All users                                          β”‚
β”‚ Duration: 7 days monitoring                                β”‚
β”‚ Success: Ready for cleanup                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Risk-Based Rollout

ROLLOUT DECISION MATRIX:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ FEATURE RISK    β”‚ STRATEGY                                 β”‚
│─────────────────┼──────────────────────────────────────────│
β”‚ LOW             β”‚ Internal β†’ 25% β†’ 100%                    β”‚
β”‚ (UI tweaks)     β”‚ 3-day rollout                           β”‚
β”‚                 β”‚                                          β”‚
β”‚ MEDIUM          β”‚ Internal β†’ Beta β†’ 5% β†’ 25% β†’ 50% β†’ 100% β”‚
β”‚ (new features)  β”‚ 2-week rollout                          β”‚
β”‚                 β”‚                                          β”‚
β”‚ HIGH            β”‚ Internal β†’ Beta β†’ 1% β†’ 5% β†’ 10% β†’       β”‚
β”‚ (payments,      β”‚ 25% β†’ 50% β†’ 75% β†’ 100%                  β”‚
β”‚ auth, data)     β”‚ 4-week rollout, extensive monitoring    β”‚
β”‚                 β”‚                                          β”‚
β”‚ CRITICAL        β”‚ Manual approval at each stage            β”‚
β”‚ (compliance)    β”‚ Stakeholder sign-off required           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Monitoring and Metrics

Rollout Dashboard

FLAG STATUS DASHBOARD:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ NEW_PAYMENT_FLOW - Stage 4 (25%)                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                             β”‚
β”‚ ROLLOUT PROGRESS:                                           β”‚
β”‚ [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] 25%                            β”‚
β”‚                                                             β”‚
β”‚ METRICS (Flag ON vs OFF):                                   β”‚
β”‚                   ON          OFF         DIFF              β”‚
β”‚ Conversion:      4.2%        4.1%        +0.1% βœ…          β”‚
β”‚ Errors:          0.3%        0.3%        0.0%  βœ…          β”‚
β”‚ Load time:       1.2s        1.1s        +0.1s ⚠️          β”‚
β”‚ Completions:     89%         88%         +1.0% βœ…          β”‚
β”‚                                                             β”‚
β”‚ ALERTS:                                                     β”‚
β”‚ ⚠️ Load time slightly elevated - monitoring                β”‚
β”‚                                                             β”‚
β”‚ ACTIONS:                                                    β”‚
β”‚ [Advance to 50%] [Pause] [Rollback]                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Incident Response

ROLLBACK PROCEDURE:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                             β”‚
β”‚ TRIGGERS FOR ROLLBACK:                                      β”‚
β”‚ β€’ Error rate > 2x baseline                                 β”‚
β”‚ β€’ Conversion drop > 5%                                     β”‚
β”‚ β€’ P0/P1 bug discovered                                     β”‚
β”‚ β€’ Significant user complaints                              β”‚
β”‚                                                             β”‚
β”‚ ROLLBACK STEPS:                                             β”‚
β”‚ 1. Disable flag (instant effect)                           β”‚
β”‚ 2. Notify team in #incident channel                        β”‚
β”‚ 3. Document issue                                          β”‚
β”‚ 4. Create task for fix                                     β”‚
β”‚ 5. Plan re-rollout                                         β”‚
β”‚                                                             β”‚
β”‚ POST-ROLLBACK:                                              β”‚
β”‚ β€’ Review what went wrong                                   β”‚
β”‚ β€’ Update monitoring if needed                              β”‚
β”‚ β€’ Consider smaller rollout steps                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Related Solutions