I go to DevOps conferences, meetups, and events and I hear a common question asked by many of the attendees: “How do I get started with DevOps?” As with most things, there’s no one right or best answer for everyone in all circumstances. However, I do believe there are a handful of good options to start “doing the DevOps” that are accessible to most organizations, relatively light lifts, and have the potential to produce good value.
1. Automate Anything
Find any repetitive, manual, time-consuming, error-prone task and automate it. You’ll get more speed, stability, and consistency with fewer errors since the computer will be doing what it’s good at, while freeing the humans to do more of the knowledge work they’re good at. Consider automating parts of testing, builds, or deployments. Once you see the benefits of automation, you’ll start looking for more tasks to automate.
2. Do Value Stream Mapping
Create a value stream map to reflect the end-to-end picture of what it takes to build, deliver, and operate software within your organization. Value stream mapping will create better visibility, shared context, and more awareness about where there are opportunities to improve flow and eliminate waste. Depending on the size and complexity of the value stream and the size of the team involved in the value stream, you can create a value stream map in a workshop that takes anywhere from a few hours to a few days.
3. Conduct an Assessment
Assess your organization against the key aspects of DevOps, like culture, lean practices, automation, and measurement. Gene Kim, Nicole Forsgren, and Jez Humble formed a company called DevOps Research and Assessment (DORA) based on their work with the State of DevOps Reports. They took the survey instrument from the State of DevOps Reports with all the survey response data, and packaged them into a service organizations can use to assess where they are in their own DevOps journey. It can also show you where you stand against industry benchmarks for both high-performing organizations and the industry overall. Capital One and Verizon have both used it with good results, but you don’t need to be Capital One or Verizon to get value from the assessment.
DORA also isn’t free. If you’re on a budget or looking to do something more homegrown, you can use the questions in Nicole Forsgren’s and Jez Humble’s paper about the science behind the State of DevOps Reports to run an assessment yourself.
4. Migrate to the Cloud
Migrate an on-premise application you have onto a cloud platform like AWS or Azure as a way to learn what it takes to live in the cloud. I wouldn’t recommend using one of your mission-critical systems as the first experiment in moving to the cloud. Instead, find a relatively self-contained application with few dependencies that could benefit from more stability, availability, or scalability. If you don’t have the luxury of rearchitecting the application to be cloud-native, use a “forklift” approach — picking up all the binaries and dropping them into a new cloud environment. You’ll get some of the benefits of the cloud (including the learning) without the time, expense, and risk of the significant changes required to make the application cloud-native.
5. Write Code to Automate your Infrastructure
Write and manage code to provision your infrastructure in the same way as the code for your applications. Adopting “infrastructure as code” (IAC) increases speed, reliability, consistency, security, and many other aspects of how you modify and manage your infrastructure. You can use configuration management tools like Chef, Puppet, and Ansible with built-in functionality to make the task of automating your infrastructure faster and easier. These tools also have open source versions so you can experiment with IAC without needing to buy a tool first.
6. Kick Off a DevOps Transformation
Embark on a full-blown DevOps transformation when you have the time, resources, executive support, and the case for change you need to start and sustain change. If you’re at that point, I’d recommend including some or all of the other options at the beginning of your DevOps transformation. Starting small, getting some wins, iterating, and growing — while holding and communicating the larger vision — is a smart strategy for organizational transformation. The “boil the ocean” transformation strategy rarely works.