Join CTO Moataz Soliman as he explores the potential impact poor performance can have on your bottom line. 👉 Register Today

ebook icon

App Performance

General

Mobile Release Best Practices

The top-grossing apps release new updates every two weeks.

These updates play a key role in expelling app errors and fixing bugs, improving overall performance, adding or removing features, and meeting regulatory requirements. But if you update your app too often, you risk annoying your users, and they may not install updates consistently. Too few releases, and you risk lagging behind your competitors’ feature improvements.

Release management can help you strike a balance.

Release management encompasses everything from determining the scope and content of a new release to the timeline, including how you’ll announce and monitor it.

If users know when the next release is coming and how it will improve their experience, they will be more likely to update your app. If they can download the update quickly and easily, if the app launches without any issues, if the transition between screens is smooth, and if the features function as expected, you can call it a successful release. 

However, a glitch-free release is hard to achieve. You need a thorough release plan that maps out all the pre-release tasks to be completed. You also need KPIs to measure success and monitoring tools to help you keep an eye on your app’s performance before and after the release. So, how do you achieve all of that within a short DevOps cycle? 

Let’s dive deeper into some of the best practices for ensuring your mobile releases are smooth.

Project Managers

Assign project managers for every release. Every app release, major or minor, is a project. Companies should designate a project manager or a team of project managers, depending on the scale, to oversee the successful execution of each release. Without someone to manage the release, product managers often end up playing the role of release manager

Because product managers create the release plan, they often end up managing the release. This holds especially true for smaller setups. But, as your app grows and larger teams start working on more complex releases, it’s a good idea to have a project manager handle release management.

By assigning a project manager to your release, you free up the product manager’s time to focus on the bigger picture. He or she has more time to dedicate to strategy and the product’s business trajectory , while project managers can ensure  a successful release that supports those goals. 

So, why not hire a release manager instead?

A product manager, a project manager, or a release manager can manage releases at your organization. A project manager is often the best choice to manage releases at smaller organizations — as compared to product managers and release managers — because it’s simply more efficient and cost effective to hire one. The average salary of a release manager is over $90,000 per year, close to $15,000 more than that of a project manager. Also, release management is a highly specialized role. If you don’t have multiple large-scale releases planned throughout the year, a release manager may struggle to add value. A project manager, on the other hand, will be able to take on other projects during downtime. 

That’s why you’ll see large organizations such as General Motors, Bank of America, IBM, and Salesforce with openings for release managers, but you won’t see smaller companies with limited resources advertising for the role.

Yet a project manager can coordinate the tasks in the release plan and ensure each is completed by the set deadline. Project managers can foresee and eliminate possible blockers, manage project resources, communicate with stakeholders about task status, document each step in the process, and oversee the success of a project. 

According to a 2021 report from PMI, project managers helped complete 62% of projects within the original budget, and on time. Additionally, project managers achieved their intended goals for 73% of the projects they managed. Project managers have a proven track record and possess the skills to handle the demands of a release. With a project manager, your release is in capable hands.

KPIs for Success

Define success and measure it with KPIs. The definition of project success can vary by stakeholder. A developer will call it a success if the feature he or she built works as intended. A marketer will call your release successful if it’s well received by your audience; some stakeholders will be more interested in the bottom line, and so on.

When it comes to release plans, the product manager should determine the definition of success and how it will be measured for every release. With clearly defined KPIs, every step you take throughout the release process will advance your vision. 

You can divide the KPIs into three groups:

Team KPIs: To measure your team’s performance, track metrics like on-time delivery, releases delivered on schedule, average cycle time, and average cost per release.

App Quality KPIs: To monitor how the new release affected the app, track data like the number of crashes, Apdex (Application Performance Index), downtime, app launch time, screen loading time, and network launch time.

Business KPIs: To understand how your releases support overall business goals, track the numbers of downloads or updates, user engagement, user retention rate, daily active users, average number of screens per visit, and session duration.

Use Apdex to measure the user experience

In addition to having KPIs for individual app quality metrics, you’ll also want a metric for overall app quality. We recommend using Apdex (Application Performance Index), a metric that distills your user experience into one comprehensive number. 

