Sunday 25 December 2011

Management and Control Systems

Whilst pottering idly around, reading about military strategists (as one does), I came across John Boyd, http://en.wikipedia.org/wiki/John_Boyd_(military_strategist) , who came up with the OODA loop (Observe-Orient-Decide-Act), a notion that I have encountered several times before, but not investigated in any depth.

Unlike other military strategists, he did not write a book, but some slides are available from presentations that he gave. (The page loads slowly, so the text of the key slide is rephrased below) http://www.danford.net/boyd/essence2.htm

* Our capabilities are derived from a combination of previous experience, cultural tradition and genetic heritage and nothing else.
* Without doing some additional work, we cannot deal effectively with unforeseen change.

* To be effective in a changing environment, we need to process information from a wide variety of different sources, including sources that we find challenging or that contradict our own previous experience or tradition. This data must be cross-referenced and analysed/synthesized into some readily useful representation. (Both the statistical independence of the data sources and the sophistication of the analysis seem to be important).

* The notion of a (albeit rather complex) set of feedback loops (OODA loops) provides us with a procedural view of how the above functions can be scheduled for execution. 

In a military context, the idea is to build up an empathy with the enemy, which you bootstrap into a deep understanding of the enemy's thought process. You can then use that understanding to unsettle and outmaneuver the enemy, disrupting their decision making process. Boyd applied this model to combat aviation and to maneuverist warfare. 

In other, less explicitly competitive fields of endeavor, the focus on outmaneuvering an enemy is perhaps not terribly useful: However, the notion of using feedback loops to bootstrap our capabilities and to improve performance in an uncertain and changing world is particularly relevant and useful.

Agile software development techniques are a response to a similar set of problems, (Namely how to operate in an unpredictable and changing world) but the solutions that they propose are less the all-encompassing philosophy and more the pragmatic set of techniques.

In any case, it might be useful to view agile software development through the lens of the OODA philosophy to see how agile might ideally interact with the enterprise decision making process.

( ...yeah right, like that will ever happen. )

In any case, it provides a useful (non software, non engineering) reference to quote when promoting agile methodologies & other explicitly risk-aware approaches.