Commando code

Preview:

DESCRIPTION

While developers do not fight wars and risk their lifes, the characteristics of their work environment share similarities to those of a battlefield: rapid change and constant uncertainty require us to be highly agile and flexible. To achieve project success, we need to cooperate, lead and communicate efficiently with the team and other business units to make timely and right decisions. The US Marine Corps has a long tradition at solving these problems. Their leadership strategies scale to 190000 soldiers along the entire chain of command. Consequently, it makes sense to draw parallels from these strategies and apply them to our craft. This session is based on the findings of my academic thesis on the same topic. The talk will give a brief overview of how the US Marine Corps defines war and how it meets the challenges it poses through Mission Command and Control. I will show how Agile Software Development already utilizes similar concepts and which additional strategies we could reap for our benefit, be it as an individual, team or organisation.

Citation preview

CC-BY-2.0 https://www.flickr.com/photos/isafmedia/4649277399

Commando CodeCommando CodeWhat software developers can learn from What software developers can learn from the United States Marine Corpsthe United States Marine Corps

Gordon OheimGordon OheimPHP Craftsman, PHP Documentor, PHP Craftsman, PHP Documentor, Stack Overflow Contributor & Moderator, Stack Overflow Contributor & Moderator, AgilistAgilist

→ → http://twitter.com/go_ohhttp://twitter.com/go_oh → → http://about.me/goohhttp://about.me/gooh → → gooh@php.netgooh@php.net

Before we start Before we start

https://www.flickr.com/photos/redeagle/5852033219/

PD: http://commons.wikimedia.org/wiki/File:USMC_War_Memorial_01.jpg

PD: http://commons.wikimedia.org/wiki/File:USMC_War_Memorial_01.jpg

This talk is not about Heroism.This talk is not about Heroism.It's about Organization.It's about Organization.

Huzzah \o/Huzzah \o/

CC-BY-2 https://www.flickr.com/photos/carbonnyc/6123612647

Why this talk?Why this talk?

„„Uncertainty is inherent and inevitable Uncertainty is inherent and inevitable in software development processes and in software development processes and and products“and products“

- The Uncertainty Principle in Software Engineering- The Uncertainty Principle in Software Engineering(Ziv and Richardson)(Ziv and Richardson)

The military has operated in The military has operated in this environment for this environment for

hundreds of years.hundreds of years.

https://www.flickr.com/photos/defenceimages/9522632709

Your idea of officers Your idea of officers barking orders and barking orders and

soldiers blindly following soldiers blindly following them is wrong.them is wrong.

A constant threat to life A constant threat to life demands agility and speedy demands agility and speedy

decision making.decision making.

It demands top It demands top performing teams that performing teams that can rely on each other.can rely on each other.

It demands an organization It demands an organization that can react and adapt to that can react and adapt to

changing circumstance.changing circumstance.

How do they do that?How do they do that?

AboutAbout WarWar

„„War is father of all and War is father of all and king of all; and some he king of all; and some he manifested as gods, some manifested as gods, some as men; some he made as men; some he made slaves, some free.“slaves, some free.“

- Heraclitus- Heraclitus

CC-SA 2 https://www.flickr.com/photos/cote/146504243/

„„We must recognize that We must recognize that war is common, strife is war is common, strife is

justice, and all things justice, and all things happen according to strife happen according to strife

and necessity.“and necessity.“

- Heraclitus- Heraclitus

CC-SA 2 https://www.flickr.com/photos/cote/146504243/

CC-BY-2 https://www.flickr.com/photos/rebeccaselah/5159682027

Umm, what?!Umm, what?!

„„Heraclitus, I believe, Heraclitus, I believe, says that all things pass says that all things pass and nothing stays, and and nothing stays, and comparing existing comparing existing things to the flow of a things to the flow of a river, he says you could river, he says you could not step twice into the not step twice into the same river.“same river.“

- Plato, Cratylus- Plato, Cratylus

http://commons.wikimedia.org/wiki/File:Plato_Silanion_Musei_Capitolini_MC1377.jpghttp://commons.wikimedia.org/wiki/File:Plato_Silanion_Musei_Capitolini_MC1377.jpg

War is the father of allWar is the father of allbecause war is the essence of change.because war is the essence of change.

Every being and every thing is in a Every being and every thing is in a constant battle and conflict with constant battle and conflict with every being and every thing.every being and every thing.

Every action has an impact Every action has an impact and a consequence for someone or and a consequence for someone or something.something.

