Agile software development principles emerged from a desire to improve from “heavyweight” methods of producing software. The current Agile methodologies we have evolved through observations with the intention of improving the development life-cycle. We learn an enormous amount looking at our own processes and finding ways to continuously improve as a team or organization. We also learn from other industries, like the Lean software development principles that were translated from observing lean manufacturing. This is why I was interested to read about the OODA loop and how it applies to agile.
Colonel John Boyd developed the Observation-Orientation-Decision-Action (OODA) decision model while working on air-to-air combat theories. It proved successful in the skies and the same decision-making process can be compared to those made during agile software development.
We act in accordance to how we perceive the world and not how it is.
The view we have of our teams could be different from everyone else, not that there is anything wrong with that. What’s important is how we act and the decisions we make based on that perception. Decisions affect the team in many ways, so any decisions should be based on the correct information, even if they need to be made quickly.
The image below, taken from the article, shows the OODA loop. Can you see how it can be applied to software development?
Orientation becomes the most important part of the OODA loop because it shapes the way we observe, the way we decide, and the way we act.
I know I’m guilty of making decisions based on observations without necessarily taking all new information into account. This is sometimes where habits can be bad habits, especially if in the past we see a scenario then automatically make the same decision thinking that it worked before so it will work again. The Orient process is an important step to avoiding these potential mistakes.
Our previous experience has a lot of influence in decisions, but we all need to account for new information to determine what has changed and how it affects us. Even if it’s a new scenario past experience still sways us in a certain direction, we need data to help get an unbiased picture before we can move towards a decision.
In the model, the Observe and Orient steps are very distinct with different thought processes. In my experience, we tend to mix these steps together without feeding information from one to the other. As we are all faced with making decisions in a variety of circumstances is doesn’t necessarily have to be a problem. What I find interesting is if we do separate these steps, it gives a more structured approach to assessing the data available which can only lead to more educated decisions.
A lot of this comes down to the environments we work in and the strength of our teams. If information isn’t freely available/accessible it will negatively affect the whole loop.
Anything which hinders Observation in any way risks not only feeding bad information into Orientation but corrupting all of the other processes in the loop.
Are you in a position to make decisions quickly? Are your teams able to get any data needed quickly to help? I believe the culture of the organization and teams play a vital role in effective decision-making, not having a consistent mindset across the teams will only interfere and muddy the waters of any decision process. It’s the talents of our teams that make the difference, Boyd identifies these talents as unity or trust, skill or expertise, intent, and vision. The article looks at each of these in more detail, the point I want to emphasize is that these are nurtured by the culture.
The talents that reduce our cycle time — unity and trust, skill and experience, mission, and focus — are cultural.
If we want to improve our decision-making, even the whole way we think, it comes down to the people. This is where it’s the leader’s responsibility to observe, influence, and grow the skills of the people in their teams and the organization needs to support this growth too!
The principles for operational success—mutual trust, skill, intent, and vision—describe the necessary talents for an agile organization. Unfortunately, these are generally not talents that emerge spontaneously in an organization. These are talents that must be learned and carefully cultivated.
We know that a team is not an agile team just because they are doing Scrum or XP, it’s the mindset that is in play every day. The leader’s role is to direct and simulate this mindset so that it’s geared towards the different situations that development teams face. Having people trusting and working for each other naturally improves the environment for making decisions, but this starts with putting people first!
Colonel Boyd summed this lesson up in his admonition “People, ideas, hardware – in that order”