Apdex aggregates individual performance metrics and events to quantify the user experience  on a scale of 0 to 1, with a score of 1 awarded to perfect performance. It’s calculated by tracking metrics such as UI hangs, crashes, network calls, app launches, and app traces. These metrics are further used to group user sessions into:

  • Satisfying sessions (no UI hangs, instant app launch)
  • Tolerable sessions (some UI hangs, slow launches)
  • Frustrating sessions (long app launch times, many UI hangs)
  • Crashing sessions (crashes, major UI hangs)

With this information, the Apdex score is calculated using the following equation:

Apdex score = (Satisfying sessions + 0.5 * Tolerable sessions) / Total

A score closer to 1 means your app is performing as intended, and the user experience is stellar after the release. A score lower than 0.5 means the user experience is poor, and you should immediately look into identifying and rectifying performance issues. A low Apdex score will inevitably affect the business KPIs as well because users frustrated with their experience may stop using the app or uninstall it.

Release Plans

Create a checklist based on your release plan. Typically, product managers craft a release plan that addresses every aspect of the upcoming release. The plan plots all of the tasks at a surface level against a timeline to provide a bird’s-eye view of the project. A release plan includes the following information:

  • The features and functionalities shipping with the release
  • The deliverables that will produce these features and functionalities
  • The teams that will work on the deliverables
  • A timeline for the overall release

This release plan template by ProductPlan is a good example. It showcases two-week sprints, three teams, and all in-scope initiatives color coded by priority. A release plan like this can help the product manager document and deliver a visual representation of the release process. A project manager, on the other hand, will need more than the release plan to identify blockers and ensure efficient utilization of resources. That’s why we recommend using a task checklist or release checklist for managing the release.

A checklist will help you zoom into each task, monitor progress, and identify blockers. You can maintain a task checklist as a single spreadsheet with columns for descriptions, stakeholder names, statuses, comments, and deadlines. You can also turn that into a checklist built with Notion or use a project management tool such as Smartsheet.

Your project manager can build the checklist based on your release plan. This checklist will be an invaluable resource for the project manager in handling the day-to-day coordination for each task. He or she will be able to move quickly in case of blockers and keep all stakeholders updated about possible delays or changes.

Release Trains

Plan your release trains carefully. Using release trains or a scheduled approach to release management helps set a release cadence and stick to it. You ship new releases periodically, and anything that’s ready by the deadline gets released. With this approach, you don’t wait to ship full features, instead shipping  limited parts until the feature is fully functional after a few releases.

Not every company uses this approach; some use a feature-based approach where they only release an update when a new feature is ready. A feature-based approach to release management is appropriate for smaller teams and “lean” apps, or those that are not feature heavy. 

For larger, more complex apps, a feature-based approach can result in delays. That’s because you’ll have multiple teams working on various features for the same app, and they’ll have to enter all of the new code they build into the same binary.

Using a scheduled, release train approach for your mobile app is a best practice, especially if you’re managing a feature-heavy app. With periodic updates and releases, it becomes easier to monitor the app’s performance, remove outdated resources, and keep the app size in check. That said, the release train approach requires striking a balance — too many releases can be a comparable risk to too few. 

How often should you conduct release trains?

Users prefer to install apps that have been updated recently, but are not updated too frequently.

Ideally, you want to give your team two to four weeks to plan and execute a release train. We recommend testing shorter and longer durations around that range and seeing what resonates with your users, or what drives the highest download rates relative to the number of weeks in the train.

When users see a recent update to  an app they’re about to install, they recognize they’re about to get the latest iteration of the app, with the latest and best features. If it’s updated constantly, though, current users may become hesitant to download the update, especially if the app already works well for them.

However, you want them to download the update because it will resolve older issues and give them new features and better performance. Release trains help you stay in the sweet spot between too many releases and too few.

Our suggestion for release trains goes hand in hand with employing Mobile DevOps for development. If you do not have your Mobile DevOps tools and processes in place, a scheduled approach can lead to inefficient use of resources. That’s because your team(s) will rush to test the new release before the cut-off date and end up doing manual work. You can overcome this hurdle by automating the testing process.

Mobile DevOps and CI/CD

Adopt Mobile DevOps and CI/CD. Mobile DevOps encompasses the development, deployment, and monitoring of all app releases through collaboration between developers, project managers, and the operations team. It shortens the time to release, enables efficient use of resources, improves code quality, and helps overcome blockers quickly.

