Breaking the Myth of "No Release on Fridays"

Many software development teams adhere to the "no release on Friday" policy to avoid weekend disruptions in case of issues.

One of the teams I led pushed things to production almost every Friday, challenging the conventional wisdom. Let's highlight their key strategies for achieving this feat.

1. Quality Ownership Principle: Every team member took responsibility for the quality of their work. When someone created a new feature, they also became its primary tester. This commitment to quality ensured that the code was consistently stable and ready for deployment.

2. QA Engineers as Team Players: The team included QA engineers as integral members. They actively participated in grooming, planning, and optimizing the Software Development Life Cycle. Their focus on edge cases and end-to-end testing improved the overall software robustness.

3. "Stop the Line" Empowerment: "Stop the line" culture granted any team member the authority to halt a release if issues were identified. This practice only resulted in the postponement of approximately one out of every five planned releases, showcasing its effectiveness in preventing potential problems.

4. Feature Flags and Staged Rollouts: For significant launches or updates, the team employed feature flags and staged rollouts. Feature flags allowed them to hide new features, enabling easy toggling on or off as needed. Staged rollouts gradually exposed changes to a small user base, providing valuable feedback and data.

5. Quality KPIs: The team set key performance indicators (KPIs) for quality, aiming for a 99.9% crash-free rate and maintaining a backlog of open bugs below 10. These metrics served as benchmarks, ensuring a consistent focus on code quality.

6. Workweek-Focused Release: To align with the "no release on Friday" policy, the team adjusted its release cycle to span a full workweek. Their process began with a project kickoff on Monday, culminating in the production release on Friday. This schedule allowed ample time for development, testing, and issue resolution, eliminating Thursday and Wednesday releases.