A hardening sprint is a period of a project where the team stops delivering new features and instead focuses on fixing bugs, preparing deployment activities, performing various types of testing, and cleaning up tech debt.
Hardening mitigates risk and improves confidence to your production release by focusing the team’s time on full end-to-end testing, catching and resolving bugs, testing in flight instances, verifying system translations, and tuning performance prior to a production go-live depending on your application.
When: Hardening is typically a 2 week sprint at the end of a release, but depending on the length of the release, complexity of the features delivered, and the level of confidence of the team, teams may choose to hold hardening more frequently or for different lengths.
Who: The development team and testers should perform hardening activities.
Where: Hardening testing typically occurs in the UAT environment or another TEST-like environment. It should not occur in DEV. Hardening should be performed with the code that is going to PROD, and perhaps there is on-going development in DEV. Using the UAT environment poses the least amount of risk as to testing what is going to be released.
The DEV environment is used to address technical debt and resolve critical issues identified during testing. As there may be ongoing development occurring in the DEV environment, it is recommended that exploratory, in-flight, and regression testing occur in the UAT or another TEST-like environment.
Before hardening starts, review your Go-Live Readiness Deployment Preparation and use this to help guide your activities in hardening. Ensuring you are ready for go-live is the top priority during go live.
Deployment preparation also should include:
1. Health Check Review
2. Bug Resolution and Regression Testing
3. Small UI changes based on end-user feedback (e.g. label changes)
4. Tech Debt Resolution
5. In-Flight Testing (If Applicable)
6. Exploratory Testing
7. Estimate App Disk and RAM Usage
8. Security Summary Review
9. Data Load Testing
10. Web API Load Testing
11. Automated Performance Testing
12. Another Health Check Review