Combined with the continuous integration/continuous deployment (CI/CD) process, mobile DevOps can speed up the time to release by 20%. In continuous integration, developers continuously commit new code to a version control repository. The newly submitted code is merged with the current code, creating a new build. The new build is tested automatically through CI tools, which identify and fix defects and bugs on the spot. Undergoing the same process manually can cost you hours of additional work every week — adding days and even weeks to bigger releases.

Between continuous integration and deployment, there’s the continuous delivery stage. Successful builds in the CI pipeline are delivered to a staging environment to test performance, security, and more These are the final tests before the build progresses to a live environment. Continuous delivery also serves as a buffer between integration and deployment. The QA team gets involved at this stage and makes sure the build is stable, and there are no performance issues. The build from the continuous delivery pipeline is ready for deployment, but you decide when to pull the trigger. Continuous deployment automates the deployment process and takes the build from the staging environment to production.

There are three aspects to successfully adopting Mobile DevOps:

  1. Culture:  Moving from the conventional model of development to Mobile DevOps requires a shift in culture and processes at your organization. You can ensure a successful transition by establishing an onboarding program about the new initiative, slowly introducing the new processes and providing them with adequate training.  
  2. Training: DevOps, CI/CD (Continuous Integration/Delivery) for Beginners is a good place to start with DevOps training. The course is designed for beginners used to the more conventional development life cycle. It introduces them to the concept of CI/CD and DevOps and builds the foundation for more advanced courses down the road.  
  3. Tools: On top of the stack you already use, you’ll need Mobile DevOps platforms such as Bitrise or Codemagic. These platforms help you automate manual processes and integrate with your current stack. You can switch to CI/CD processes with either of the platforms and use Instabug for continuous monitoring to complete your Mobile DevOps tech stack.

Release Notes

Use release notes to keep your users informed. Users hesitate to update their apps because they worry about bugs, compatibility, device and app crashes, security, privacy, speed, and data loss. If you can help them anticipate major updates and keep them informed about minor updates, you’ll see a rise in engagement and downloads. 

The gaming industry does a great job of communicating with its users about updates. A typical release note from Clash of Clans lists all the issues that were fixed and recommends users update to the latest version. Any user experiencing one of the issues mentioned would be inclined to download the update. 

Release notes are documents developers publish that list all of the changes made to a mobile app in a new release. They’re written for the users of the app and are mostly jargon-free to keep them easy to understand for users of all levels. Release notes are useful for engineering and non-engineering teams alike, as they keep everyone on the same page about the next release and what the company has promised its users.

With larger, complex apps where many changes accompany each release, there’s always the risk of  release notes running too long. You don’t want your release notes to be so lengthy that people ignore them. If there are too many changes in a new release to communicate succinctly, you can summarize multiple updates or group some updates together to shorten the release notes. 

You can distribute release notes through in-app announcements, your blog, a video, your newsletter, or a press release.

Developers publish release notes after the release goes live. However, your new release — especially a major one with new features and functionality — should not come as a surprise to the user. Returning to the example of the gaming industry, game developers keep the users involved from the ideation process to the actual release and beyond. For example, the popular video game Genshin Impact’s release 3.0 landed in August 2022, but the company started talking about it in March 2022. This gave Genshin a solid five months to collect user feedback, make modifications, and generate excitement about the release.

Keep your users informed about upcoming releases by letting them know what’s planned, how the changes will improve their experience with the app, and when the new release is coming. Don’t forget to ask for their feedback and suggestions. You can disseminate this information using the same distribution channels we recommend for  release notes. Your power users will be prepared for the update, helping you reach t more downloads on the first day of the release. 

Feature Flags

Use feature flags—due to the nature of mobile apps and the short timeframes developers have to go live with releases, sometimes quick bug fixes are impossible. To mitigate this issue, many teams opt to use “feature flagging” to permit the remote enabling or disabling of features. Feature flags give you better control over your releases by keeping some features inactive while your developers continue to work on the code.

Earlier in this ebook, we advocated for the use of release trains for larger apps. But sometimes you don’t know exactly when a feature will become fully functional—that’s one of the challenges with a scheduled or release train approach to release management. So, in some cases, a feature may require multiple release trains before it’s fully functional.

