Release is an integral agile approach that facilitates your product to reach your customers periodically with something new and enhanced. It is founded on the principle of continuous and incremental development. This allows you to frequently churn out deliverables and bug fixes that keep your product up to date and bug free, and in turn keep your customer satisfied.
A release can be defined as a compilation of user stories from your product with a definitive end date by which it needs to reach the customer.
Benefits
- Define the expected outcome that is required of your team.
- Guide your team towards the release goal within the defined timeframe.
- Track and manage multiple endeavors across a project.
- Plan and define your projects into phases that can be deployed.
- Get your product delivered to your end user on time.
- Reduce defects and get an idea of how to plan the next release.
- Improve the quality of your product by frequently scheduling releases that incorporate feedback and requirements.
Release management
Release management is a cyclic process with various stages. A release could contain a new product, a version, or an update with enhancements and issue fixes. All these releases go through a series of stages that include requirements gathering, writing the requirements as user stories, tasks, and bugs, working on those work items, reviewing the release items, and finally deploying the iteration.
The release planning in agile and scrum calls for the studying and determining the team’s velocity, the length of the project, and the priority of the items in the backlog that are eligible for that iteration. Optimization of time, effort, and requirements is key to achieving a productive release.
Example
Launching a product version, creating new modules, etc can be managed as releases.
Let's assume your organization is coming up with a new version of your product. This new version can be added as a release. A version is a large deliverable that contains new features, enhancements, integrations, new user interface, etc. Your team cannot load all the requirements in a single sprint. It requires time, team coordination, enhancing existing features, code changes, etc. But splitting the work items across sprints might not be sufficient to manage them. You require a single entity to oversee all those sprints and ensure timely completion. This is where release management comes into play. It is the biggest entity that can handle all the requirements of the team in a single process.
Let's say you are the head of a software solutions firm. You handle a team of 500 members who follow the agile methodology in delivering outcomes. The company develops and handles software products for three different client sectors: Banking, Retail Store, and Construction. The three products they handle are: ER-Australia, ER-Shopify, and ER-Construction.
Challenge: You and your team have two client requests, one from the banking sector and the other from the retail store. The requests are:
- ER-Shopify (Website needs a new field for Kids clothing in the Category section and a new interactive version of the website)
- ER-Australia (Build mobile app and add insurance module to the website)
To start planning your release, you need to consider the following factors:
- Timeframe: Every release should have a predefined timeframe and stick to the intended date to avoid derailing the customer's satisfaction.
- Budget: Estimate the budget required to complete the release. In the above case, you can estimate the budget based on the hours logged by your team members.
- Impact on existing customers: The release update should not affect the existing customers. You need to consult with your clients to check whether the planned product changes will affect the existing customers.
- Resource allocation: Plan your release based on your resource availability. Once a release kick-starts, there shouldn't be any delay in the delivery.
- Analysis of Sprints and Backlog: Take a look at your project backlogs and existing sprints (in plan and the ongoing sprints). If the work items are related to the release that you're planning, then re-analyze the work items. If there are sprints relevant to the planned release, you can add them to your release.
Once these five points are analyzed, you can start creating the release plan and add the required sprints and work items to it.
Sample release plan
Let's try to create a release plan for ER-Shopify.
The requirement of the client is to create a new kids section under category and version (2.1) with an interactive UI. The first requirement requires a shorter duration and the second one involves time and effort. You can create two releases:
Release 1: Category Enhancement
The team has a few issues in the category module which can be associated with this release. They can also add new work items to the release. This release is planned for 3 months and as the release progresses it is moved from one stage (A stage denotes the status of your release.) to the other.
Release 2: Version 2.1
Similarly, the team can create another release called 'Version 2.1' and add or associate relevant work items from the backlog or sprints. This will include major design changes, new wireframes, renews content strategy, etch Since this is a huge venture release, the team can schedule it for 6 months or more. Because, the duration of the release be practical and reasonable to ensure that your team has enough time to deliver a quality product.