In one of my last blog posts, I wrote about the Mobile Bug Matrix and how to use it to identify bugs that are worth doing a hotfix. Today, I write about the mobile release train and how to use this approach to release apps to the different app stores.
The release train concept is nothing new and is part of the scaled agile framework. It describes how to deliver software in a specific way. The concept of the mobile release train can be used by small and/ or bigger distributed teams who work on one app, but in different teams. Usually smaller app developer teams/ companies release an app whenever there are enough bug fixes or new features that make sense for their users. However, apps that are developed across multiple teams need an aligned approach to plan releases in advance. If more than one team is developing features they may depend on each other and can’t release without the changes from other teams. In this case, it is not possible to just push the release button to upload an app, this approach will fail.
The Mobile Release Train
Let’s take a look at a mobile release train. In the following picture, you see a simple one. It has a defined development phase in most cases 2-4 weeks. On a defined day and time let’s say on a Monday at 3pm, there is a code freeze happening. Until this time, the teams have the time to review, test and merge the features to the master branch that should be part of the train. At 3pm someone will create a release branch from master branch, either manual or in an automated way. This release branch will get a final integration testing phase. In this phase, all team members should check that the new features are working as expected. If there is a problem on the release branch the bug will be fixed on the release branch and later merged back to the master branch.