Mobile DevOps? DevOps? What’s the Difference?
Great question. With all things DevOps, the answer is both simple and complex. The practices and the culture should be the same between DevOps and Mobile DevOps (simple), but the tooling required to successfully integrate a Mobile DevOps practice is going to be different than tooling for your DevOps practice (complex). Before we talk too much about the tooling for Mobile DevOps, let’s take a look at the core practices that make up a complete DevOps solution, and understand how those apply to Mobile DevOps.
A DevOps practice should start with a production first mindset, meaning that everything that is done is to enable the app to be successful once it is live for end users. You should not wait until your app is being deployed to start thinking about how to guarantee it is successful in production, that should be built into the app with the first few lines of code. For web apps, this might be integrating logging and application performance management SDK’s. For mobile apps you should you be integrating SDK’s that allow you track and respond to app crashes as their user impact dictates.
The DevOps team should always have clear goals, and the best way to do that is through a groomed backlog. But how do you groom the backlog? With data driven decisions. To get that data, you need to instrument your app so you can understand how users are adopting and using your app. Ideally, you will find a way to enable conversations with your apps users to really understand the changes they want to see and what a great app looks like in their mind.
Now that you know where you should invest in your app, you need to quickly move those new features and enhancements out to your users. You can never sacrifice speed for quality or you simply trade problems, you never bring more value. Ensuring that you can move through all phases of testing to quickly ship a stable app is critical.
The final focal points of a DevOps practice should be around making sure your teams are well cross functional, flexible, and enabled to respond based on their learnings from the above practices. They should focus on minimizing technical debt at every opportunity to maintain their flexibility and responsiveness.
All of this is the same between a DevOps and a Mobile DevOps practice, and it should lead you to the same goals:
Minimize work in progress
Ensure highest quality user experience for new apps and updates
Scale your delivery with automated process
Achieving these goals and maintaining a strong Mobile DevOps practices takes a committed team, a culture change and the right toolset. Microsoft offers this toolset through HockeyApp, which was envisioned from the start to help teams quickly distribute mobile apps, collect feedback, and understand app stability through industry leading crash reports.
HockeyApp helps you at every phase of development by letting you understand issues with your app during development and testing. By seeing crashes that impacting your test users, you can resolve those issues early and provide your end users with a high quality app. But HockeyApp doesn’t stop reporting crashes just because you have moved beyond testing. The HockeySDK continues to send crash reports no matter the distribution channel, even when distributed through stores like iTunes and Google Play. This allows you to quickly respond to issues with live apps. The details in the crash reports let you prioritize the fixes based on number of impacted users and impacted devices.
App crashes are not the only feedback mechanism HockeyApp provides. Feedback can be submitted directly from your app to your development team, and your team can even have a dialog with the user through HockeyApp. HockeyApp also provides you with user metrics and custom events, letting you understand how your app is being adopted and used. All of this information should be used to groom your backlog, and you should always feel confident that you are investing in the right things based on this data.
So you fixed a bug, added a new feature, or fixed a usability issue. How do you know you did what you think you did? HockeyApp enables you to distribute your app for beta testing, going straight from a continuous integration build to the test users devices all through automation. This rapid beta testing process lets you socialize all your changes with key stakeholders quickly, and get feedback to ensure the changes you made were the right changes. This level of automation allows your team to focus on the app; and the simplified testing process helps make sure your app is in great shape before submitting it to the store.
Mobile DevOps and DevOps are not different; you just need to make sure you have the right tools to enable your DevOps or Mobile DevOps practice to be successful. Without the right tools, rapid delivery of value becomes unsustainable, quality suffers, lead time grows, and users begin to use other apps. By adopting tools that put the user first, and gather user feedback constantly, and let you understand user behavior within your app, you enable yourself to make the right investments to keep your app great.
What does your Mobile DevOps practice look like? What tools do you use, and what would make them better? We are always looking to improve our approaches, recommendations and products and we would love to hear from you! Connect with us on our public slack channel – HockeyCamp, or Twitter and let us know how your Mobile DevOps practice works, what tools you use, and what would make it better. We look forward to hearing from you.