The world is not staticThe world is not staticbut dynamically interconnected.but dynamically interconnected.

Everything flowsEverything flowsand becomes.and becomes.

Sounds like ZenSounds like Zenbut is actually Systems Thinking.but is actually Systems Thinking.

AuftragstaktikAuftragstaktikInvented by ze germansInvented by ze germans

Adopted by all modern armiesAdopted by all modern armies

„„War is nothing but a duel on War is nothing but a duel on an extensive scale. an extensive scale. If we would conceive as a unit If we would conceive as a unit the countless number of duels the countless number of duels which make up a War, we which make up a War, we shall do so best by supposing shall do so best by supposing to ourselves two wrestlers.“to ourselves two wrestlers.“

- Carl von Clausewitz, On War- Carl von Clausewitz, On War

http://commons.wikimedia.org/wiki/File:Carl_von_Clausewitz.PNG

War on a large scaleWar on a large scalemust work the same as in a duel.must work the same as in a duel.

Success in the smallSuccess in the smalldrives success in the largedrives success in the large

„„Each [wrestler] strives by Each [wrestler] strives by physical force to compel the physical force to compel the other to submit to his will: other to submit to his will: each endeavours to throw his each endeavours to throw his adversary, and thus render adversary, and thus render him incapable of further him incapable of further resistance.“resistance.“

- Carl von Clausewitz, On War- Carl von Clausewitz, On War

http://commons.wikimedia.org/wiki/File:Carl_von_Clausewitz.PNG

Problem:Problem:The other guy wants the sameThe other guy wants the same

„„The tactical result of an The tactical result of an engagement forms the base engagement forms the base for new strategic decisions for new strategic decisions because […] no plan of because […] no plan of operations extends with any operations extends with any certainty beyond the first certainty beyond the first contact with the main hostile contact with the main hostile force.“force.“

- Helmuth von Moltke the - Helmuth von Moltke the ElderElder

http://commons.wikimedia.org/wiki/File:Helmuth_Karl_Bernhard_von_Moltke.jpg

„„Everyone has a Everyone has a plan 'till they get plan 'till they get punched in the punched in the mouth.“ mouth.“

- Mike Tyson- Mike Tyson

CC-BY-SA 2.0 https://www.flickr.com/photos/merille/5525561640

Strategy beats planStrategy beats planTakeaway #1Takeaway #1

Set a goal and constraintsSet a goal and constraintsLet people figure out how to do itLet people figure out how to do it

Plan to beat Mike TysonPlan to beat Mike TysonUppercut, uppercut, low punch, low Uppercut, uppercut, low punch, low punch, left jab, right hook, left jab, punch, left jab, right hook, left jab, right hook, back off, attack right hook, back off, attack

Strategy to beat Mike TysonStrategy to beat Mike TysonDon't get punched in the mouthDon't get punched in the mouth

CC-BY-2 https://www.flickr.com/photos/rebeccaselah/5159682027

What does this have to What does this have to do with software do with software

development?!development?!

Plans and process Plans and process work in known and predictable work in known and predictable environmentsenvironments

Software is writtenSoftware is writtenby people for people with differentby people for people with differentexpectations of your software.expectations of your software.

ConflictConflict

All communicationAll communicationbetween people is inherently falliblebetween people is inherently falliblemaking mutual understanding difficult.making mutual understanding difficult.

UncertaintyUncertainty

Your initial requirementsYour initial requirementswill likely turn out wrong.will likely turn out wrong.

Invalid plansInvalid plans

„„For a new software system, the For a new software system, the requirements will not be completely requirements will not be completely known until after the users have used it.“known until after the users have used it.“

- Humphrey's Requirements Uncertainty Principle- Humphrey's Requirements Uncertainty Principle

„ „Responding to change Responding to change over following a plan“over following a plan“

- Agile Manifesto- Agile Manifesto

StrategyStrategyAllows you to respond to changeAllows you to respond to changewhile keeping focus on the goalwhile keeping focus on the goal

AgilityAgilitySituational AwarenessSituational AwarenessSpeedy decisionsSpeedy decisionsKeeping the initiativeKeeping the initiative

http://commons.wikimedia.org/wiki/File:JohnBoyd_Pilot.jpghttp://commons.wikimedia.org/wiki/File:JohnBoyd_Pilot.jpg

John Boyd's John Boyd's OODA LoopOODA Loop

t

ACTACT

