Let us consider a product, which has around 150 features, when it is fully developed. Then it is going to take a long time and lot of money for developing all the features and then delivering the product. Though it sounds ideal to release the fully developed product, that approach has the following risks associated with it;
- The owner of the product will have to wait for a very long time to start making revenue out of the product. In the process he can go bankrupt before completing the development of the product.
- Everyone invest and build products with the hope that markets will accept them, and there will be lot of buyers waiting to buy the product. This is a major assumption. By releasing the product in a big bang mode after developing all the features, increases this risk.
By making frequent releases of the product, these risks can be addressed and at the same time, the end user should find value in the released increment of the product. That is a tight rope walk of managing the product owner expectations and the end user expectations from the product.
Agile release planning helps to satisfy these stakeholder needs by;
- Doing a cost benefit analysis of every feature in the product backlog
- Dependency determination among the features
- Classifying them into Must have, Should have and Nice to have features
- Grouping them into release milestones (Dates of release)
- Defining the iterations leading to the release milestones. Multiple iterations leads to a release.
This whole process put together we call it as the agile release planning. This is a progressive process. All products starts with a product road map with major release dates, which gets refined as the product of the project emerges and the team gains more insight about the product.