Feature Development Checklist
Requirements & Scoping
PM owns the PRD; tech lead reviews. Each story needs Given/When/Then acceptance criteria specific enough that QA can write test cases without follow-up questions. Attach the doc (Notion, Confluence, or Google Doc) here so the run has a permanent link.
Does the feature collect new PII, change data retention, expose new audit-log surface, or alter access control? Loop in security if any of those are yes — getting Vanta/Drata evidence retrofitted post-launch is painful. Note GDPR data-subject-rights impact if EU users are in scope.
Aim for stories under 3 points each — anything bigger usually hides ambiguity. Tag each story with the epic and the target sprint. Confirm capacity against the team's trailing 3-sprint velocity, not the optimistic estimate.
Technical Design
Cover the chosen architecture, the key API contracts, error handling, observability (which metrics, which logs, which traces), and rollback strategy. Name third-party services and the failure mode if they're down. Link to any related ADRs.
Forward-compatible only: new columns nullable, no destructive changes in the same release as code that depends on them. For tables over 1M rows, use ADD COLUMN (no default) + batched backfill + follow-up default — adding a defaulted column on Postgres rewrites the table under exclusive lock.
30-min review with tech lead and one senior engineer outside the project. Capture decisions and unresolved questions in the design doc. If the review surfaces material changes, do not start coding until the doc is updated and re-approved.
Implementation
Create the flag with a named owner and a planned retirement date. Default off in production; on for internal users in staging. Record the flag key in the design doc so the post-launch cleanup step can find it.
Target PRs under 400 lines of diff — reviewers skim larger ones. Each PR should be independently mergeable behind the flag, even if the user-facing feature is incomplete. Avoid the long-lived feature branch anti-pattern; merge to main daily.
Required status checks must pass before merge — branch protection enforces this. "LGTM" without comments on a 400-line diff is a smell; ask for an explicit walk-through if the reviewer didn't leave any line comments.
Testing & QA
Coverage target per the team's standard (commonly 80% line, but enforce on diff coverage rather than total). Integration tests cover the new API contracts end-to-end against a real DB. Mark any new flake-prone tests with retries and an owner — don't ship known flakes.
Cut a release candidate tag (e.g., v2024.45.0-rc.1) and run the full Playwright/Cypress suite in staging. Investigate any new failures; do not whitelist or skip them to unblock the release.
QA lead and tech lead together categorize each bug: blocker (ship-stopper), major (ship with known-issue note), or minor (file follow-up). Capture the count of remaining blockers below — anything over zero halts the release.
Push fixes, cut a new RC tag, re-run the e2e suite, and re-triage. Do not partially regression-test — bugs introduced by the fix are common. Loop back to the triage step until blockers reach zero.
Release & Deployment
Migrations go out ahead of the application code that depends on them, since old code must keep working against the new schema. Watch replication lag during the migration; abort and roll back if lag crosses the team's threshold (commonly 30s).
Route 5% of traffic to the new build for at least 10 minutes. Watch error rate, p99 latency, and saturation against the canary's own dashboard — comparing canary to baseline catches regressions that absolute thresholds miss.
Step through 25% → 50% → 100% with a monitoring pause at each stage. Frontend deploys after the backend is fully out, since the backend is forward-compatible by design.
Post-Launch Monitoring
The release captain stays primary on Datadog/Sentry alerts for 24 hours post-deploy. Compare error rate against the trailing 7-day baseline and the SLO error budget burn rate, not just absolute counts.
Release captain makes the call after the 24-hour soak. Criteria: error budget not burning faster than baseline, no SEV2-or-worse open against the feature, no customer-support spike. When in doubt, roll back — the cost of rollback is always less than the cost of a prolonged regression.
Flip the feature flag off first — that's the fastest and least risky rollback. If the regression is in code paths that ran regardless of the flag, redeploy the previous container image. The DB migration is forward-compatible, so it stays in place. Open a SEV2 incident and start the standard incident-response workflow.
Internal changelog goes to #engineering with the deployed sha. Customer-facing release notes (if user-visible) go through the standard PMM review and land in the docs site or in-app changelog.
Once the feature has been at 100% for at least a week with no rollback, remove the flag and the dead code paths. Stale flags compound — the team that defers cleanup ends up with 60+ flags and an exploding test matrix within 18 months.
Use this template in Manifestly
- Backup and Recovery Checklist
- New Developer Onboarding Checklist
- User Acceptance Testing Checklist
- Backlog Prioritization Checklist
- Unit Testing Checklist
- Release Planning Checklist
- Software Project Management Checklist
- Software Engineer Hiring Checklist
- Peer Review Onboarding Checklist
- Change Management Checklist
- Security Review Checklist
- Version Control Checklist
- Project Closure Checklist
- Technical Debt Management Checklist
- Software Licensing Compliance Checklist
- Sprint Planning Checklist
- Prototype Review Checklist
- Requirement Gathering Checklist
- Employee Data Security Checklist
- End-User Documentation Checklist
- CI/CD Pipeline Review Checklist
- Engineering Team Building Activity Checklist
- Employee Offboarding Checklist
- Design Documentation Checklist
- Quality Assurance Checklist
- Code Review Checklist
- Release Notes Checklist
- Engineering Resource Allocation Checklist
- Code Review Checklist
- Bug Tracking and Resolution Checklist
- Monitoring Setup Checklist
- Acceptance Testing Checklist
- Testing Environment Setup Checklist
- Test Case Review Checklist
- Performance Monitoring Checklist
- Post-Deployment Testing Checklist
- Performance Optimization Checklist
- Test Plan Checklist
- API Development Checklist
- Security Best Practices Checklist
- Software Development Plan Checklist
- Disaster Recovery Plan Checklist
- Database Design Checklist
- Engineer Offboarding Checklist
- Refactoring Checklist
- Incident Response Checklist
- Software Engineer Onboarding Checklist
- Project Review and Retrospective Checklist
- System Testing Checklist
- Software Architecture Design Checklist
- Deployment Checklist
- Development Environment Setup Checklist
- Rollback Plan Checklist
- Automated Testing Checklist
- Performance Testing Checklist
- Software Update Checklist
- Integration Testing Checklist
- New Engineer Onboarding Checklist
- Technical Documentation Checklist
- Software Project Risk Management Checklist
- Software Project Initiation Checklist
- Personal Development Plan (PDP) Checklist
- User Acceptance Testing (UAT) Checklist
- Deployment Plan Checklist
- Release Checklist
- API Documentation Checklist
- QA Testing Checklist
- Service Level Agreement (SLA) Checklist
- Release Checklist
- User Acceptance Testing (UAT) Checklist
- Deployment Plan Checklist
- Release Planning Checklist
- Software Update Checklist
- Post-Deployment Testing Checklist
- Regression Testing Checklist
- Deployment Checklist
- Release Notes Checklist
- Release Management Checklist
- User Acceptance Testing Checklist
Ready to take control of your recurring tasks?
Start Free 14-Day TrialUse Slack? Sign up with one click