For example, one release train may contain the UI for a new feature, complete with new screens, input boxes, drop-down menus, and buttons. And the next release train may contain the underlying code needed for the boxes, menus, and buttons to be functional. You’d want to keep the UI and the new screens hidden from your users after the first release and wait until the second release to make them broadly available. Feature flags can help you do precisely that.

The feature flagging architecture makes it easier to set up things like A/B testing and product testing. Product testing is done in a staging environment. The developers toggle different features on and off using feature flags to see whether the features are working correctly.

You can also use A/B testing to identify the winner between two variants of the same screen or feature, usually after the release is live. The product manager:

  • Defines the user segment — for blind A/B testing, this happens automatically
  • Creates goals such as session duration or exit rates
  • Tracks the outcomes after turning features on or off for the user segment 
  • Collects feedback from users

Based on goals and user feedback, the architecture chooses one of the variants as the winner and applies it to all users, and rolls the other back.

There are two ways to tag your features properly and use feature flags: you can either build your own feature flags or use cloud-based feature management platforms such as Apptimize or CloudBees. For feature-heavy apps, it makes sense to sign up for a feature management platform and buy feature flags.  It’s  simply quicker and more convenient to set up feature flags, product tests, and A/B tests through platforms optimized to manage them. For smaller apps without many features lined up for future releases, it makes sense for your development team to build feature flags in-house.

Automated Monitoring

By automating the monitoring process, you can receive error and crash reports and send alerts to your development team in real time. Post-release monitoring helps you ensure the release is performing as intended. Besides identifying bugs and receiving crash reports, real-time monitoring enables you to be proactive about app performance.

You’ll get a complete picture of your app’s performance by monitoring cold and hot launches, response times for each screen, and resource utilization, while keeping an eye on your Apdex score.

To automate your monitoring process, use Application Performance Monitoring (APM) solutions such as Instabug. APM platforms occupy a small snippet of code in your app, but play an outsize role in detecting crashes, response times, and other important metrics. You gain access to these real-time performance metrics on your dashboard, along with the contextual data needed to identify issues and investigate fixes. For example, Instabug’s App Performance Monitoring dashboard gives you access to:

  • Monitoring for overall metrics and individual traces
  • App launches
  • UI hangs
  • Network transactions
  • Execution traces
  • Screen loading
  • App Apdex
  • Client-side and server-side network monitoring
  • Breakdown of spans and loading times for each screen
  • Automatic recognition of trends, patterns and outliers across various dimensions
  • Advanced search, filtering, and assignment capabilities
  • Customizable alerts and forwarding rules 

Using APM solutions, you can set quality thresholds for specific performance metrics. For example, you may set the threshold for a cold launch to be half a second, which means your APM platform will record  anything longer than that as a delayed launch.

With the help of these tools, you can also designate teams and assign different parts of the code to distinct teams or members. This way, specific recipients receive specific, relevant alerts. This capability reduces dashboard noise and alert fatigue and keeps everyone updated on what’s relevant to them. This feature can be incredibly useful for large teams working on multiple features for an app.

Alerts are the best way to improve issue response time and reduce the time your team needs to manually monitor or look for issues. With new releases, there’s always a risk of old, resolved issues from previous releases reappearing after the update. You can create alerts for diverse situations, like velocity alerts for quickly rising issues, regression alerts for previously closed issues, or custom alerts for any performance metric based on general or granular criteria. 

Companies should prioritize app quality at every stage of the release management process, from development to deployment to post-release and beyond. 

When people install an app for the first time, they look at the app’s rating, read reviews, and consider the app’s size and price before making a download decision. After they install it, the app’s performance becomes the most important factor in keeping them engaged. If the app performs in line with users’ expectations, they’ll give it a good rating and maybe even a positive review. 

Every time you release a new version of your app and ask your users to install updates, you promise them improved performance and a better experience. By monitoring your app’s performance before and after the release, you can proactively ensure that you’re living up to your commitment.

Your app performance monitoring platform should streamline the release management process. Instabug can help you at every stage:

Instabug empowers mobile teams to maintain industry-leading apps with mobile-focused, user-centric stability and performance monitoring.

Visit our sandbox or book a demo to see how Instabug can help your app

Seeing is Believing, Start Your 14-Day Free Trial

In less than a minute, integrate the Instabug SDK for iOS, Android, React Native, Xamarin, Cordova, Flutter, and Unity mobile apps