This article by Steve Adolph is in essence a parapharase of Chet Richards book Certain to Win with an application to software appended to it. However it is short and easy to read and gives an example of another application of the OODA Loop. It can be downloaded as a PDF from the bottom of the page. No assurances are given to the validity of the URL's in the Bibliography. |
||
What Lessons Can the Agile Community Learn from A Maverick Fighter Pilot? 3. The Observe-Orient-Decide-Act Loop 4. Agility, Friction and OODA Loop Speed 5. Is the OODA Loop Suitable for Software Development? 6. The OODA Loop’s Implications for the Agile Community 7. Lessons and Research Opportunities Abstract 1. Introduction However, what does it really mean for a software development organization to be agile? If a project adopts an agile methodology such as XP [1] or Scrum [2] is it agile? Jim Highsmith is quoted by Pete McBreen as saying “it may say agile on the box, but it doesn’t feel agile” [3]. Alistair Cockburn cautions that simply using iterations, user stories and velocity doesn't mean your project is agile - or on the way to success [4]. On the other hand if a project follows a legacy methodology such as RUP or even waterfall based methodologies is it by definition not agile? Many RUP and UP experts claim their process is agile [5, 6, 7] and many practitioners (including this author) will enthusiastically claim that even though they were not following an agile methodology, their projects were agile. So what does it really mean for a software development organization to be agile? US Air Force Colonel John Boyd (1927-1997) may have an answer to this question. This paper answers the question what is agility by introducing Colonel Boyd’s Observe-Orient-Decide-Act (OODA) decision model and how he defined agility in terms of his time based decision model. Next we draw on Colonel Boyd’s principles for operational success to identify the factors that influence agility within an organization and then examine their implications for software development. Finally we briefly describe the research opportunities revealed by Colonel Boyd’s work that we are exploring. 2. Colonel John Boyd While developing his air-to-air combat theories Boyd developed new ideas about strategy which he presented starting in 1977 in his “Patterns of Conflict” briefing [9]. In “Patterns”, Boyd generalizes his air-to air combat theories and argued that to win in a competitive environment we must operate at a faster tempo or rhythm than our adversaries-or, has he explained it, get inside the adversary's Observation – Orientation – Decision - Action time cycle (O-O-D-A, or OODA) [9]. Boyd defined the ability to “operate inside an opponent’s OODA loop as agility [10 P. 66]. This leads to the questions, what is the OODA loop and what does it mean to operate inside an adversary’s OODA loop? 3. The Observe-Orient-Decide-Act Loop The OODA loop is most definitely not a linear staged decision making model and while it is colloquially referred to as a loop; it is a misnomer to think of it as a single loop. Observation, orientation, and action occur continuously and simultaneously. 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. Boyd described orientation as representing the “images, views, or impressions of the world, shaped by genetic heritage, cultural tradition, previous experience, and unfolding circumstances [11 P. 13]. We act in accordance to how we perceive the world and not how it is. Boyd defined agility as: one side in a conflict or in competition is more agile than its opponent if it can change the situation more quickly than the other side can update its orientation. He described this as the ability to operate inside an opponent’s OODA loop [10 P. 66]. Agility therefore depends on keeping one’s orientation better matched to the real world than one’s opponent during times of ambiguity, confusion, and rapid change, when one’s natural tendency is to become disoriented [10 P. 30]. While agility is about using time for competitive advantage it is not speeding up the loop by doing things faster because doing the wrong things faster is not a strategy for success.
If agility is our ability to get inside an opponent’s OODA loop then we must understand the forces that influence our ability to operate our OODA loop more quickly than our opponent. 4. Agility, Friction and OODA Loop Speed According to Boyd, the root of this success lay in the German system for dealing with people and therefore the strategy for winning was cultural rather than technical. This cultural advantage enabled the Germans to execute their decision loops more quickly and more inconspicuously than the allies and create confusion and disorder in their defense forces. According to Boyd researcher Chet Richards, Boyd called these cultural talents the Organizational Climate for Operational Success”, sometimes referred to as the “Principles of the Blitzkrieg” [10 P. 51]. Boyd used the German terms for these talents and referred to them as Einheit, Fingerspitzengefühl, Auftragstaktik, and Schwerpunkt: [10 P. 51]. In English we could name these talents as unity or trust, skill or expertise, intent, and vision. Unity / Trust (Einheit) Skill / Expertise (Fingerspitzengefühl) Intent (Auftragstaktik) Vision (Schwerpunkt) It is easy to see how these aspects mutually support each other to create a climate for organizational success. Unity and trust are the moral forces that harmonize a group by enabling people to subordinate their personal goals to the team goals and the goals of the organization. With trust, people feel safe taking the initiative rather than worrying how to justify their actions. Skill and experience enable people to clearly observe their environment and develop creative solutions. Klein’s research shows how skill and expertise enable people to operate quickly in uncertain environments [13]. Intent opens the opportunity for people to take the initiative. Vision gives people direction, in those situations where no firm guidance has been given (which should be most of the time). Compartmentalization, alienation, non adaptation and fixed recipes slow down the loop. The common theme in these is disconnection. Our orientation becomes disconnected from the environment and we are unable to correctly observe the environment, resulting in our orientation becoming corrupted with incorrect data. 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 [10 P. 63]. Prussian strategist Karl Von Clausewitz used the term friction to describe the atmosphere of war.
Boyd used von Clausewitz’s term friction when summed to characterize the forces that influence OODA loop speed, “friction is generated and magnified by menace, ambiguity, deception, rapidity, uncertainty, and mistrust. Friction is diminished by implicit understanding, trust, cooperation, simplicity and focus… harmony and initiative tend to diminish friction” [11 P. 9]. A strong cohesive culture reduces friction and enables quicker execution of our OODA loop. Quicker execution of our OODA loop enables us to operate more quickly than our adversary and we become agile. Agility is a cultural phenomenon and organizational practices based on Boyd’s principles for operational success encourage an agile culture. 5. Is the OODA Loop Suitable for Software Development?
Still, does a competition based decision model apply to software development? In our opinion the answer is yes. First, while a software development team may not consider itself in competition with an adversary, rapid unanticipated changes emerging from the environment can have the same disorienting effect on a team as an explicit adversary. An inability to quickly respond to changes will lead to confusion and disorder in a software development team as surely as if that team were in competition with an adversary. To paraphrase Boyd, our organization’s objective is to survive on its own terms [9 P. 10]. Second, the OODA loop is about getting into a position of advantage in an uncertain environment. When in a position of advantage we have more degrees of freedom to take the initiative and shape our environment. Even with this adversarial philosophy the OODA is useful for us because in the seemingly cooperative game of software development we’re still seeking advantage over the environment, to cope with change, and shape the environment. At its most basic, the OODA model is about groups of people working harmoniously together to accomplish a common purpose—even though everything is collapsing around them. This describes a lot of human activity, including all sorts of development programs [15]. Finally, lest we forgot, software development is commerce and commerce is about competition. Most software development activity takes place in corporations that operate in highly competitive environments. Our competitors are often directly or indirectly contributors to uncertainty. It is the reality of that competitive environment, uncertainty, fluidity, time, ambiguous requirements that created in the interest in agile software development. 6. The OODA Loop’s Implications for the Agile Community First, agility is a time based strategy for operational success and is not based on size. A project is agile if it is able to execute its reorienting and action-taking cycle faster than the changes occurring in its environment. So in pilot’s language, it is always ahead of the power curve. It is worth remembering that Boyd began development of the OODA loop as a description of a fighter pilot’s decision making process and developed the OODA loop into a general theory of competition and maneuver warfare. The US Marine Corps directly acknowledge their doctrines are derived from Boyd [16] and companies have adopted parts of Boyd’s strategies, though some without acknowledging him [17]. Second, agility is a relative concept, not an absolute concept. An agile project is one that works its OODA loop more quickly than changes can occur in the environment. A large slow moving project is agile if it can respond and shape changes in its environment in a timely manner. A small quick moving project may not be agile if it cannot stay ahead of and shape changes in its environment. The agile methodologies are designed for operating in rapidly changing uncertain environments. But this does not mean that larger methodologies cannot be agile if they correctly match the environment. Third, agility is an important attribute for project success, large or small. If we cannot execute our OODA loops more quickly than the changes are occurring in our environment, then the result will probably be that our project will get further and further behind, internal purpose and harmony will break down under the stress, and failure is likely. Fourth, agility depends on organizational culture. The talents that reduce our cycle time—unity and trust, skill and experience, mission, and focus—are cultural. Agile methodologies were created with the intention of unleashing these talents but a methodology cannot compensate for the lack of these talents in an organization. This is why it can say agile on the box, but not feel like agile. Furthermore, an organization using a “plan driven” methodology can be agile, if the plan and other prescribed methodological artifacts do not disconnect the team from its environment. Methods and tools are secondary to the development of a team because a smooth functioning, agile, team will take the initiative to discover or invent these for itself. To paraphrase an old US election slogan “it’s the people, stupid!” Finally Boyd’s work further reminds us that our recent discovery of agility only means we are late to the party.. The benefit for us is the massive body of knowledge and experience for us to research and learn how to apply to software development. 7. Lessons and Research Opportunities 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. The military is famous for its ability to create an effective team from a group of strangers. In a comparison between agile software development and war fighting, Adolph noted the importance the military and specifically the United States Marine Corps place on training to develop these talents.. [19] However, most software developers and most software development organizations are probably not inclined to implement the strict discipline of military training. Fortunately there are other organizations we can study to learn how to develop effective teams. One industry that may be a rich source of analogues is air transport. Early in the 1980s several reports suggested that aviation accidents blamed on pilot error were more likely failures in team communication and coordination than deficiencies in “stick and rudder” proficiency [20 P. 7]. This should resonate with many software project failure survivors, because in many of our personal experiences project failure more often results from failure of the team to work together than from a lack of technical skill. As a result of these reports airlines developed training programs to teach team skills to flight crews frequently known in the industry as Cockpit Resource Management (CRM). While initially derided by pilots as “charm school”, a number of pilots have suggested their CRM training was invaluable in preventing a major airline tragedy. One research direction we are therefore investigating is possibility of creating a similar program for software teams, perhaps a Developer Resource Management Program. 8. Summary We believe Colonel Boyd’s theories are applicable to software development and explain why an agile project may not feel agile and why a so called “plan driven” project can feel agile. We also asserted that agility is an important attribute for a successful project since it is the most effective way of dealing with uncertainty and avoiding or if necessary responding effectively to crises. Success through agility is a strategy employed by many companies and therefore there are many resources and lessons learned the software community can draw on to help us develop our strategies. We are beginning to investigate the Cockpit Resource Management programs used to train pilots to work effectively in teams as the possible basis for a similar program for software developers. 10. References [2] K. Schwaber and M. Beedle, Agile Software Development with Scrum. Upper Saddle River, N.J.: Prentice Hall, 2002. [3] P. Mcbreen, "Pretending to be Agile," 2002, available at www.informit.com/articles/article.asp?p=25913&seqNum=1&rl=1 [4] A. Cockburn, "Are Iterations Hazardous to Your Project," Humans and Technology, 2005. [5] P. Kruchten, "Agility with the RUP," in The Rational Edge, 2002, available at www.ibm.com/developerworks/rational/library/content/RationalEdge/jan02/AgilitywiththeRUPJan02.pdf [6] M. Hirsch, "Making RUP Agile," 2002, available at www.agilealliance.com/articles/hirschmichaelmakingru/file [7] S. Ambler, "The Agile Unified Process," 2005, available at www.ambysoft.com/unifiedprocess/agileUP.html [8] R. Coram, Boyd: The Fighter Pilot Who Changed the Art of War. New York New York: Back Bay Books 2002. [9] J. Boyd, "Patterns of Conflict," 1986, available at www.d-n-i.net/boyd/pdf/poc.pdf [10] C. Richards, Certain to Win: The Strategy of John Boyd, Applied to Business: Xlibris Corporation, 2004. [11] J. Boyd, "Organic Design for Command and Control," 1987, available at http://www.d-ni.net/boyd/pdf/c&c.pdf [12] C. Richards, "Certain to Win: John Boyd's Strategy in the 21st Century," J. Addams & Partners, Inc., 2005. [13] G. Klein, Sources of Power: How People Make Decisions. London, England: The MIT Press, 1998. [14] C. v. Clausewitz, On War. London: Penguin Books, 1982. [15] C. Richards, private communications, 2006 [16] USMC, "MDCP 6 Command and Control," U. S. M. Corps, Ed., 1996. [17] J. L. Bower and T. M. Hout, "Fast Cycle Capability for Competitive Power," Harvard Business Review, 1988. [18] C. O' Reilly and J. Pfeffer, "Southwest Airlines: Using Human Resources for Competitive Advantage(A)," Graduate School of Business Stanford University HR-1A, 1995. [19] S. Adolph, "Are we ready to be unleashed? A comparative analysis between agile software development and war fighting," presented at Agile Conference, 2005. Proceedings Denver, 2005. [20] E. L. Wiener, B. G. Kanki, and R. L. Helmreich, "Cockpit Resource Management." San Diego California: Academic Press, 1993. Return to Beginning of Article Download Article |