Bret Fisher

For many years, I’ve been helping teams adopt and implement DevOps principles. The word DevOps gets thrown around a lot these days. I’m a little guilty of overusing the word myself — take a look at my Docker and Kubernetes courses — but I’m a huge fan of the DevOps movement (coined by Patrick Debois), and I’ve seen it change so many organizations and lives for the better.

Docker Mastery: with Kubernetes +Swarm from a Docker Captain

Last Updated November 2021

  • 176 lectures
  • All Levels
4.7 (51,637)

Build, test, deploy containers with the best mega-course on Docker, Kubernetes, Compose, Swarm and Registry using DevOps | By Bret Fisher, Docker Captain Program

Explore Course

Rather than define DevOps from a theoretical point of view, I’m writing from what I know and see happens in the teams I work with. In this article, I’m focusing on areas that should help you immediately advance your DevOps knowledge. First, I’ll list and detail what DevOps is and isn’t. Then, I’ll go through my DevOps evaluation to help you assess how “DevOps-y” you and your team are.

What DevOps is

At its core, DevOps is a culture of cross-team collaboration and measured improvement in the software delivery process. It started as a shared responsibility model for developers and operators. But now, it often includes security (DevSecOps) and business teams (BizDevOps). In DevOps, a team works together to remove silos, improve collaboration, and create shared ownership over the continuous improvement of the software they build and support.

1. DevOps centers software creation

DevOps requires the process of creating software to become as important as the software itself. Rather than exclusively focusing on “new customer-facing features,” the staff should also prioritize improving the system. DevOps-specific metrics highlight problems in those systems, so leadership can see when they need to prioritize “non-feature work.”

2. DevOps is driven by speed (velocity). 

This velocity allows you to deliver a better product to your customer and continually improve that product through feedback and automation. From product idea to product release, then repeat. This is where the ♾ infinity logo for DevOps comes from — it’s a never-ending cycle of improvement and increasing your release velocity.

3. DevOps implementation is a combination of activities

This includes new processes and organizing people in new ways. DevOps expects you to create a new culture and implement new technology to help automate and highlight the important aspects of the application lifecycle. It covers a lot of areas and affects way more than engineers.

4. DevOps is driven by data and metrics

A DevOps culture measures its success with these metrics to make educated decisions on what works and what to do next. Four common metrics are Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service. These are explained below.

What DevOps is not

It’s not a series of checkboxes for “tools to implement.” Implementing Docker won’t make you DevOps any more than Jenkins. Sure, technology can help achieve a higher level of DevOps maturity, but I’ve also seen these DevOps tools misused, making systems difficult to use and fragile to change. Tools must be implemented in a way so that they improve your DevOps metrics.

1. You’re never “done” with DevOps

It isn’t a destination — it’s a journey of improving your mindset, the organization’s processes, and technology automation, all while seeking feedback more often.

2. DevOps is not just a better project plan

If we’ve learned anything in 50 years of making software, it’s that the more you try to detail the plan before you start, the harder it is to stay agile in ever-changing requirements. DevOps should help you find a middle ground where you can be flexible to change while planning for the work required. A big part of DevOps is creating smaller updates (more often) to reduce risk and acquiring feedback early (and often) to limit re-work.

3. DevOps isn’t afraid of failure. It embraces it

We’re human and naturally inclined to avoid failure. That tendency leads to a lack of skills and processes to recover from failure. Rather than making the priority to avoid failure, DevOps gives priority to quickly recovering with a combination of improved detection and recovery automation. DevOps also prioritizes metrics for measuring the time to discover a problem (MTTD) and time to repair it (MTTR).

4. It’s not “vanity metrics” 

Speaking of metrics, DevOps is a big fan. We should measure our success with metrics. DevOps is not, however, a fan of all metrics. Avoid vanity metrics that encourage bad habits or make us feel good without showing if our DevOps abilities are maturing. Vanity metrics include ones like “number of tickets closed” or “number of features built.” These metrics track that people are doing work, sure, but is it the right work? Actionable metrics like “deployment frequency” (DF) and “mean lead time for changes” (MLT) highlight the speed at which the org is improving its processes and automation.

5. DevOps is not a job title

