commando code
Post on 04-Jul-2015
122 Views
Preview:
DESCRIPTION
TRANSCRIPT
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!
top related