Within the last few years, using the four key DORA metrics has become one of the most popular ways of tracking software delivery performance. As always, trends and popularity don’t come without their downsides — cargo cults and people looking for silver bullets.
We often meet mobile developers whose boss has tasked them with tracking DORA metrics. They’ve looked into it, but tracking DORA metrics for a mobile app doesn’t seem to make sense. If this is you, you’re not wrong.
The basic goal of DORA metrics is simple: make it possible to iterate as quickly as possible without breaking things. What does this mean in the context of world-class mobile apps?
Aiming for a steady release cadence. Releasing a new mobile app version to users requires time and effort. App Store and Google Play reviews take time. End users do not install updates right away. Fixing bugs is slow (and costly), which means doing manual QA before your releases makes sense. And so on.
This cost of release means that it’s not feasible to release to App Store or Google Play after every change. In practice, most high-performing mobile app development teams have a one or two-week release cadence.
Shipping a prerelease version for internal/beta users. As releasing a new version to production is costly, high-performing mobile teams use a prerelease version that is built for every change (e.g. pull request) and shipped to internal/beta users automatically. This allows the team to get real user feedback and maximize their chances of finding quality issues before they reach production.
Using feature flags. For high-performing mobile app teams, future features are already in the production app today — just behind a feature flag. It can take a long time for users to install the latest mobile app version. For some features, rolling them out only makes sense once enough people have installed the version that shipped the feature.
Feature flags allow features to be released independently of the app release cycle. They also allow quick rollbacks when a piece of code you shipped has a bug.
When we look at these best practices of world-class mobile development teams, we realize they don’t fit in with how the key DORA metrics are defined and measured. A weekly release cadence will prevent you from reaching “elite” deployment frequency and change lead time. Measuring a high-level aggregate like change failure rate and mean time to recovery in a complex environment where only a portion of your users ever install a bad version and where some features are shipped using feature flags is a lot of work — for very little gain.
Instead of trying to adopt measures that were developed as part of a DevOps study, you should focus on practices designed for high-performing mobile app development teams:
Oh well. Maybe you can still ask them what mobile app development team they consider “elite” — and then use this simple calculator to show them that, according to DORA metrics even they’re not elite?
If that doesn’t work either, here’s how you calculate DORA metrics for your mobile app development process in a way that provides you with useful insights:
Tracking your DORA metrics this way will make them more in line with the intent of the DORA research (and make them more comparable with web/cloud teams, if that’s a part of your goals). Most importantly, it allows your mobile development team to improve their development process and develop their continuous delivery capabilities (including the level of test automation).
If you really, really, really want to track DORA metrics for mobile apps, you can do it. For most mobile teams, it doesn’t make sense. If you decide to do it, ensure you can track it on the level of individual changes (e.g., pull requests) — and not just for production releases that happen less frequently.
Your mobile engineering teams are better off tracking metrics designed for mobile app development than the four key DORA metrics. Investing in your ability to follow a regular release cadence, shipping features to your users reliably with feature flags, and ensuring you work in reasonably sized increments will make your teams much more high-performing than the “elite” DORA status.
Huge thanks to Antti Kosonen at Wolt and Jaakko Ylinen at Yle for taking the time to review an early draft of this post and providing invaluable feedback that helped shape the final version.
Subscribe to our newsletter
Get the latest product updates and #goodreads delivered to your inbox once a month.