What is DevOps?
DevOps is the union of people, process, and products to enable continuous delivery of value to our customers. But what exactly does that mean? Let's join the team as Mara explains what DevOps is, what it isn't, and what makes elite performers successful.
Mara has called a short meeting with her teammates. Everyone has shown up but no one wants to be there. She's put a box of donuts on the table.
Mara: Hi, thanks for coming. I wanted to talk more about our value stream map and how we can make our processes more efficient.
Mara's value stream map is still on the whiteboard from their previous meeting:
Mara: Our value stream map shows where we lose efficiency in delivering value to our end users. Just like everyone else, we can improve. And we can decide which areas to tackle first.
Andy: This shows us where we have problems but not what to do about them.
Mara: Right, it's an exercise that helps point us in the right direction. As for what to do about our problems, I think DevOps will help us. At my last company, our deployment rates went way up, lead times were much faster, and operations had far fewer incidents. It took us a while to get there but it was worth it. DevOps isn't a quick fix.
Tim: I know someone who just got a job as a DevOps engineer. I think it's more for developers. That sounds like you, Andy.
Mara: DevOps isn't a job title.
Amita: Is there any software program we can get that will help us along, or a template? Maybe there's a DevOps spreadsheet.
Mara: DevOps isn't a piece of software.
Andy: It's more like a methodology.
Mara: Not really.
Andy, Amita, Tim: So what is it?!
Mara: Here's the definition I like to use:
DevOps is the union of people, process, and products to enable continuous delivery of value to our end users.
In fact, Abel Wang, a Cloud Advocate at Microsoft, has a great set of videos with quick answers to some of our big questions. Let's see how Abel defines DevOps.
Our goal is to give our customers games they'll love. We do that by working together with a shared set of practices and tools.
Amita: What does that mean? What shared practices? What shared tools?
Mara: Here's what I mean by practices:
- Agile planning. Together, we'll create a backlog of work that everyone on the team and in management can see. We'll prioritize the items so we know what we need to work on first. The backlog can include user stories, bugs, and any other information that helps us.
- Continuous integration (CI). We'll automate how we build and test our code. We'll run that every time a team member commits changes to version control.
- Continuous delivery (CD). CD is how we test, configure, and deploy from a build to a QA or production environment.
- Monitoring. We'll use telemetry to get information about an application's performance and usage patterns. We can use that information to improve as we iterate.
Amita: I don't know about automated testing. My tests are manual and I do them after Andy hands off the code to me. I don't have time to change how I do everything.
Tim: There's no way I'm letting any of you deploy to production.
Andy: This will scare management. They never think further than the next release and they always want it yesterday.
Mara: I know what you mean about management. I put together this handout about what makes an elite performing team.
What makes an elite performing team?
Here's the handout that Mara prepared. The information is based on DevOps research reports and surveys conducted with technical professionals worldwide.
DevOps helps companies experiment with ways to increase customer adoption and satisfaction. It can lead to better organizational performance, and often to higher profitability and market share.
It uses metrics to create four categories by which to compare elite performers with low performers.
Deploy more frequently
In fact, some teams deploy up to dozens of times per day.
Practices such as monitoring, continuous testing, database change management, and integrating security earlier in the software development process help elite performers deploy more frequently, and with greater predictability and security.
Reduce lead time from commit to deploy
Lead time is the time it takes for a feature to make it to the customer. By working in smaller batches, automating manual processes, and deploying more frequently, elite performers can achieve in hours or days what once took weeks or even months.
Reduce change failure rate
A new feature that fails in production or that causes other features to break can create a lost opportunity between you and your users. As high-performing teams mature, they reduce their change failure rate over time.
Recover from incidents more quickly
When incidents do occur, elite performers are able to recover more quickly. Acting on metrics helps elite performers recover more quickly while also deploying more frequently.
How you implement cloud infrastructure also matters. The cloud improves software delivery performance, and teams that adopt essential cloud characteristics are more likely to become elite performers.
Outsourcing can save money and provide a flexible labor pool, but it must be used in the correct areas. Low-performing teams are more likely to outsource whole functions (like testing and operations) than their high-performing counterparts.
The bottom line
DevOps is a key reason many elite performers are able to deliver value to customers, in the form of new features and improvements, more quickly than their competitors. In this short video, Abel explains why you should learn more about DevOps.
What DevOps is not
When considering what DevOps is, it's also important to make sure we understand what it's not. DevOps is not:
- A methodology
- A specific piece of software
- A quick fix for an organization's challenges
- Just a team or a job title (although these titles are reasonably common in the industry)