There’s been a lot of talk and metrics out there regarding companies that adopt DevOps principles. The overall synopsis is that companies who adopt these principles are generally more profitable, recover faster, and deploy 200 times more frequently with 2,555 faster lead times than those companies that don’t.
Adopting DevOps seems like a great strategic decision within most management circles. And yet, time and time again we can see enterprises that struggle with their DevOps adoptions. This is fairly common because most people don’t seem to get that implementing DevOps is not something you can just go out and “buy” or even fully plan for. Planning out the adoption is important because we want to have the right resources in the right place. Tools are useful because they help to enable processes, but don’t confuse your tool with your process or your people. Just because you’ve gone out and planned a strategy for DevOps adoption or bought an automation or collaboration tool, that doesn’t mean you’re doing DevOps, it just means you’re setting yourself up for success along the journey.
“The Plan is useless, but planning is essential”
We’ve been told at a strategic level that we want to move to DevOps, management has gone out and put together a great plan for the rollout, maybe they’ve even already implemented some “DevOps” tools in the enterprise. But how do we ensure that we are able to execute on that plan from a tactical and operational level in order to make it successful?
This is where the concept of OODA loops (Observe, Orient, Decide, Act) come in. The OODA concepts were developed by United States Air Force Colonel John Boyd as applied to the combat operations process. It is surprisingly well suited for other situations where we are “in the trenches,” trying to become a change agent within our organizations. If you don’t think being a change agent and waging a battle have a lot in common, you’re not paying attention.
Observe
“If we don’t communicate with the outside world to gain information for knowledge and understanding, we die out to become a non-discerning and uninteresting part of that world.”
The first step is always to observe the situation. By observing and taking into account new information we create an open system and gain the information that’s important to creating mental models. That’s not to say our observations will ever be perfect, or even right. There are pitfalls we need to be aware of throughout our observations:
- We often cannot see the complete information, or the information is imperfect in some way.
- We receive so much information that separating the information from the data becomes difficult.
- Our own experiences and opinions will influence how we perceive the information
When looking to be a change agent for DevOps transformation, start by finding out where you are, gather metrics that can be benchmarked against so that we know which way the needle is going as we start our DevOps journey. Not every technique is going to work at every company, so we need a way to figure out how to fail fast while promoting the things that are working. We all have a mental model of how things “should” be, but that’s rarely an accurate depiction of reality. Deciding on and gathering metrics will help you get a better understanding of your operational situation.
But don’t assume that having the data is enough. What is more important is how you interpret that data to bring out the truly valuable information. Even if you have perfect data, without judgement and understanding of the data it’s meaningless. One of the challenges of being effective in observation is knowing what information to monitor and applying the correct filters for that data.
Orientation
This is where we build out our mental models and synthesize the data we’ve gathered into knowledge. As we receive more information we are constantly breaking apart our old paradigms and rebuilding our mental models, creating new ones from the pieces in a continuous process. Boyd called this “destructive deduction” and “creative induction”, using old fragments to form new mental models that more closely align with what is really happening around us.
Most people are not bad decision makers, they just fail to place the information they have at hand in the proper context. It is the context of the information that we’ve synthesized that turns it into knowledge that will lead to good decisions.
Good orienting is the ability to constantly make new mental models on the fly and in the face of uncertainty and unpredictable change. It is also a continual process, as soon as you create a new model it quickly becomes outdated as the environment around you changes. So, you must practice and have a robust toolbox of mental models that you can cultivate and grow in order to quickly assimilate information into actionable knowledge.
A good anecdote that can demonstrate this is the old saying, “When all you’ve got is a hammer, everything is a nail.” This is illustrated quite well in the paradigm shift between BlockBuster and NetFlix. Blockbuster’s business model focused on hard-copy movie rentals and their brick and mortar stores as their primary business. NetFlix when they first came on the scene were focused on DVD rentals by mail as their business plan. NetFlix quickly saw the shift in consumers wanting to stream media via the internet and shifted their business model. BlockBuster on the other hand were slow to move away from their tried and true business model. Eventually Blockbuster tried to shift their business model, however by then it was too late. Orienting and changing your mental models is a constant process of destruction and construction based on the environment around you and the data you have available to you.
You also need to have multiple mental models, because if you’ve only got one or two of them, by the very nature of human psychology you’ll warp your reality so that your think the data and information you’ve observed will fit your models, and everything once again becomes a nail for your hammer.
It’s not something that comes easy, as humans we tend to be creatures of habit. But destroying and creating mental models is something that comes with practice and experience. And it does become easier and eventually becomes something that doesn’t require deliberate thought, just something you do.
Always Be Orienting (ABO) should be a part of your daily mantra. Make it a goal that every day you add to your mental model toolbox, examine your existing models and ask yourself if they still apply to the information you now have.
In addition, not all models are equal, some work and some don’t. Ones that work in one specific situation don’t always work well in another. This is especially true of DevOps transformations because we have a lot of uncertain variables in the equation, especially when it comes to people.
You can go out and read case studies of what has (and has not) worked for other companies on their own DevOps journey all over the internet. And these are great ways to add to your toolbox so that you have additional models, concepts and strategies that are ready to immediately implement with a similar situation comes up. Of course, since every situation is different, if those don’t work you’ll need to continue the process of orientation until you create a model that is better suited for your particular situation.
And that’s why you Always need to Be Orienting, orientation turns information into knowledge and it is knowledge that is the real predictor of making good decisions.
Decision
When we decide, we’re selecting the model that we believe most closely matches our current information about the situation. This is our best guess at selecting a course of action and hence why it’s so important that we have many different models to choose from in our Orienting phase. The more we have the more we can increase the likelihood of having a model that closely resembles the Observations that we have on hand.
Making a decision is easy if you’ve got the right mental models in place because you’re going to be able to predict what happens in the future. The ability to predict a future outcome can be the difference between success and failure.
Making better and faster choices than your opponent gives you a greater chance of successful outcomes and a decisive advantage in influencing those outcomes. The better you become at understanding your data and turning it into knowledge that will help you predict the future outcomes, the better decisions you will be able to make.
As you gain experience, eventually you’ll have observations about a situation that match up with certain proven mental models, there is no need to create and destroy a series of mental models and decide on which one is most appropriate, you’ll already know. Having this ability to quickly orient and act is something Boyd called “Implicit Outcome and Control.” It’s what allows you to speed up your OODA loops and make quick and successful decisions.
Act
Nothing is of benefit is gained unless you close the loop by actually carrying out the decision and acting. Once the results of the action are observed, you start the loop again.
When competing against others, you gain advantage the faster and better you can cycle through the loop.
Everything is Connected
While traditionally depicted as a cycle or ring, because each decision does not happen in a vacuum, each loop is actually a set of interacting loops that are constantly interrelated, operating on and orbiting each other. Some of the loops are going to be small, rapidly occurring iterations that occur multiple times each hour or day, while other loops have larger orbits, moving at much slower speeds that sometimes take weeks or months to see a measurable result from.
Even then, just like in orbits that involve celestial bodies, the orbits themselves will act upon other loops that are in close proximity, similar to how the gravity of planets or moons will affect other entities that are within their gravity well. Again, nothing ever happens in a vacuum and just like with planetary orbits, a rogue asteroid or other cataclysmic event can come in and disrupt your entire system.
Orientation touches every aspect because it’s how we interpret a situation based on culture, experience, new information, analysis, synthesis and even heritage. That’s one of the main proponents for including diversity in decision making systems, it adds more models and options to the decisions you can make that create a better chance over overall success when you act upon those decisions.
Summary
So that’s OODA loops (or orbits) at a high level, its just a system/framework that can be used to help us with tactical (and strategic) actions to enable a desired outcome (in this case, implementing a DevOps culture within our company). Obviously, it can be applied to other things in life as this model in particular is adapted from a decision-making framework for combat situations but as seen here can be adapted for other decision-making processes.
There are a couple points that really need to be emphasized about why this system works:
- Having the right metrics in place in order to gather meaningful data that can be translated into information.
- Having diverse mental models that will allow us to choose the best fit for the data that you’ve gathered to turn that information into knowledge.
- You must be constantly adapting to evolving situations.
DevOps is a process that involved people, process and tools. Because we inherently have a certain amount of uncertainty in that system, balancing the equation is going to be a juggling act that requires us to constantly review the system and make adjustments as we gain additional knowledge and see the outcomes of our actions.
We can plan our journey at the beginning and set ourselves up for success. But we also can’t be afraid to throw out that plan as the situation changes and adapt to new data.
“Everybody has a plan until they get punched in the mouth”
It’s how you react to adversity that defines you, not the adversity itself.