Architecture and OODA Loops – Fast is not Enough

OODA Loop Diagram

Sense-making and decision-making are critical skills for the practice of software architecture. Creating effective solutions (i.e. the collection of design decisions that make up the product) is dependent on understanding the architecture of the problem. In other words, the quality of our decisions depends on the quality of our understanding of the context those decisions were intended to address. As Paul Homer recently observed in his post “Thinking Problems”:

Thinking well is a prerequisite for handling complex problems, with or without technology. If people can’t clearly understand the issues, then any attempt to solve them is as equally likely to just make them worse. If they break down the problem into a convoluted mess of ill fitting parts, then any solutions comprised of these is unlikely to work effectively, and is more likely to make things worse. Software, as it is applied to sophisticated problems, is inordinately complex and as such can not be constructed without first arriving at a strong understanding of the underlying context. This comes from observations, but it doesn’t come together until enough thinking has been applied to it to get it into a usable state.

Systems, both automated and social (particularly social), tend to display complex, emergent behavior. The ecosystem for automated systems is a social system that may comprise other social systems. The development and operation of automated systems is, in itself, a social system. Agility in sense-making, decision-making, and execution is critical to effective operation in this environment.

This need for agility is why, when it comes to thinking about thinking, one of the theorists whose ideas I pay particular attention to is John Boyd. Boyd, a US Air Force fighter pilot, gained fame for his theories of cognition. Although initially developed in relation to the tactics of aerial combat, they were found to have a wider application (applying to strategy as well and not being limited to military domains). At its core, the theory was that to defeat an opponent, one must get inside their OODA (Observe, Orient, Decide, and Act) loop. In other words, the person that could observe circumstances, make sense of them (orient), decide on a response and then act on that decision quickest would have the advantage.

Simple explanations of Boyd’s theories are problematic. As Tom Graves points out in his post “Seven sins, sensemaking and OODA”:

…the OODA ‘loop’ isn’t a linear loop – it’s fractal, recursive, re-entrant, looping through itself at multiple levels all at the same time. There’s sensemaking within action, action within sensemaking, decisions affecting how we sense and observe. It’s fractal.

My use of the word “quickest” earlier in the post regarding acting on a decision poses a problem. As I noted in the title, fast is not enough. One could gain speed by just acting without any observation, orientation, or decision. In my opinion, however, the result would most likely be flailing blindly. Too little analysis is detrimental.

Likewise, though, trying to deal with too much information poses a problem. From a conversation with Greger Wikstrand:

Greger rightly observes that the information available is out of our control, but our decision to filter or process it is under our control. By intentionally and intelligently filtering, we can traverse the loop quicker and more effectively.

Whether engaged in application architecture, solution architecture, or enterprise architecture, sense-making and decision-making are crucial components of the practice. That sense-making and decision-making is a continual process throughout the lifetime of the system, not just an initial or occasional phase. Constant understanding of the context the system exists within is vital because:

[OODA Loop diagram by Patrick Edwin Moran via Wikimedia Commons]