Guest Blog | A Mobile DevOps Retrospective Part I: 150+ Apps Later
Visual Studio Mobile Center is now Visual Studio App Center. Learn more here. This is a special guest post from Greg Shackles, Principal Engineer at Olo.
It’s hard to go more than a few minutes before seeing some mention of “DevOps,” whether it be in an article, a conference talk, or a job spec. It’s taken the development world by storm, with every company wanting to say they’re doing it and many hiring dedicated “DevOps engineers.” But, what is DevOps? And why should you care?
As a developer, understanding DevOps fundamentals and how the end-to-end process fits together has made it easier for me to put it all into practice. Now that I’ve been going down this road for a while, I’m confident that it’s made me a much better developer and product owner. To give you the same foundation, below is a quick background into what DevOps really is and its role in mobile development.
I love spending my time writing code and building features. At Olo, we build and deliver consumer-facing apps for 150+ restaurant brands, so I won’t stray far into the theoretical. In future posts, I’ll dig into my experiences building out our development pipelines over the years, so you can learn from our mistakes and successes to create your own rock-solid pipeline.
First, what is DevOps and Shifting Left?
Defining DevOps gets murky, since the conversation all too often turns to tooling, making it easy to mischaracterize the whole movement as simply buying and using a set of tools, or hiring dedicated engineers to “build DevOps.” In reality, this misses the spirit and point of DevOps: it’s not about tooling at all, it’s about people.
DevOps has four core tenets: culture, automation, measurement, and sharing. These combine and feed into one another, forming a continuous process that expands far beyond any specific tools. Ultimately, it’s about shaping your development culture to embrace automation, measurement, and sharing throughout the lifecycle of your software.
Some organizations call this “shifting left.” Where teams traditionally leave automation and testing until the end of the development process, “shifting left” moves these steps to the beginning. This means testing early and often, so you start each new feature with a solid codebase, not building on top of faulty code, and your team can be more agile. In other words, you’ll focus on the real problems, confident that you have proper feedback loops to know how things are going and catch any issues before you run into major problems.
Why Mobile DevOps?
DevOps—culture, automation, measurement, and sharing‐applies to all software development, but mobile app development amplifies its importance. We all know user expectations are high, and one bad experience can quickly turn an active user into an uninstall. Fragmentation further complicates things: there are thousands of different devices out there, running a myriad of operating systems and versions of those operating systems , and you need to make sure your app runs well for any user on any device.
For whatever itch your app is trying to scratch, there’s no doubt numerous others trying to do the same. How do you keep your users from looking for them? DevOps.
Publishing even a single app is hard. At Olo, we build white-labeled ordering apps for restaurants and manage a lot of apps. DevOps is critical for us, and automation is absolutely essential. When that new version of iOS or Android comes around each year and we need to release updates, the last thing we want is to have to process each one individually from build to release.
DevOps isn’t a process where you install a tool and check off a “do DevOps” box. Instead, it’s a process that you chip away at, make mistakes, learn, and improve iteratively over time. It’s easy to feel overwhelmed by everything there is to learn and set up. Rest assured that it took us awhile to get our pipeline where it is today; even now, there’s no shortage of improvements that we’d like to make.
While we still have room to grow, I can cite countless tangible benefits that we’ve experienced over the years from following these practices. We deliver apps more quickly and easily, and with each release, we have a level of stability and confidence that we couldn’t have achieved before. We’re more collaborative since the entire team is involved throughout the development lifecycle, resulting in a shared sense of ownership. Beyond our speed and overall team culture, we’ve seen something else—a notable positive impact on our user reviews and user engagement metrics.
In my next post, I’ll focus on automation, showing you how we’ve automated our development and deployment processes to set ourselves up for success. Check out Part II of this series here.
If you haven’t already, create your Visual Studio Mobile Center account, connect your first app, and start shipping better apps now.
Have an account? Log in and let us know what you’re working on!
About the Author
Greg Shackles is an experienced developer, Microsoft MVP, Xamarin MVP, and spends his days as Principal Engineer at Olo. When he’s not coding, he hosts the Gone Mobile podcast, organizes the NYC Mobile .NET Developers Group, and he wrote Mobile Development with C# to help developers use their existing skills to create native mobile apps.