Q&A: Implementing Enterprise Mobile DevOps
AppDevTrends conference presenter Roy Cornelissen talks about how to best integrate mobile development into an enterprise DevOps environment.
Mobile is everywhere these days, and user expectations have risen to the point where they expect equal and unfettered access from their mobile device from anywhere as they have in the office. That's a tall order, especially considering the diverse mobile device landscape.
We spoke with Roy Cornelissen about some of the insights and tips from his sessions "Overcoming the Challenges of Mobile Development in the Enterprise" and "Mobile DevOps Demystified with Xamarin, VSTS and HockeyApp" that he'll be presenting at AppDevTrends, which is part of the Live! 360 conference, taking place December 5-9 2016 in Orlando, Florida.
What exactly is mobile DevOps, and where does come into play in the enterprise?
DevOps is the practice of bringing the different disciplines involved in producing, releasing and operating software into one team that works closely together. By bringing together developers (the Dev part) and operations (the Ops part), the team is able to continuously deliver their product based on continuous feedback.
DevOps is a continuous process that covers the entire lifecycle of a piece of software -- as opposed to a project of finite length, which is usually only focused on delivering the software. Feedback is a crucial element in DevOps. This includes both feedback from customers or users about their experience with the app, and more objective feedback through monitoring and crash/error reporting.
To remain competitive, enterprises need to behave more like startups. They need to move closer to the customer and increase the pace of releasing their apps. This is true not only for consumer apps, but also business apps aimed at employees. Users have come to expect the same level of user experience and quality for all of the apps they use.
So in order to move faster, breaking down the walls between Dev and Ops is crucial. To facilitate the continuous delivery cycle, teams should aim to automate as much as possible -- from continuous integration builds to automated tests and automated distribution.
How does agile come into play with mobile DevOps?
DevOps is about breaking down the walls between Dev and Ops to be able to move faster, but you still need a process to facilitate the journey from idea to design to development to operations. Agile practices are fundamental to help an organization move fast. Agile is about the process, DevOps is about practice.
What are some of the top challenges unique to mobile DevOps?
Mobile DevOps is unique for a number of reasons:
First, the user has come to expect top notch, consumer-level user experiences; comparable to other apps in the app store, which makes the pressure on quality even higher.
Second, mobile isn't neutral. For the desktop, you could just as easily develop for the web, which is a neutral platform. It will work in every browser on every OS. With the increased user expectations, people expect a user experience that blends with their platform of choice. So in mobile, you're building for the platform. It's not neutral, which means you have to deal with OS diversity.
Third, testing is more difficult because of OS and device fragmentation, especially with Android apps. There are so many device manufacturers and OS versions out there, it's almost impossible to have even the most popular permutations of devices and OS versions in house for testing. For testing apps, you need to incorporate a device cloud offering that includes all the popular devices. This also involves automating those tests.
Fourth, release cycles for apps in public stores can be longer due to app review times. You have to account for a certain delay for updates; and backend APIs must account for having different versions of an app active at any given time.
What mistake do you see most organizations make when it comes to mobile DevOps?
In my opinion, DevOps requires a culture shift within the company. Breaking down the walls between development and operations is a change in culture. The most common mistake I see companies make is that dev and ops remain separate departments and agile practices are not fully applied, so a certain amount of "waterfall process" remains. Dev and Ops need to be involved with the product from its inception in order to be successful.
What is the number one top tip you have for successfully creating a continuous delivery pipeline?
Automate everything and build in manual approval steps where more control is required. Also, have the ops and business disciplines think about how an app should be monitored. They will need to know if and how the app achieves business goals and how the app behaves in terms of quality and stability.
Find out more about Live! 360 here.
Lafe Low is the editorial liaison for ECG Events.