In app development, both technical and non-technical people are familiar with the infinity symbol representing the never-ending DevOps lifecycle and its steps — which are usually along the lines of planning, building, continuous integration, deployment, operation, and feedback.
When it comes to the Mobile DevOps lifecycle, however, things are slightly different. The continuity is still represented by the same symbol, but the steps have changed, in order to be able to frequently release value apps to the customers, maintaining the quality, and monitor apps’ health in real-time. An up-to-date mobile development lifecycle would most likely consist of the following stages: defining CI/CD strategy, building, testing, releasing, monitoring, and measuring.
What happens during these stages?
When designing the CI/CD strategy, the engineering team — including Product managers, Engineers, and Design teams — get together to come up with a strategy regarding the roadmap of the mobile app. This involves planning the upcoming features and changes in existing features to improve the app and better meet the customer requirements. During this phase the testing team makes different decisions related to test automation and the test strategy. For the developers it’s also very important to agree on the architecture and RFC decisions , the code review process and how they will sync, especially if they are a large team. The rollout plan should also be considered with the release sign-off by the release manager.
The Building stage involves implementing the proposed changes to a minimum standard required to prove (or disprove) the hypothesis. This is the stage at which the User Interface is designed and code is implemented. During this process, teams check whether the code quality meets the team’s code standards and make sure that automated tests, such as unit tests, integration and UI tests are written at all levels.
The next one is the Testing phase. Test automation is a vital part of Mobile DevOps and without it, the lifecycle is not complete. It is not just nice to have anymore, but has become mandatory in different companies, depending on the maturity of the app and the size of the team. In different sized teams, different types of testing practices take place, ranging from conducting automated unit and UI tests. The aim is to understand the quality level, the potential risk of the new release and increase the test coverage for the critical functions and features to avoid any issues with the production. Testing is always a team effort and it also involves testing the non-functional aspects such as app size, security, and performance.
The Releasing stage includes a number of different types of releases. Beta Releasing happens when the changes are deemed stable enough so that the app can be released to the beta users or internally to the QA engineers and product managers to get early feedback after each release. This involves monitoring the crash reports to catch issues early. With the Beta Release, we can use feature flags to enable or disable new features for testing before we release to production. Once we finish the beta release, fix all the issues, and the release is signed off by the release manager or the stakeholders, we can release mobile apps to production via different app distribution services.
The next stage of the Mobile DevOps lifecycle is Monitoring performance and availability. During this phase, multiple things are tracked, such as app consumption (how much resource our app is consuming), app usage, responsiveness (how long the app takes to load and switch between screens), and stability (how many errors and crashes an app is generating).
Finally, in the Measuring phase, a quantitative and qualitative analysis is conducted, based on usage metrics and direct user feedback. This data highlights any potential for product improvement and gives useful insights into the performance of a previous iteration — whether it has moved the needle or not.
Why it makes a difference
Building apps for mobile has its unique challenges — which is why we believe that incorporating these steps into your app development process is crucial for a more productive development lifecycle. In alignment with other Mobile DevOps principles, these steps will help you improve not only your apps, but your entire process as well.
You can read more about our take on Mobile DevOps on our landing page, created to share our insights, experiences, and to explore all facets of the best practices in mobile app development.