The principles of a DevOps approach emphasize people and culture above tools and processes. But their implementation inevitably rests on a technological foundation. DevOps will evolve from a niche to a mainstream strategy and strong growth opportunities are expected for DevOps toolsets. By 2020, Gartner estimates the market size for DevOps Ready toolsets to be over $2 billion (five-year CAGR of 26 percent)1.
But alongside its clear benefits, DevOps brings unique challenges when developing and operating a mobile environment. Leaders in mobile app development face a unique set of requirements relating to collaboration, testing, release, and analytics.
These challenges are holding most organizations back from realizing the full benefits of the approach despite a favorable business environment in which mobile app development is exploding and mature organizations are each building and deploying numerous custom apps every year.
There are four challenges in particular that test leaders in mobile. They are:
Technology fragmentation. The continuing proliferation of different mobile devices, and the rapid fragmentation of the market for management tools and operating systems, both act to adversely impact DevOps’ ability to keep pace with mobile app releases.
Back-end systems. Mobile app development inevitably drives changes to an enterprise’s back-end systems, requiring better collaboration between mobile and traditional development and operations teams.
Releases and updates. Mobile brings challenges in releasing and updating apps. Unlike the web environment, users must actively download updates. Not every user will, and rollbacks are usually not an option.
Instrumentation. For mobile apps, instrumentation can sometimes be poor, and the visibility of production use low. This will hinder continuous delivery—one of the core DevOps principles.
Success in a mobile environment means overcoming these additional DevOps challenges. As the volume of work in enterprise app development increases exponentially, IT operations face being put under tremendous stress if DevOps is not used or implemented properly. The risk of those operations becoming a critical bottleneck is a real one.
That’s why adopting best practices is crucial. This means embracing a mix of mobile app development tools and common collaboration and continuous integration tools. It means employing mobile test automation to enable continuous delivery. And it means implementing app instrumentation to foster continuous monitoring and analysis. These principles are the key to success in mobile DevOps.
Mobile DevOps is a fast-paced mobile application development approach that focuses on communication, integration, deployment, automation and measurement. It’s a collaborative approach that fosters close working between app developers, testing and QA teams, and IT operations. It emphasizes an ability to prepare, install, and launch mobile applications and test scripts across all target devices. And it offers an easy-to-use set of commands that automate mobile app management and mobile device management operations.
This makes it possible to remotely use real mobile devices to:
Install or remove a mobile application and its different versions
Select an appropriate variant of mobile device
Conduct automated mobile app tests on particular features
Run trusted test scripts on one or more variants of mobile device
There are three rules of thumb when it comes to adopting mobile DevOps:
Continuous integration and continuous delivery against a real environment is key Emulators and simulators are acceptable in the earliest phases of development. But as an app becomes more sophisticated, and as the features that end-users will ultimately see are developed, getting the app thoroughly and comprehensively tested across real devices in real-world environments becomes far more important.
Continuous integration and delivery can be measured with various metrics. The most important for mobile app development and testing include:
The frequency of deployment and the frequency of tests executed against each regression
The number of new features, new lines of code or other integrations deployed in each build
The actual time taken between development starting and test finalization
The percentage and total number of failures against successful tests
Decisions about automation vs manual testing
Test applications, test infrastructure, and deploy frequently
There are many open source and commercial tools which can help organizations build, deploy, test and release their apps. The most meaningful value-add in mobile DevOps is a mobile test automation suite that can accommodate frequent builds (that is, several times daily) to test use in context and enable instant bug-hunting.
Frequent deployment and testing also enhances an organization’s ability to automate the functional, compatibility and performance testing of its application. With a mobile app this needs to accommodate not only the binaries deployed on each device, but also, and more frequently, the large number of dependencies on other applications, back-end systems, and networks.
Developing, deploying and testing in the infrastructure context will also offer key insights into how well the entire environment, and the application within it, performs. In this way, it’s also much easier to drive iterations to make usability, user-interface and user experience aspects better. If something lags or performs badly in the environment it will have an impact on all other pieces of the system.
Monitoring mobile apps, APIs and other relevant parts is also important. While an app may appear to perform just fine when seen in isolation, there may be other entities that don’t necessarily provide the same level of performance. Accurate performance analysis with real data will help improve the overall development flow.
Continuous validation of quality
"Continuous everything" are the bywords of modern mobile DevOps. The approach should always strive to improve things, processes and culture. The continuous evaluation of efficiency and productivity can offer real insights into performance issues and solutions for making each successive regression smoother and more seamless.
The approach should even include reconsidering from time to time which DevOps tools should continue be used. This is especially true if there are any doubts about the current environment, its capacity to deliver and whether it works as efficiently as possible. The characteristics of a quality mobile app are set from the very first line of code right through until it’s in hands of its end-users. Everything that happens in-between should be measured, validated and fixed when needed.
Agile development is at the heart of today’s mobile app development processes and culture and it should be reflected in the tools used by developers. Agile development sprints that include test automation will be faster. And adopting the right tools, methods and technologies will enable an organization to develop and test a mobile application at pace.
The challenges in using DevOps for mobile development are real, but they can be overcome. Organizations should consider partnering up to ensure they maximize the wealth of knowledge and experience available to them. DevOps represents the future of mobile development, and businesses need to ensure they’re capable of realizing the full benefits of the methodology. The continuous roll out of new capabilities will be the differentiator between organizations that thrive and those that stagnate. That’s why it’s time to make sure DevOps is part of the future for your business.