For most software development teams, there comes a time when existing processes — ones set up in the very early days of the team, and often the company — can no longer sustain the needs of the team as it scales. When it comes to your mobile team’s app release process, what was once manageable for a small team of 2-3 people (ad hoc releases off someone’s machine), can quickly become completely unwieldy when many more mobile engineers are distributed across feature teams, each with their own priorities and deadlines. Like most other critical pieces of infrastructure, your mobile team’s release processes must evolve with your team as it grows — and a failure to adapt can have drastic consequences on the quality, velocity, and reliability of your app updates. For this reason, mobile-forward, agile companies eventually look to invest in evolving the release management process of their iOS and Android apps — and luckily, over the years some best practices have emerged. For a comprehensive guide on how to revamp your team’s mobile app release process to prepare for long term success, read on!
Formalize release best practices with a mobile release management platform
Any investment in your release management process is only as good as your team’s ability to codify and maintain it. Many of the release process best practices that are described below, like establishing a release cadence, assigning a release point person, and automating manual tasks are built directly into release management platforms, which inherently formalizes them and makes them easier to adopt and continue to practice. Release management platforms can also equip your team with the tools to measure and iterate on the process itself, which is key for continuing to evolve the process to meet your team’s needs.
Leveraging a release management platform to formalize your process and foster org-wide visibility into it will set your team up for adopting release best practices and maintaining them well into the future.
Establish a release cadence for your app releases — and stick to it
It’s no coincidence that the top apps in the App Store release updates every two weeks, on average. High-performing mobile teams prioritize delivering new updates to users regularly — and regular updates mean users can expect new features and fixes, which often leads to better engagement and happier users.
One way to make sure you’re getting updates out regularly is to establish a release cadence (also known as release train) — a recurring timeline for preparing and releasing app updates. Whether it be every last week of the month, biweekly, or weekly, establishing a cadence that your team can stick to (and hold itself accountable to meeting) is a big step towards building a mature release process. Release management platforms like Runway can help you stay on schedule by setting target dates for upcoming releases, or even automating key steps like kickoff, submission, and release based on your schedule. You can also leverage everyday tools like Google Calendar to keep your cadence on track.
When first setting up a release cadence, it’s important to be realistic about what’s achievable for your team; you should only be releasing as often as is feasible without compromising the baseline quality and reliability of your releases. It’s better to start out with a longer cadence (say, every 3 weeks) than to commit to a cadence that’s too short, and before your team has established best practices in other parts of the process that make it possible to release high-quality, reliable updates with confidence. Consider instead starting with a longer cadence, but re-evaluating every so often: once you’ve run through releases on schedule for several months, you can try shortening your cadence by a week or so until you reach a frequency that matches your organization’s business needs. Generally speaking, weekly or biweekly release cadences are a good goal to aim for.
Assign a point person for each release
As your mobile team grows, releases inevitably become more complex: coordinating with product managers and quality assurance to get new features properly verified, new versions regression tested, and bugs fixed, looping in design and marketing for release notes copy, and generally making sure things with the release are on track eventually becomes such a thing that some level of ownership is required for releases to keep flowing smoothly.
A good starting point is to assign an individual as a point person for each release (in Runway, we’ve dubbed this role the Release Pilot) — a team member whose responsibility for the duration of the release cycle is to make sure the release is on track, communicate updates to the necessary stakeholders, and triage issues during rollout. Release pilot duties can be intense — and for first-timers, intimidating — which is why it’s important to equip people with the right tools throughout the process, including documentation, checklists, and runbooks. You can leverage release management platforms to support release pilots with visibility across the entire process, eliminating the need to hop across different tools (version control, project management, app store consoles…) to understand the status and progress of the release, as well as by automating tasks that would otherwise need to be done manually.
As releases become more frequent, release pilot duties could easily become a full-time job for one or more people — in fact, some teams actually choose to hire for this role explicitly or even build an entire team around release management duties. But more often — with the right tooling and support — the release pilot role can be successfully rotated across multiple people on the team, from engineers to product managers or even engineering managers or directors. This approach can help foster a shared sense of ownership and accountability over the release process. Like release cadences, creating proper visibility around the release rotation is key to implementing them successfully, and is yet another element of release best practices that release management platforms like Runway are well suited to helping with.
Automate what you can
When it comes to, well, most things, automation has become a popular catch-all. And while it’s true that we’ve seen automation come a long way as a part of mobile development tooling in recent years, it’s important to approach it with more nuance, especially when it comes to processes that are intrinsically collaborative. Building a robust mobile release process unquestionably involves automation in a number of obvious places (continuous integration and continuous delivery), but there’s opportunity to automate even more (cherry-picking fixes into the release, halting rollouts based on health metrics) with the help of release management platforms that offer further automation capabilities.
But effectively moving a mobile app release through each step — from creating a release branch, to generating a release candidate, through to final testing, release, and post-release monitoring — requires coordination across both machine systems and human ones, making the interface across them even more important. Wherever your team chooses to invest in automation, consider also investing in creating visibility into the automated elements themselves, to help avoid the all-too-common “black box” effect that develops when there’s too much automation and too few people that understand it.
Know your release success metrics
If you’re investing in your release process, and you want releases to be successful, you should probably identify what release success looks like. The definition of release success can vary across teams — some may choose to prioritize key business metrics, and for others, stability or performance. Determine what’s most important for your team and your organization, make sure you’re measuring those metrics correctly, and establish a baseline threshold for these key metrics that you can use to measure release success over time. Formalizing your team’s definition of release success — and leveraging it to inform decisions like when to pause a rollout or issue a hotfix — is a key part of evolving your process in a strategic way. Release management platforms offer a great way to encode these definitions, and even feed them directly into automations to help you respond quickly to release failure based on your team’s unique definitions.
Release metrics can be a powerful tool not just for making decisions about a given release, but to inform changes to the release process itself. In fact, expanding beyond release metrics, and starting to measure aspects of the process itself (like release frequency, failure rate, time to recovery) can unlock a feedback loop that will enable you to further optimize the process..
Have a hotfix release plan in place
While aiming to release each update successfully — every time — is always a goal, having a strategy for dealing with release failures, and being able to execute the plan with confidence, is a critical component of a mature and robust release process. There’s nothing worse than needing to ship a time-sensitive hotfix (already a stressful time!) without guardrails in place to help prevent further mistakes.
When putting together a hotfix plan, keep the following in mind:
- Know how to identify a failed release: Make it crystal clear for a release pilot to know when a release has failed (hint: know your success metrics!), and make it dead simple to be able to track the ongoing health of a release. This is a great thing to lean on automation for: leverage release management tools to set up health notifications to let your team know about issues with the release.
- Document your incident process: Maintain a runbook with immediate steps to take when an issue is identified. Depending on your org’s needs, this could include notifying support, updating your service’s status page, and starting the process of preparing a hotfix.
- Create a space for real-time triaging and collaboration: Human judgment often plays a big role during incidents, from looping in the right people for fixes, to making a call on whether to issue a hotfix or roll back the offending release. Creating a space for these conversations to happen is key — whether that be a just-in-time Slack channel or huddle.
- Streamline as much as possible: There’s no denying hotfixes are stressful, especially for the release pilot. You can reduce anxiety (and the likelihood of human errors) by streamlining the hotfix release process as much as possible. If you’re using a release management platform, leverage it to create a single source of truth with clear steps and guardrails in place along the way.
Look to Mobile DevOps principles to inform release process decisions
DevOps is a framework for how to build, test, and release software in an efficient and reliable way — and ultimately, mobile app releases are just one part of the greater development lifecycle. When applied to the mobile context, DevOps principles can offer some invaluable guidelines to help frame how you think of evolving your process.
- Reduce silos: You should generally aim to create transparency and foster visibility into all parts of your release process.
- Favor shorter, more iterative cycles: Strive to shorten your release cadence over time, and find ways to shift left so testing and feedback can happen earlier in the cycle.
- Empower individuals to perform tasks autonomously: Releases involve many stakeholders. Make it possible for those stakeholders to play their part during the release without additional friction.
Release management platforms are the best way to adopt release best practices and maintain them long-term
Having a robust mobile app release process is a key part of building and shipping high-quality, reliable mobile apps. Mobile app release process best practices make it possible to establish a release process that enables teams to get updates out to users regularly and with confidence, while reducing manual work and creating better visibility for the entire org.
And whether your mobile app team has recently outgrown its manual, ad hoc release process, or whether you’re part of a more mature mobile team looking to evolve your process to bring it inline with industry best practices, adopting a release management platform is the best way to formalize and foster visibility into the process, setting your team up for success long-term.