DevOps is a process that improves the software development by focusing on collaboration between product managers, developers, and the operations staff, while aligning projects with an enterprise's business objectives. It's brought great benefits to companies that use it. But only just now is DevOps in mobile app development becoming a hot topic. In fact, Gartner Research Director Jason Wong says in a blog that a Gartner survey found that "only 42% of those who have implemented [DevOps] indicated that DevOps is used to support mobile app development."
If you're one of the companies that have already incorporated DevOps in mobile app development, or if you're only planning to do it, we've got advice for you, as outlined by Benjamin Roussey in his blog post "Mobile DevOps: The Way Forward in App Development" for TechGenix.
First, when thinking about DevOps in mobile app development, Wong recommends focusing on continuous integration and delivery, not just using simulators and emulators, but "in real environments and across actual devices." This is especially important when developing mobile apps, because of the wide variety of mobile devices on which apps will run, and the networks they use. It's also important, he says, to measure the process with important metrics, such as "the percentage of successful tests versus the number of failed attempts," and "how many new features, how many lines of code, and other integrations were deployed alongside each build of the app."
Mobile development differs from traditional development because mobile must take into account a much wider range of devices with different capabilities, form factors, screen sizes and resolutions. So next he suggests using a mobile testing automation suite "capable of handling frequent builds for quick bug-hunting and test use" that "should not only be able to accommodate the binaries that were deployed on every device, but even the huge amount of dependencies on apps, networks, and backend systems."
Particularly important, he notes, is that the app must be tested using the same infrastructure in which it will be deployed. Doing considering this when applying DevOps to mobile app development, he says, "provides critical insights into just how effectively the whole environment, as well as the app within it, functions. This makes it a whole lot simpler to drive iterations so that usability, user experience, and user-interface aspects are better."
Finally, he says, it's important to validate app quality constantly. He writes, "The very first line of code that is written for a mobile app starts to impart specific qualities to it, and the process continues right up until it is delivered into the hands of the end users. So it is critical to measure, validate, and correct all that takes place in-between, as and when required." That means using agile development, not just for writing apps, but for testing them as well.