This one is tricky because my generic consulting title is often DevOps <something> (as seen in my last Udemy article, Kubernetes vs. Docker). Oops! That title can be as confusing as the title of “Agile Engineer,” which makes no sense. DevOps, like Agile Software Development, isn’t a job role. Everyone in the software organization needs to be on board with the DevOps objectives for it to work. One (or a few) people labeled as “the DevOps Engineer” usually means that everyone else is ignoring the required collaboration and changes they need to make as well. Better titles might be “QA Engineer,” “Reliability Engineer (SRE),” or “Build Engineer.” These job roles (and many more) control a piece of the software lifecycle that affects your DevOps results.

Advantages of DevOps

I’ve helped dozens of teams make progress in their DevOps maturity. I teach all my courses like Docker Mastery and Kubernetes Mastery with that mindset. Here’s my list of big benefits that I see happen once teams put in months of effort to get started:

Bret’s DevOps maturity evaluation

I’m a fan of assessing your organization’s DevOps practices. Assessment helps you determine where you are and which areas need the most attention. It’s hard to know where you need to go unless you know where you’re starting from. 

DevOps casts such a big net over various parts of your organization that it’s difficult to look from the outside in and know where the organization stands in its maturity. You’ll need some sort of evaluation to help.

There are a lot of results when you search “DevOps maturity model,” and there are two basic types of assessment available. It’s either so generic that it isn’t really valuable for taking action — or it’s so detailed that it will take hours or days just to finish the evaluation.

I’ve created a mini-evaluation for you to do right now. I’m calling it Bret’s DevOps Maturity Evaluation. B-DOME for short, hah! For each of the three topic areas, there are five questions with up to 75 points across the evaluation. For each question, I give you three basic choices:

DevOps evaluation part 1: Culture

Featured courses in Software Development Tools

DevOps evaluation part 2: process

DevOps evaluation part 3: Technology

Add up your points, and I’ve assigned some titles for different levels of achievement as a way to track your progress. Share your results with me on Twitter @BretFisher:

10 – 27 Points: DevOps Newborns! You’re off to a good start. Expect the journey toward maturity to take months or years.

27 – 45 Points: DevOps Graduates! You’ve got a solid foundation with many DevOps improvements producing measurable results. Don’t stop now!

46+ Points: DevOps Masters! You’re a well-rounded DevOps organization. Continuing the push for growth will lead to continued benefits and DevOps maturity.

I hope you realize this is hardly comprehensive and is highly opinionated based on my experience with teams. My goal is that this gives you some insight into what you’re doing well and what you need to work on without the work of a formal and detailed evaluation. These 15 topics hit the big issues I see with teams while they are growing their DevOps proficiency.

I wish you good luck in your DevOps journey, and may all your deployments be successful!

Page Last Updated: August 2021

Top courses in DevOps

DevOps Project: CI/CD with Jenkins Ansible Docker Kubernetes
Valaxy Technologies | AR Shankar
4.5 (7,116)
Learn DevOps: Docker, Kubernetes, Terraform and Azure DevOps
in28Minutes Official, Ravi S | DevOps Expert - Docker & Kubernetes, Open Cloud Solutions | Microsoft Azure Certification - AZ 900, Ranga Karanam | GCP Certification - Google Cloud Engineer & Architect
4.5 (4,804)
Bestseller
DevSecOps - Kubernetes DevOps & Security
Siddharth Barahalikar
4.6 (33)
Spring Framework DevOps on AWS
John Thompson
4.5 (741)

More DevOps Courses

DevOps students also learn

Empower your team. Lead the industry.

Get a subscription to a library of online courses and digital learning tools for your organization with Udemy for Business.

Request a demo

Courses by Bret Fisher

Docker Mastery: with Kubernetes +Swarm from a Docker Captain
Bret Fisher, Docker Captain Program
4.7 (51,637)
Kubernetes Mastery: Hands-On Lessons From A Docker Captain
Bret Fisher, Docker Captain Program
4.6 (2,724)
Docker for Node.js Projects From a Docker Captain
Bret Fisher, Docker Captain Program
4.6 (1,162)
Docker Swarm Mastery: DevOps Style Cluster Orchestration
Bret Fisher, Docker Captain Program
4.8 (1,360)
Bestseller

Courses by Bret Fisher