OBSERVEOBSERVE

ORIENTORIENT

DECIDEDECIDE

ACTACT

OBSERVEOBSERVE

ORIENTORIENT

DECIDEDECIDE

ACTACT

OBSERVEOBSERVE

ORIENTORIENT

DECIDEDECIDE

YOU THEMYOU THEM

disruptdisrupt

CC-BY-2 https://www.flickr.com/photos/rebeccaselah/5159682027

Who is „them?“Who is „them?“

Them:Them:Everyone that can disrupt your Everyone that can disrupt your OR your unit's OODA loopOR your unit's OODA loop

http://commons.wikimedia.org/wiki/File:OODA.Boyd.svg

Friction:Friction:Everything that can disrupt your Everything that can disrupt your OR your unit's OODA loopOR your unit's OODA loop

Slowest t

t3

t1 t2

t4

John

You

Jane

Judy

Your unitYour unit

Slowest t

t3

t1 t2

t4

John

You

Jane

Judy

Your unitYour unit

Slowest t

t3

t1 t2

t4

John

You

Jane

Judy

Your unitYour unit

Slowest t

t3

t1 t2

t4

John

You

Jane

Judy

Your unitYour unit

Your unit is only as fastYour unit is only as fastas it's slowest member.as it's slowest member.

CC-BY-2 https://www.flickr.com/photos/15609463@N03/7728672184

Cohesive teamsCohesive teamsaligned to a strategy perform betteraligned to a strategy perform betterthan the best individual alone.than the best individual alone.

fastest t - xfastest t - x

t3

t1 t2

t4

EmergentEmergenteffectseffects

Minimize known frictionMinimize known frictionBy eliminating it's source.By eliminating it's source.

React to unknown frictionReact to unknown frictionby creating and keeping options.by creating and keeping options.

Create Unity of ActionCreate Unity of Actionto achieve the strategy.to achieve the strategy.Takeaway #2Takeaway #2

http://commons.wikimedia.org/wiki/File:Goldegotze.jpg

CC-BY-ND-2 https://www.flickr.com/photos/backpackphotography/2318062662

It scales!It scales!

t3

t1 t2

t4

John

You

Jane

Judy

Your unitYour unit

t3

t1 t2

t4

Unit 4

Unit 2

Unit 3

Unit 1

Your deptYour dept

t3

t1 t2

t4

Dept 4

Dept 2

Dept 3

Dept 1

Your companyYour company

t3

t1 t2

t4

Comp 4

Comp 2

Comp 3

Comp 1

Your marketYour market

Ad infinitumAd infinitum

You

Your actions matterYour actions matterTakeaway #3Takeaway #3

CC-BY-2 https://www.flickr.com/photos/rebeccaselah/5159682027

When will you get to the When will you get to the Marine Corps?Marine Corps?

Mission CommandMission Command

Centers of GravityCenters of GravityYour main assets to protectYour main assets to protectTheir main assets to disruptTheir main assets to disruptCompetitive edgeCompetitive edge

Main EffortMain EffortWhere to put the most actionWhere to put the most actionSupported by all other teamsSupported by all other teamsMost critical to successMost critical to success

Identify your main assetsIdentify your main assetsTakeaway #4Takeaway #4

Commander's IntentCommander's IntentWhat to achieve and whyWhat to achieve and why

Task 1

Task 3

Task 2

Mission / Strategy Achieved by(what)

Do because(why)

In order to win the war …In order to win the war …

Mission: „drive enemy off the peninsula“Mission: „drive enemy off the peninsula“

Task 1: attack enemy from seaTask 1: attack enemy from seaTask 2: disrupt supporting linesTask 2: disrupt supporting linesTask 3: secure the peninsulaTask 3: secure the peninsulaTask 4: don't get punched in the mouthTask 4: don't get punched in the mouth

Looks like User Stories?Looks like User Stories?Guess why …Guess why …

what

whywhat

whywhat

whywhat

whyChain of CommandChain of Command

StrategyStrategy

OperationsOperations

TacticsTactics

High level strategyHigh level strategyis defined as a broad missionis defined as a broad missionwith equally broad tasks.with equally broad tasks.

Missions are delegatedMissions are delegatedto subordinate commanders.to subordinate commanders.

No micromanagement.No micromanagement.

Subordinate commandersSubordinate commandersbackbrief how they want to achieve backbrief how they want to achieve a mission to their superior to a mission to their superior to eliminate misunderstandings.eliminate misunderstandings.

