OODA is a process

To survive and grow relatively free of debilitating constraints, individuals and
 groups must MAKE DECISIONS and TAKE ACTIONS to overcome physical obstacles and social competitors

*Evolutionary Epistemology - Chuck Spinney

OODA is an improvement cycle

A "Dialectic Engine" *

  • An analytic/synthetic process
  • Powered by the continuous effort to survive and improve
    the capacity for independent action
  • Regulated by alternating cycles of entropy increase towards more disorder and entropy decrease towards less disorder

* from Evolutionary Epistemology - Chuck Spinney

Destruction and Creation

Mental models undergo continual divergent and convergent cycles

Generalization: Learning and adapting is an ongoing alternation between entropy increase/disorder and entropy decrease towards new patterns.

Abstractions

Abstraction in its main sense is a conceptual process where general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or "concrete") signifiers, first principles, or other methods.

"An abstraction" is the outcome of this process—a concept that acts as a common noun for all subordinate concepts, and connects any related concepts as a group, field, or category

"An abstraction" is the outcome of this process—a concept that acts as a common noun for all subordinate concepts, and connects any related concepts as a group, field, or

Functional Programming

Abstractions

  • Fundamental
  • Few
  • Small
  • Composable
  • Irreducable

The right  abstractions

Chunking

In cognitive psychology, chunking is a process by which individual pieces of information are bound together into a meaningful whole
 - Chunking is used to create higher order cognitive representations
 - "The Magic number 7 plus or minus 2" a paper from the 50s

 

Mental Representations

Discovering the structure to enable intuition

  •  Achieve variety

  •  While maintaining harmony

  •  So you can take the initiative rapidly

Team Topologies

Four fundamental types of team - team topologies - and three core team interaction modes combine with awareness of Conway’s Law, team cognitive load, and responsive organization evolution to define a no-nonsense, team-friendly, humanistic approach to building and running software systems.

The humble fold

foldl :: (State -> Event -> State) -- Calculate new state
      -> State                     -- Old state
      -> Source of Events          -- Stream, list, web socket
      -> State                     -- New State

Destruction (smooshing Event and State together)
 &
Creation (of new State)

https://cdo.dev/d&c  - Destruction and Creation Boyd - 1976

Recursion Schemes

Generalised folding and unfolding

hylo :: Functor f => (f b -> b) -> (a -> f a) -> a -> b
-- cata f . ana g
cata :: Functor f => (f a -> a) -> Fix f -> a
cata alg = alg . fmap (cata alg) . outF
ana :: Functor f => (a -> f a) -> a -> Fix f
ana coalg = Fix . fmap (ana coalg) . coalg

Event sourcing

OODA as a software abstraction

  • Command
  • Events
  • Fold
  • State

Elm Architecture/Halogen

Folds all the way down

F-Algebra
Free Monads
Interpreters
Recursion Schemes (esp hylomorphisms, metamorphisms)
Semigroups/Monoids
Function composition (Endo monoid)
Foldl (the package)

 

QA & further reading

Boyd: The Fighter Pilot Who Changed the Art of War - Robert Coram
Boyd's Papers: Patterns of Conflict, Destruction and Creation & others
Team of Teams - Gen. Stanley McChrystal
The Art of Learning - Josh Waitzkin
Building Evolutionary Architectures - Thoughtworks

Team Topologies - Matthew Skelton & Manuel Pais

Discussion

Systems of Leadership

By Ben Ford

Systems of Leadership

Applying functional programming abstractions to team communications (and vice-versa).

  • 72