Devops is a business execution pattern which brings focus on the customer throughout the business. The three main areas for execution are people, process, and technology. Each of these areas contribute to the overall pattern defined by each business. Individual businesses will have a unique implementation, but share common traits. Some of those traits are continuous innovation, customer empathy, automation, and customer-focused performance metrics.
What does the term devops mean? There are as many definitions as there are people who utter the term. Vendor marketing departments may think it’s something in their product that will give you lasers. Technology managers might think it’s the next step after Agile. Philosophy majors probably think it’s all a culture thing. Developers think it’s more stuff they have to learn that will get in the way of their development. Operators might say it is development trying to push them out of a job. The veterans saw this two decades ago. The new kids think it should always have worked like this. Basically, there’s no solid definition that lasts more than a few months for any individual person. It’s time we properly define this movement rather than allowing semantic diffusion to create a false barrier to adoption and collaboration.
My definition of devops has changed over and over again. I’m constantly trying to stay ahead of the movement with how I define it, but it’s a no win battle. I first defined it as automation. That was fine initially, because we were able to solve a lot of problems with automation. Yay! We’re doing devops!
Then, suddenly, our performance would plateau or even dip. More automation wasn’t helping. There were definite limits to defining devops as automation. The extent of a movement defined around automation ended at the point automation lacked the requisite business value or real value.
So, I expanded my definition to include more developer and operations interactions. During the automation phase of the devops definition, we had already brought dev and ops together to automate on both sides. Now, ops and devs would sit together during deployments and incidents so devs would have added responsibility for their work. Ops would also be more responsible for helping with the automation they use during deployments and incidents. They would help devs build the systems.
However, when I used this definition, the infrastructure teams didn’t think they were on either side. This left an entire variable out of the equation. The actual infrastructure we rested on wasn’t part of the solution. Expanding the definition to infrastructure might add some OpenStack or some other similar automation, but that’s often where it ends. There are still large hurdles to adding new infrastructure due to procurement delays.
The more I analyzed the purpose of devops and businesses succeeding with devops, the more my definition had to expand. Perhaps my current definition belongs to a different word not yet coined. Or perhaps it’s just a conflation with more established concepts that I don’t yet know. Either way, I believe devops is a business execution pattern. It requires the entire business to adopt a new culture and a new way of thinking about the business.
I have heard devops described as a methodology, but that lacks clarity and adaptability. There is no clear methodology used by companies like Capital One, Google, Amazon, or Target. Some methodologies are the same, but many are different. Sure we can find commonalities like automation and dynamic infrastructures, but that isn’t what makes devops successful. Those are just facilitating aspects with bounds.
What makes devops succeed in those companies is the business focus of the separately defined methodologies. Devops brings together these disparate methodologies under a unified strategy and philosophy. The core of this philosophy is to always focus on the customer or end-user. This is the empathy aspect you’ve probably heard about, but it’s also the key to business success. Focusing on what makes the lives of customers better is one way a business can thrive during a negative market.
So, what does it mean for devops to be a business execution pattern? It means the entire business adopts a culture that focuses on the customer. Human Resources will need to understand how the associates they hire can affect the customer and culture. The same is true of procurement and finance. If it takes months to procure a new technology, then how does that affect the customer during those months. A strategy can then be created to reduce the negative impact on the consumer.
Everyone’s value shifts from their role-based responsibilities to customer outcome. The metrics for associate compensation must also follow this value shift. It’s the only way for true transformation. A developer’s value isn’t realized until the code they write makes it to production and is actually used. Make note of that last part. The metrics for developers needs to include actual usage of the features they create. That metric expands to designers and product owners as well. Everything we measure will need to be based on the value to the customer. This aspect also requires HR, as they need to help facilitate these metrics and constantly iterate on these ideas and innovate.
The concept of continuous innovation which lives happily within the context of devops must infect the entire business. Everyone must seek to find new ways to succeed at their jobs. Every area of the business should be streamlining processes and introducing useful technology. In the past, these initiatives were paid for upfront, which required a significant investment from the business on an idea that may or may not succeed. The finance and procurement divisions will need to develop new methods for iterating on these ideas at a much smaller scale with possibly free software.
Devops isn’t a term to only be used in technology companies. It’s a pattern that can help transform all businesses. It can become a way of life, or perhaps it has to be. That ever-present need to make yourself more efficient. It’s time we all started using technology and processes to make our businesses more efficient and productive.
I’ll have follow-up posts that go into more depth about how devops affects different areas of the business.