Use BackbriefingUse BackbriefingTakeaway #5Takeaway #5

Missions are broken downMissions are broken downuntil they cannot be broken down.until they cannot be broken down.

All commandersAll commandersmust know the mission of their must know the mission of their superior commanders.superior commanders.

Head of CommandHead of Command

Mission Command scaled across the organizationMission Command scaled across the organization

Communication flowsCommunication flowshorizontally and verticallyhorizontally and vertically

Units accomplish missionsUnits accomplish missionsthrough autonomous decisions.through autonomous decisions.

Remember ClausewitzRemember Clausewitz

Decisions happenDecisions happenwhere the information iswhere the information is

Understand the higher Understand the higher missionmissionTakeaway #6Takeaway #6

Drill & DoctrineDrill & DoctrineBecoming a MarineBecoming a Marine

http://commons.wikimedia.org/wiki/File:Drill_instructor_at_the_Officer_Candidate_School.jpghttp://commons.wikimedia.org/wiki/File:Drill_instructor_at_the_Officer_Candidate_School.jpg

Being a MarineBeing a Marineis not a profession but a mindset.is not a profession but a mindset.It's an identity.It's an identity.

Marines are unitedMarines are unitedBy a common ethosBy a common ethosand esprit d'corps.and esprit d'corps.

Marines learn how to leadMarines learn how to leadthemselves and others right from themselves and others right from the start.the start.

Marines are highly trainedMarines are highly trainedIn their tools and maneuversIn their tools and maneuversto prepare them for war.to prepare them for war.

CC-BY-2 https://www.flickr.com/photos/rebeccaselah/5159682027

Didn't you sayDidn't you say„„no heroisms“?no heroisms“?

QuestionQuestionDid your formal education prepare Did your formal education prepare you for your job?you for your job?

„„We need students better trained in We need students better trained in standards, standards of communication, standards, standards of communication, of documentation, of set-up, and of documentation, of set-up, and of use of software.“of use of software.“

- NATO SOFTWARE ENGINEERING CONFERENCE, 1968- NATO SOFTWARE ENGINEERING CONFERENCE, 1968

Known for 46 yearsKnown for 46 yearsYet some say we are still in a Yet some say we are still in a software crisissoftware crisis

„„My standard speech to teams large and My standard speech to teams large and small is: 'Do you really want to suck small is: 'Do you really want to suck forever? Is that what your motivation is forever? Is that what your motivation is in life? Because it’s a choice, you know—in life? Because it’s a choice, you know—you don’t have to be that way.' A team you don’t have to be that way.' A team has to demand greatness from itself.“has to demand greatness from itself.“

- Jeff Sutherland, co-creator of Scrum- Jeff Sutherland, co-creator of Scrum

Joint effortJoint effortThe USMC understood that people The USMC understood that people in teams, joint effort, harmonius in teams, joint effort, harmonius initiative and unity of effect are key initiative and unity of effect are key to successful missions.to successful missions.

Improve peopleImprove peoplethrough Drill and Doctrinethrough Drill and Doctrineto prepare them for their missions.to prepare them for their missions.

How is up to you.How is up to you.

It's already happeningIt's already happeningFacebook sends their developers Facebook sends their developers through an internal bootcamp.through an internal bootcamp.

Standardize thingsStandardize thingsthat are known and predictablethat are known and predictableto spend less time on themto spend less time on themand make them easily understoodand make them easily understood

DrillDrillKnowing your tools will make you Knowing your tools will make you think less about rote actions.think less about rote actions.

(Git comes to mind)(Git comes to mind)

TrainingTrainingDevelopers that don't know their Developers that don't know their stuff will suck with their stuff. This stuff will suck with their stuff. This will affect the outcomes.will affect the outcomes.

Invest into peopleInvest into peopleTakeaway #7Takeaway #7

DoctrineDoctrineAchieving unity of effect is easier Achieving unity of effect is easier when we share common beliefs and when we share common beliefs and values.values.

Esprit d'corpsEsprit d'corpsEven if we never find a common Even if we never find a common doctrine, you can create a common doctrine, you can create a common understanding about what it means understanding about what it means to create software in your team.to create software in your team.

Find out who you are.Find out who you are.Bonus TakeawayBonus Takeaway

CC-BY-2 https://www.flickr.com/photos/rebeccaselah/5159682027

Can we ask a question?Can we ask a question?

Thanks!Thanks!

Recommended