Ben Ford
Software developer, leader and ex Royal Marine
Applying functional programming abstractions to team communications (and vice-versa).
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
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
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
Discovering the structure to enable intuition
*Evolutionary Epistemology - Chuck Spinney
* from Evolutionary Epistemology - Chuck Spinney
Generalization: Learning and adapting is an ongoing alternation between entropy increase/disorder and entropy decrease towards new patterns.
Process
Percieve
Project
- long term alignment with organisation purpose/principles
- co-ordination alignment of multiple tactical operations
- short term operations with concrete, measureable outcomes
- What's going on "outside" team/org/operation
- What's going on "inside": our internal state
External SA for a sub team is internal for a larger formation - fractal OODA loops!
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
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
Elm Architecture/Halogen
F-Algebra
Free Monads
Interpreters
Recursion Schemes (esp hylomorphisms, metamorphisms)
Semigroups/Monoids
Function composition (Endo monoid)
Foldl (the package)
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
By Ben Ford
Applying functional programming abstractions to team communications (and vice-versa).