Cadence Based Release

Published date: April 15, 2024, Version: 1.0

A cadence-based release approach involves releasing software updates periodically according to a predetermined schedule:

  1. Definition: Cadence-based releases follow a regular, predictable schedule, which can be based on specific time intervals such as bi-weekly, every three weeks, or monthly. The chosen cadence depends on factors like the program or portfolio's needs, development team capacity, and customer expectations.

  2. Release approval: In a cadence-based release approach with SRE involvement, the release process includes an additional step of obtaining approval from the SRE team. SREs ensure that the software updates meet the necessary reliability, performance, and stability standards before they are released to production. This approval process helps maintain the overall system integrity and minimizes the risk of service disruptions or incidents caused by software releases.

  3. Release Calendar: A release calendar is a visual representation of the planned release dates and milestones for upcoming software releases. It provides a high-level overview of the release schedule, including release dates, feature freeze deadlines, testing phases, and any other relevant activities. The release calendar helps teams and stakeholders stay informed about upcoming releases and plan their activities accordingly.

  4. Planning and Coordination: Implementing a cadence-based release strategy requires careful planning and coordination. The release calendar acts as a central reference point to ensure that all teams, including development, testing, operations, and stakeholders, are aligned on the release schedule. It helps manage dependencies, resource allocation, and communication efforts to facilitate smooth and efficient releases.

  5. Iterative Development: Cadence-based releases often go hand-in-hand with iterative development methodologies, such as Agile or Scrum. These methodologies emphasize regular, incremental delivery of working software, allowing for faster feedback and iteration cycles. The release cadence aligns with the sprint or iteration duration, ensuring that the team can consistently release new features, bug fixes, and improvements at the end of each cycle.

  6. Predictability and Transparency: One of the key benefits of cadence-based releases is the predictability it offers. By adhering to a fixed schedule, teams can provide stakeholders and customers with clear expectations regarding when new features or bug fixes will be available. It helps manage customer satisfaction, release readiness, and resource planning more effectively. Additionally, the release calendar fosters transparency by making the release plan visible to all stakeholders, facilitating collaboration and alignment.

  7. Continuous Improvement: While cadence-based releases provide a regular rhythm for software delivery, it's essential to continuously evaluate and improve the process. Regular retrospective meetings can help identify bottlenecks, areas for improvement, and potential adjustments to the release calendar. This iterative feedback loop ensures that the release process becomes more efficient and aligned with the evolving needs of the program or portfolio.

By following a cadence-based release approach and utilizing a release calendar, organizations can achieve a predictable and well-coordinated software delivery cycle. The release calendar serves as a valuable tool for planning, coordination, and transparency, helping teams and stakeholders stay informed and aligned throughout the release process.

Release Process

Before applying cadence for releases, it is very critical to understand an existing release process or approach/timeline defined by stakeholders for their groups.

 

Current release process can be documented in below format:

Type of project (Project/CD)

Area

Release period (Weekly, Bi-weekly, 3 weeks, Monthly)

Criticality

AVP/ADM

Saas, On-Prem, CTC Cloud

Who does deployment? (Project Developer/App Admin/Build Engineer)

Comments

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Release Calendar

Based on current information, SRE team can help to define release cadence and communicate at program level.

Below is an example of release calendar :

Production Release date

Area

Release Name

Participation in release

Code freeze

Pre-Prod deployment

Sprint #

Sprint Date

Comments