The DevOps question I find myself answering the most often is “What is DevOps?”. The cliché answer is, “It’s the combination of Ops and Dev,” but we can do better than that.
For some companies, it’s a re-label of the systems administrator role, except that doesn’t work. DevOps is more than a rebranded Systems Administrator. For other companies, DevOps is a checkbox. They get a CI/CD tool like GitLab or Azure DevOps. Then they designate a couple of “build guys” and celebrate victory. It’s better than rebranding your system’s administrators, but it still misses the mark.
DevOps is Agile Part 2: Electric Boogaloo. Agile focused on cultural practices. Working in small increments, collecting customer feedback, continuous improvement and sustainable flow are all core to Agile methods. DevOps continues that trend but includes both cultural and technical practices. Software creation and delivery is a complex sociotechnical system and the goal of DevOps is to use cultural practices and automation to improve that system. Most people in the DevOps space learn about technical practices like continuous integration, continuous deployment, automated testing and infrastructure as code. This article, however, focuses on three cultural practices that will help you improve your overall efforts.
Alignment
One of the biggest challenges to software delivery in traditional organizations is that development and operations have different goals. The main goal of developers is feature delivery. Developers win when features make it to production. Meanwhile, Operations professionals win when systems are kept stable and secure. These mismatched incentives create a system that feels like developers are trying to score goals against operations defenders.
One way to get everyone on the same team is to judge both areas on the same set of metrics. Unified metrics like time to recover from failure, change fail rate, delivery lead time, deployment frequency, performance, and reliability will get everyone aligned and shooting for the same goal. Both sides can work together to automate quality controls and increase speed. With everyone pushing in the same direction, organizations can make more stable systems while quickly delivering features to your customers.
Recognizing smells
Most developers know about code smells. For non-developers, code smells are signs that a piece of code is low quality and good developers fix these whenever they see them. There are DevOps smells too. Too often, we get into the habit of accepting the inefficient parts of an organization. Barriers stack up and make it difficult to finish work. Develop a sensitivity to silos and manual processes and work to eliminate them.
A few examples of DevOps smells include:
- Silos: If you need to wait for another team regularly to move forward on your work, that’s a problem. Reorganize into cross-functional teams or find ways to automate that handoff so you don’t have to wait.
- Complex change approval processes: Elite organizations can get a change from check-in into production in less than an hour, while it takes more than an hour just to fill out the change paperwork in some organizations. Simplify and automate your change control processes. For example, if you need to put tickets in for every production release, make your automated build system generate those tickets.
- Manual processes for everyday tasks: If you have to do something regularly, you can write a script to do that thing regularly instead.
An excellent place to look for opportunities for automation is in retrospectives. If your team isn’t holding regular retros, put some on the calendar. While you don’t always get great feedback from them, the continuous improvements will add up.
Continuous learning & improvement
Change is constant. Technologies, business models, threats, laws, and regulations are all in flux. Software that was good last month can be invalidated instantly by a new security vulnerability or change in the business climate. The ideal organization has a high trust culture where people cooperate to find the best solutions. Dr. Ron Westrum organizes cultures into three categories.
- Pathological Organizations
These are your standard toxic workplaces. Like a corporate version of Game of Thrones, these places have low cooperation, avoidance of responsibility, and lots of scapegoating. New ideas are crushed. - Bureaucratic Organizations
These are the types of organizations you see in Dilbert comics. In these organizations, rules are king. Every problem that arises is an occasion for additional rules to try and prevent that problem from happening ever again. These rules pile up into a morass of regulations that stymie anything new from happening. There are tons of narrowly defined roles, silos, and turf wars. Novelty is a problem because it interferes with the existing order. - Generative Organizations
These are the organizations that you want. Everyone works together to fix problems and integrate novel practices into the company. They deploy tools like blameless post mortems to find the root cause and create a solution when something goes wrong. Turf wars are minimal, and teams have a high level of trust and psychological safety. Generative organizations are fun to work for, highly productive, and innovative.
Your organization may not fit cleanly into these three categories. Most organizations I’ve worked with have some combination of the three cultures or are moving from one cultural type to another.
Improve your learning culture by doing these things:
1) Encourage experimentation by setting aside some time to try out new things and see if they work for the organization. There are many ways to do this, but I’ve seen regular innovation time (20% time, innovation sprints), hackathons, formal experiments, and dedicated resources for company side projects.
2) Encourage psychological safety by implementing blameless post mortems. When things go wrong, people look for someone to blame, and the blame game is pointless and increases the toxicity of your culture.
3) Break down silos and create cross-functional teams. If you have cross-functional teams, they can learn from each other and better understand their roles.
DevOps is cultural and technical
DevOps is more than a box-checking exercise; it’s about improving your culture to create a sociotechnical system for delivering excellent software and achieving business goals. When you do it well, everyone wins, developers are happier, customers are happier, and the business is healthier.
Get started today: First, seek alignment between different areas of IT. Ideally, everyone is on the same cross-functional team but has people chasing the same set of metrics. Second, break down silos and automate manual work. Keep vigilant about the sticking points in your delivery process and seek to automate them. Finally, embrace novelty and continuous improvement. Everything keeps changing.
About the Author:
Dustin Ewers is an application architect currently specializing in DevOps. He’s been building software for over 15 years, mostly using Microsoft technologies. He’s an active member of the technical community, speaking at user groups and conferences in the Midwest.
Key Takeaways on AI from ITC Vegas 2024
At ITC Vegas 2024, the sessions this year had a huge emphasis on how the insurance sector is rapidly advancing the ways in which they use AI. There’s a major shift happening where theoretical possibilities are turning into real-world implementations and this is becoming evident in many ways. Learn more in this blog post.
Three Tips for Successfully Harnessing Data in AI Implementation
Implementing AI successfully typically hinges on one crucial element: data. Without clean, well-governed and ample data, AI systems can struggle to deliver accurate insights and meaningful actions. In this article, learn three tips for harnessing data effectively in AI implementation.
Discovering Storybook: The Tool that Transforms Your Component Development Process
Component creation is an essential and often intricate part of the web development process. With the increasing complexity of applications, developers face the challenge of ensuring that each component functions correctly and seamlessly integrates within the rest of the system. Learn how Storybook can help.
What Are Successful AI Leaders Doing Differently?
In our recent study on AI-infused products, we wanted to get to the bottom of what really differentiates those who are leading the charge in AI and those who are falling behind. So what are AI leaders doing differently? Read this article to find out.