What is Release Management ?
Release management in agile and scrum methodologies manages the releases as per the tight timelines and agile customer requirements.
So to understand a release in simple words, it is a collection of user stories from a single product or multiple products which is created by a product owner. A release has a defined time period with a start and end date.
Purpose of release management
- Helps business to communicate with the team regarding the expectations.
- Helps as a guidepost to manage the scope creeps, to understand the impact of changes, to understand how much work can be done and what is the time period.
Agile and Scrum Release Management
Inputs for release planning and management in agile and scrum approaches would be team’s velocity, project length, and prioritized product backlog and the output would be a release plan which guides the scrum team during the release period.
Sequence of steps involved in agile and scrum release planning and management are:
- Determining the conditions of satisfaction: It focuses towards business goals, which could date driven or scope boxed.
- Estimating the user stories: As a product backlog might have many stories, but in a release you would need few stories which are needed; hence estimation of user stories is needed (which can happen during the release planning or before the release planning). Estimating a story is generally done using Fibonacci series which indicates its complexity and the size of the story.
- Selecting an iteration length: Iteration length can vary depending on the length of the release, if you have high uncertain project with frequent changes, you will need to have small iterations.
- Estimating the velocity: Estimating the velocity can be done by the historical data, by experimenting, and forecasting.
- Prioritizing user stories: Prioritization of user stories is generally done by the product owner by understanding the importance as per customer requirements based on Moscow analysis, time needed for the stories, human resources needed, etc.
- Selection of user stories and release dates: Team selects the user stories and the release dates are calculated based team’s historical record.
Release management meetings in agile and scrum methodology provides the overall direction for the agile projects to discuss the aspects on:
- Opening, product vision and roadmap: Senior executives and product owner will give the vision and roadmap which discusses the vision and roadmap for the project and products.
- Conduction of satisfaction: Conditions of Satisfaction in simple words are story conditions and constraints which will be given by the Product Owner to the team describing what the user wants.
- Planning data: Scrum master presents the velocity, iteration length, stories from backlog, etc. to plan the release.
- Issues and concern: Whatever issues have been identified till the release meeting will be discussed by the stakeholders.
- Prioritization of stories: Though stories get prioritized before the release meeting, they are yet re-evaluated in the meeting.
- Story mapping: Team will connect the dots in the stories and will visualize the stories to do the mapping.
- Release scheduling and iterations: Distribution of stories in the upcoming iterations is defined here based on the velocity, iteration length, etc.
- Present the release plan: Product owner will present the release plan
- Retrospective and closure discussion: To understand the lessons learnt in the meeting, to discuss the things that went well, and which went bad.
Differentiation between Waterfall and Agile Release Management
- In traditional or waterfall methodology, release of a software is in big-bang approach and scope of work is precisely known to the project team members. In waterfall methodology, customer is involved at the end of the product release. Since the customer is not involved thoroughly, there will be some kind of delays in the proposed project plan.In agile and scrum project management, release of a software is split into smaller chunks or functional components with a specified time boxes called sprints. In this methodology customer has regular and transparent view to check and approve every sprint (i.e. the work) developed by the team.
- Release of the software will be done after the complete software is developed and accordingly testing is done. Testing team gets less time for various reasons like detailed focus on business analysis, design, and development.
Release of the software need not wait till the complete software package is ready, here testing of every functional components (or sprints) is done in a progressive fashion.
- Any changes in the customer requirements are very difficult to embed in waterfall approach.
Any changes to the software being developed is easier to implement in the agile and scrum methodologies.