Release process

This page describes how we ship software to customers. It applies to all projects unless the SOW or customer agreement says otherwise.

Cadence

Environment Frequency
Development Continuous, on every merge to main
Staging Daily build
Production Scheduled release, normally every second Tuesday

Production releases avoid the last two working days of a month, because customers close their books. Check Company holidays 2026 when planning.

Release steps

  1. Cut the release. The release manager creates a release/<yyyy.mm.dd> branch, see Branching strategy.
  2. Verify scope. Check every ticket against the definition of done.
  3. Run regression tests on staging and record the result.
  4. Customer notice. The project manager gives the customer at least 3 business days' notice of the release, with release notes.
  5. Approval. The delivery manager approves the go-live. For fixed-fee milestone releases the customer's acceptance follows, see Deliverable acceptance.
  6. Deploy using the pipeline. Never deploy by hand.
  7. Smoke test production and watch dashboards for 60 minutes.
  8. Announce completion in the project channel.

Go and no-go checklist

Check Needed for go
Tests green on staging Yes
Release notes sent Yes
Rollback plan written Yes
Backups verified Yes, see SOP-IT-002
Security scan clear of critical findings Yes
On-call engineer named Yes

Rollback

If smoke tests fail, roll back using the documented plan:

# roll back to the previous tagged release
./deploy.sh production --release previous

Then open an incident. A failed production release that affects customers is treated as an incident under SOP-001: a P1 must be acknowledged within 15 minutes and a bridge call opened. See Report an incident.

Backups

Daily backups are kept for 35 days and restores are tested every quarter under SOP-IT-002. Confirm a recent backup exists before any release that changes data structures.

Emergency releases

Emergency fixes may skip the customer notice period if the customer agrees. The delivery manager (Maya Torres for most programmes) must approve, and the change is documented afterward.

Post-release

The team reviews the release in the next retrospective and updates the wiki if the process needs improving.

Owner: Daniel Okafor - Last updated: 2026-05-06