CircleCI sponsored this post.
At this point, we’re familiar with the benefits of a DevOps model of software development. DevOps can help teams move more quickly and be more nimble. Using DevOps practices makes it safer to deploy changes, and therefore helps development teams be more responsive to their markets.
But what we don’t talk a lot about is that adopting DevOps is a journey, not a destination. A company doesn’t just start “doing” DevOps and call it a day. The process takes time, and like any new skill, involves growing capabilities both by individuals and across an organization.
Like any new skill, the growth isn’t always linear. But the good news is the kind of growth we see in DevOps organizations of all kinds is compounded: the more skills and processes teams put in place, the more ready they become to handle the issues of scale and increasing complexity that face them down the road as they grow. DevOps helps teams get more productive, and then helps them gracefully handle the growth that stems from that productivity.
This is what we mean by DevOps maturity.
Teams that adopt DevOps rely on some shared basic practices, regardless of how far along the DevOps journey they are. These include a shared responsibility for operational quality, using source control, testing, and practicing continuous integration and delivery. These lay the groundwork for a functional DevOps engineering organization. Adopt these practices, incrementally, and you’ll start to see your delivery velocity pick up.
Further along the maturity curve, we start to see a few themes develop: a culture of collaboration and trust, a focus on automation and tooling, and measurement and continuous improvement. These themes form the pillars of a functional DevOps org, and will influence all the work a team does. Together, they form a virtuous cycle that edges teams toward speed, growth, and resilience. We’ll go further into these themes in the next articles in this series, but for now, let’s explore why it’s worth it to strive toward DevOps maturity.
Benefits of DevOps Maturity
Speed. Ultimately, organizations further along the maturity curve can adapt to change more quickly and ship features more often. By investing in incremental process improvements, automation, and culture, they’re able to ship quality software, get feedback, and respond to changes in the market quickly;
Opportunity. Mature DevOps teams are also in a better position to take advantage when advancements in tooling and technology come along. Why? Because they already have a system in place that responds well to change. If you can fail fast and know something didn’t work within a couple of weeks, then you have a lot of flexibility to experiment with things that might move the needle. If not, you end up testing a tool for a year or more. Or, worse, you never try anything at all because the cost is too high. A hallmark of mature DevOps teams is their ability to roll with change, and output feedback quickly;
Fulfillment. Moving beyond repetitive work, to where we can focus on solving the unique problems of our business, getting value into the hands of our customers: this is what we all really come to work for. Getting to a place of cohesion and alignment just feels good. And a key part of that is eliminating the stress that used to be a part of changing the way we build. When our system is ready for change, change doesn’t hurt so much.
DevOps Maturity in Practice
At CircleCI, we have been working under a DevOps model for a while now, and we’re still always looking for opportunities to grow. So what does maturity look like on our engineering team? It doesn’t mean we know everything. It also doesn’t mean we never make mistakes (because we definitely do). Since we don’t know everything, we have to test ideas often, and that means relying on the resilience of our pipeline. Using automation and continuous measurement, we can know quickly if a new tool or process is an improvement. We can implement new technologies in a controlled way: incrementally, with guardrails, and measurements.
Ultimately, being a mature DevOps organization means we’re nimble enough to handle change. Our pipeline is built for it, so any shift, whether it be an unexpected stressor or a process experiment, doesn’t send us off the rails. In the next article, I’ll talk about what gets in the way of organizations moving further down the DevOps maturity spectrum, and what they can do to overcome those obstacles. I’ll also talk you through building the fundamental pillars of a mature DevOps organization.
Read Part 2 in this series: Eliminate Roadblocks on the Path to DevOps Maturity
Feature image via Pixabay.