8 min read • Guide 799 of 877
Release Management Strategies
Consistent releases build trust. GitScrum helps coordinate release planning and track what ships in each version.
Release Planning
Release Cadences
RELEASE CADENCE OPTIONS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CONTINUOUS DEPLOYMENT: │
│ ────────────────────── │
│ Every commit to main → production │
│ Multiple releases per day │
│ Lowest risk per release │
│ Requires: Strong automation, feature flags, fast tests │
│ │
│ DAILY RELEASES: │
│ ─────────────── │
│ Fixed time each day │
│ Changes batch together │
│ Low risk, predictable │
│ Requires: Good CI/CD, fast tests │
│ │
│ WEEKLY RELEASES: │
│ ──────────────── │
│ Every Tuesday (or similar) │
│ Week for testing and preparation │
│ Common for web applications │
│ Requires: Feature freeze before release │
│ │
│ SPRINT-BASED: │
│ ───────────── │
│ End of each sprint │
│ 1-2 week cycles │
│ Aligns with agile ceremonies │
│ Requires: Sprint discipline │
│ │
│ TRAIN MODEL: │
│ ──────────── │
│ Fixed schedule: "Train leaves on Tuesday" │
│ Features ready → ship. Not ready → wait for next train │
│ Predictable for stakeholders │
│ Requires: Decoupled features │
│ │
│ QUARTERLY / ANNUAL: │
│ ─────────────────── │
│ Major versions with long cycles │
│ High risk per release │
│ Common for: Desktop software, mobile apps, hardware │
│ Requires: Extensive testing, rollback planning │
└─────────────────────────────────────────────────────────────┘
Release Planning
PLANNING A RELEASE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ RELEASE PLAN: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ RELEASE: v2.4.0 ││
│ │ TARGET DATE: January 30, 2025 ││
│ │ RELEASE MANAGER: @jordan ││
│ │ ││
│ │ THEME: Payment improvements + Performance ││
│ │ ││
│ │ FEATURES INCLUDED: ││
│ │ ☑ EPIC-015: PayPal integration ││
│ │ ☑ EPIC-018: Dashboard performance ││
│ │ ☑ STORY-890: Email template updates ││
│ │ ☑ BUG-123: Fix timezone display ││
│ │ ☐ STORY-891: Custom reports (at risk) ││
│ │ ││
│ │ TIMELINE: ││
│ │ Jan 20: Feature freeze ││
│ │ Jan 21-24: Testing and bug fixes ││
│ │ Jan 27: Release candidate ready ││
│ │ Jan 28: Staging deployment ││
│ │ Jan 29: Final verification ││
│ │ Jan 30: Production release ││
│ │ ││
│ │ DEPENDENCIES: ││
│ │ • Stripe API v3 migration complete ││
│ │ • Marketing ready with announcement ││
│ │ ││
│ │ ROLLBACK PLAN: ││
│ │ Keep v2.3.0 ready for quick rollback ││
│ │ Database migrations are backward compatible ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ FEATURE FREEZE: │
│ ─────────────── │
│ After freeze: Only bug fixes allowed │
│ New features → wait for next release │
│ Focus shifts to stability │
└─────────────────────────────────────────────────────────────┘
Versioning
Semantic Versioning
SEMANTIC VERSIONING (SemVer):
┌─────────────────────────────────────────────────────────────┐
│ │
│ VERSION FORMAT: MAJOR.MINOR.PATCH │
│ ───────────────────────────────── │
│ │
│ v2.4.1 │
│ │ │ │ │
│ │ │ └── PATCH: Bug fixes only (no new features) │
│ │ │ Increment: 2.4.0 → 2.4.1 │
│ │ │ │
│ │ └─── MINOR: New features, backward compatible │
│ │ Increment: 2.4.1 → 2.5.0 (patch resets) │
│ │ │
│ └──── MAJOR: Breaking changes │
│ Increment: 2.5.0 → 3.0.0 (minor/patch reset) │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ EXAMPLES: │
│ │
│ v1.2.3 → v1.2.4 │
│ Bug fix: Fixed crash when exporting large files │
│ │
│ v1.2.4 → v1.3.0 │
│ New feature: Added dark mode │
│ (Still works with old configs) │
│ │
│ v1.3.0 → v2.0.0 │
│ Breaking: Changed API authentication method │
│ (Old clients won't work without updates) │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ PRE-RELEASE VERSIONS: │
│ ───────────────────── │
│ v2.0.0-alpha.1 Early testing │
│ v2.0.0-beta.1 Feature complete, testing │
│ v2.0.0-rc.1 Release candidate │
│ v2.0.0 Stable release │
└─────────────────────────────────────────────────────────────┘
Release Process
Deployment Workflow
RELEASE WORKFLOW:
┌─────────────────────────────────────────────────────────────┐
│ │
│ RELEASE PIPELINE: │
│ │
│ DEVELOPMENT │
│ │ │
│ ▼ │
│ ┌─────────┐ Feature branches, daily commits │
│ │ DEV │ Auto-deploy on every merge │
│ └────┬────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ Feature complete, integration testing │
│ │ STAGING │ Deploy release candidates │
│ └────┬────┘ QA verification │
│ │ │
│ ▼ │
│ ┌─────────┐ Production-like environment │
│ │ PROD │ Real user traffic │
│ └─────────┘ Monitoring active │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ RELEASE CHECKLIST: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ PRE-RELEASE: ││
│ │ ☐ All features merged to release branch ││
│ │ ☐ All tests passing ││
│ │ ☐ Release notes prepared ││
│ │ ☐ Staging deployed and verified ││
│ │ ☐ Stakeholders notified ││
│ │ ││
│ │ RELEASE DAY: ││
│ │ ☐ Team available for issues ││
│ │ ☐ Rollback plan ready ││
│ │ ☐ Monitoring dashboards open ││
│ │ ☐ Deploy to production ││
│ │ ☐ Smoke test critical paths ││
│ │ ││
│ │ POST-RELEASE: ││
│ │ ☐ Monitor for 1 hour ││
│ │ ☐ Announce to stakeholders ││
│ │ ☐ Update documentation ││
│ │ ☐ Tag release in Git ││
│ └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘
Release Documentation
Release Notes
RELEASE NOTES TEMPLATE:
┌─────────────────────────────────────────────────────────────┐
│ │
│ RELEASE NOTES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ VERSION 2.4.0 - January 30, 2025 ││
│ │ ││
│ │ ✨ NEW FEATURES ││
│ │ ───────────────── ││
│ │ • PayPal payments now available in checkout ││
│ │ • Dark mode support (Settings → Appearance) ││
│ │ • Export dashboards to PDF ││
│ │ ││
│ │ 🐛 BUG FIXES ││
│ │ ─────────── ││
│ │ • Fixed timezone display in reports ││
│ │ • Resolved crash when uploading large files ││
│ │ • Email notifications now send correctly ││
│ │ ││
│ │ ⚡ IMPROVEMENTS ││
│ │ ─────────────── ││
│ │ • Dashboard loads 40% faster ││
│ │ • Improved mobile responsiveness ││
│ │ • Better error messages for failed payments ││
│ │ ││
│ │ ⚠️ BREAKING CHANGES ││
│ │ ────────────────── ││
│ │ • API v1 endpoints deprecated (remove by April 2025) ││
│ │ • Minimum browser: Chrome 90+, Firefox 88+ ││
│ │ ││
│ │ 📝 NOTES ││
│ │ ───────── ││
│ │ • Users will be logged out after update ││
│ │ • Clear browser cache if issues persist ││
│ │ ││
│ │ Full changelog: github.com/company/app/releases ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ AUDIENCE: │
│ ───────── │
│ • Internal: Include technical details │
│ • Customer: Focus on user-facing changes │
│ • API consumers: Emphasize breaking changes │
└─────────────────────────────────────────────────────────────┘
Rollback Strategy
Handling Failed Releases
ROLLBACK PLANNING:
┌─────────────────────────────────────────────────────────────┐
│ │
│ BEFORE RELEASE: │
│ ─────────────── │
│ • Know how to rollback │
│ • Test rollback procedure │
│ • Database migrations reversible? │
│ • Keep previous version ready │
│ │
│ WHEN TO ROLLBACK: │
│ ───────────────── │
│ • Error rate spikes │
│ • Critical functionality broken │
│ • Performance severely degraded │
│ • Security vulnerability discovered │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ROLLBACK DECISION TREE: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ││
│ │ Issue detected ││
│ │ │ ││
│ │ ▼ ││
│ │ Can hotfix in < 30 min? ││
│ │ │ ││
│ │ YES │ NO ││
│ │ │ │ ││
│ │ ▼ ▼ ││
│ │ Deploy Rollback ││
│ │ hotfix immediately ││
│ │ │ │ ││
│ │ ▼ ▼ ││
│ │ Monitor Investigate ││
│ │ closely root cause ││
│ │ │ ││
│ │ ▼ ││
│ │ Fix and ││
│ │ re-release ││
│ │ ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ POST-ROLLBACK: │
│ ────────────── │
│ • Communicate to stakeholders │
│ • Root cause analysis │
│ • Add tests to prevent regression │
│ • Update release checklist │
└─────────────────────────────────────────────────────────────┘