Social networking apps, video games, and shopping apps are some of the most commonly updated apps in the Google Play Store — receiving about one update every couple of weeks.
The odds are that the teams with successful mobile apps are using the Mobile DevOps model; a high frequency of updates is nearly impossible without it. Mobile DevOps enables the development team to build and test new features and updates and the operations team to quickly deploy and monitor them.
With mobile apps, new features are a double-edged sword. If the new features break the app, slow it down or simply fail to impress, users can go to the App Store or Google Play Store and bring down the app’s ratings within hours.
Of course, if the feature is a winner, the opposite can also be true.
Mobile DevOps shortens the development cycle and improves your ability to course-correct when a feature flops — and it improves the quality of your code. Therefore, mobile engineering teams must overcome the challenges of using the Mobile DevOps model to its fullest potential. The good news is there are only three big issues to worry about.
1. Resistance to moving from legacy tools to Mobile DevOps tools
Your mobile development team and your ops team are used to working in silos. They have their own tech stacks and processes. Getting them to adopt the new stack and the new way of doing things will pose a challenge.
To minimize resistance to change and help both teams adopt the new tech stack and processes, DevOps needs to be implemented slowly using a step-by-step approach. According to a study by McKinsey, the more steps you take, the higher your chances of success when it comes to change implementation. That’s because a larger number of actions indicate a more comprehensive approach, whereas a smaller number of actions indicate a rapid transformation.
While the actions you take will be unique to your organization, each action will belong to one of the following phases:
Getting buy-in from your teams
The best way to face resistance is to tackle it head-on. Meet with your IT Ops team and your developers to discuss the benefits of Mobile DevOps. Explain to them why you are planning to adopt a Mobile DevOps model and ask them about their concerns.
With the help of both teams, create a transformation plan. Going from one set of processes to another cannot be achieved in a day, so you will need to create a timeline where old processes will slowly make way for the new.
Discuss the tech stack with your team. There are many tools you’ll keep, some new tools you will adopt, and some apps that you will stop using.
Your operations team probably uses a tech stack with tools for observability, AIOps tools, policy-as-code, infrastructure, multi-cloud management, and real-time identity management services.
They sometimes coordinate tasks with the development team, but most of the tools they use every day are specific to operations. They probably don’t share any tools with the development team, whose stack includes development tools and QA and testing tools — tools that don’t have much to do with the operations team.
Switching to Mobile DevOps means breaking down these silos and adding some new tools and processes that are shared between the dev team and the operations team.
Implementing your new tech
When you start the implementation processes, keep an eye on productivity and morale.
Mobile DevOps teams use collaborative tools such as Jira, Confluence, and Slack for project management. Even if you already have these tools as part of your stack, your teams may be isolated from each other on these tools. The increased frequency of communication, like shared Jira tickets and collaborative Slack discussions, can cause friction for which both teams need to be ready.
One way to overcome this friction is to build a communications plan or playbook that addresses all rules of engagement. Make sure each member of the team knows the situations that merit a Jira ticket, a Slack message or thread, an email, a meeting, and so on. It will be easier for the DevOps team to collaborate when everyone is following the same set of rules for internal communications.
2. Lack of people skilled in microservices architecture
When Mobile DevOps teams use microservices architecture to build large and complex applications, each service is owned by a small team that maintains and tests it. But team members with these skills can be hard to find. According to IBM, 54% of IT executives and developers say that it is difficult and expensive to find people with expertise in microservices.
Attract the best talent
To attract and retain the best talent, you might need to change up the benefits your company offers:
Be upfront about the job - When posting a job, be transparent about the benefits offered as well as the pay range. One survey shows that 79% of candidates are more likely to apply to job posts that clearly state a pay range.
Offer flexible schedules - Switch to a remote or hybrid work model if you haven’t already. Based on a recent report, 83% of workers prefer a hybrid work model.
Switch to a 4-day work week - Another study shows 92% of employees want a shorter work week, and 72% are even willing to work long hours to get that extra day off.
Assess your culture - Once the salary and benefits you offer meet your potential employee’s expectations, everything else comes down to cultural factors. Some of these suggestions we made above may not be possible for you to implement, but if you can convince your C-suite to improve the work culture by taking another look at your organizational values and increasing transparency, your organization will attract the best talent in your industry.
3. Balancing quality and quantity
Any time you push new releases faster, you run the risk of compromising on quality. To ensure app quality, you may plan multiple tests for new features and updates, but testing takes time and slows you down. The switch to Mobile DevOps for mobile engineering puts a spotlight on this challenge.
In Mobile DevOps there’s collaborative development, continuous testing, and continuous release and deployment. For every new update in a mobile app, you have to test it on real devices, simulators, multiple OS versions, multiple screen sizes, and locations (if relevant). Therefore, it is not practical to create a new testing plan, develop scripts, create testing environments, execute the test(s), and monitor results for each new release manually.
To ensure continuous testing, automate testing for your mobile app by building automated pipelines that encompass all steps in testing. For example, to test your features on a variety of devices, you can register your devices for testing on Bitrise and use any of these testing automation tools.
The road to Mobile DevOps maturity is full of obstacles — knowing where you stand will help
With a reported 62% of organizations stuck in mid-evolution of their DevOps journey, it’s clear that the obstacles that get in the way of successful Mobile DevOps adoption aren’t being addressed. By getting buy-in from your team, training them in microservices, and automating the testing process for new features, you can improve Mobile DevOps implementation in your organization.
Want to know where you stand in terms of Mobile DevOps performance, productivity, and maturity? Take this survey, find out where you stand, and get customized recommendations on how to improve mobile DevOps performance, productivity, and maturity at your organization.