Rewire your Brain (for Digital) - Allan Kelly Associates · Allan Kelly @allankellynet...
Transcript of Rewire your Brain (for Digital) - Allan Kelly Associates · Allan Kelly @allankellynet...
Mentalmodels
Maybe…...weneedto...
...rethink
Organiza(on&Managementmodels?
Q
HowmanyofyouconsideryourselvessoMwaredevelopers?
Howmanyofyouthinkyouworkin
“digital”?
Digital
AppsOnlineretailTheWeb
GigeconomyUberisa(on
GPS BigData
Drones
AnalyUcs
AI
MobilephonesSmartphones
Itsso.wareallthewaydown…
Sensors Lidar
DeepLearning
Socialmedia
RoboUcs
Cloud
SocialmarkingCrowdfunding
Moore’sLaw
Youain’tseennothingyet
0
1E+09
2E+09
3E+09
4E+09
5E+09
6E+09
7E+09
8E+09
1960 1970 1980 1990 2000 2010 2020
TransistorsperCPU:1970->2020
Datafromh.ps://en.wikipedia.org/wiki/Transistor_count
2016Intel22-coreXeonBroadwell-E5(7,200,000,000)
1976ZilozZ80(8,500)
1971Intel4004(2,300)
1975Mostek6502(3,510)
dot.comboom
0
2E+09
4E+09
6E+09
8E+09
1E+10
1.2E+10
1.4E+10
1.6E+10
1960 1970 1980 1990 2000 2010 2020 2030
Nextyear14,000,000,000Transistors
1969ApolloGuidancecomputer12,000transistors
2016iPhone73,300,000,000
(3.3bn)transistors
Mentalmodels
DiseconomiesofScale
SoMwaredevelopment…
• DoesNOThaveeconomiesofScale• DevelopmenthasDISECONOMIESofscale
MilkischeapestinBIGcartons
So.wareischeapestinlotsofsmallcartons
AndsmallcartonsofsoMwarereducerisk
SoMwaredevelopment…
• DoesNOThaveeconomiesofScale• DevelopmenthasDISECONOMIESofscaleTherefore
• StopthinkingBIG• StartthinkingSMALL
OpUmizeforlotsofSmall
• Smallbatchsize(amountofwork)• Smallcodebases• Smallreleases• Smalltests• Smallteams• Smallfunding– Allocate£$€insmallbatches
Higherqualityisfaster
JohnCage
Defectsarenotfree.Somebodymakesthem,andgetspaidformaking
them
Quality…makesallthingspossible
PhilipCrosby
"Qualityhasmuchincommonwithsex.• Everyoneisforit.(UndercertaincondiUonsof,course)• Everyonefeelstheyunderstandit.(Eventhoughthey
wouldn'twanttoexplainit)• EveryonethinksexecuUonisonlyama.eroffollowing
naturalinclinaUons.(AMerall,wedogetalongsomehow)
And,ofcourse,mostpeoplefeelthatallproblemsintheseareasarecausedbyotherpeople."
publicclassRecentlyUsedList{privateList<string>list;publicRecentlyUsedList(){ list=newList<string>();}publicstringthis[intindex]{ get{ intposiUon=0; foreach(stringvalueinlist){ if(posiUon==index) returnvalue; ++posiUon;} thrownewArgOutOfRngExcpt();}
publicintCount{ get{ intsize=list.Count; returnsize;}}
publicvoidAdd(stringnewItem){
if(list.Contains(newItem)){ intposiUon= list.IndexOf(newItem); stringexisUngItem=list[posiUon]; list.RemoveAt(posiUon); list.Insert(0,exisUngItem); }else{ list.Insert(0,newItem);}}
}}
publicclassRecentlyUsedList{privateList<string>list=newList<string>();publicvoidAdd(stringnewItem){ list.Remove(newItem); list.Add(newItem);}publicintCount{ get{ returnlist.Count;}}publicstringthis[intindex]{ get{ returnlist[Count-index-1];}}}
Code&refactoringfromKevlinHenney–www.curbralan.com
LowQuality HighQuality
Faster!
LowQuality HighQuality
Faster!
Howdoyouimprovequality?
TDDATDDBDD
Quickestwaytolearnistodo
"Why,"saidtheDodo,"thebestwaytoexplainitistodoit."
LewisCarolAlicethroughtheLookingGlass
Planningislearning
Planningisvaluable
But…
IBM360
IBM360atComputerHistoryMuseumDaveRoss:CCLlicenseviaWikiMedia
46years…
1970OS/360model195• 10,000KIPS(10MIPS)• 4096kb(4Mb)• COBOLonOS/360• IMSdatabase• Monthlyrental$250,000
(Approx.$1.25min2016prices)
2016RaspberryPi2• 4,744MIPS• 1Gb• Linux• Python,Scala,Ruby,…• SQL,NoSQL• Buy$35
CPUcycles€€€->Planningischeap
CPUcycles€€€->Planningisexpensive
Valueofplann
ing
Time
Planninghasrapidlydiminishingreturns
Moreplanningdoes
notaddvalue
PlanningislearningPlanningisvaluable
But…PlanningisexpensivePlanninghasrapidlydiminishingreturns
IfyouwanttofinishsoonerThen
Startbuildingsooner
Doitright,then
Dotherightthing
“UsersdonotknowwhattheywantunUltheyseeworkingsoMware”
Humphrey'sLawWa.sHumphrey
TheAlignmentTrap
LessEffecUve
MoreEffecUve
Highlyaligned
Lessaligned
‘Alignmenttrap’11%companies+13%ITspending-14%3yearsalesgrowth
‘Maintenancezone’74%companiesAvgITspending-2%3yearsalesgrowth
‘ITEnabledgrowth’7%companies-6%ITspending+35%3yearsalesgrowth
‘Well-oiledIT’8%companies-15%ITspending+11%3yearsalesgrowth
Source:Shp
ilberg,Berez,Puryear,Shah:
MITSloanReview,Fall2007
1
2
Doingtherig
htth
ings
Doingthingsright
Hewholearnsfastestwins
“WeunderstandthattheonlycompeUUveadvantagethecompanyofthefuturewillhaveisitsmanagers’abilitytolearnfasterthanthentheircompeWtors.”
AriedeGeus,TheLivingCompany1988
1)DoitrightBuildamachinewhichcaniterateAlearningmachine
2)DotherightthingIterateyourwaytotherightthing
Do the right thing
Do it right
ThesoluUondefinestheproblem
SoluUondefinestheproblem
TheiPhoneXisEPIC
MyiPhone7isSOslow,fingerprintscannerinsecure,homebu.on!!!!
Youcannotdefinewhatiswantedatthestart
Problemunderstanding&soluUon
co-evolve
Challenge/ResponseAconversaUon
Problem
SoluWon(trythis)
Problem
SoluWon(trythis)
Problem
SoluWon(trythis)
Embraceuncertainty&ambiguity
Solveproblemsbyredefiningthem
EdsgerW.Dijkstra
“Toputitquitebluntly:aslongastherewerenomachines,programmingwasno
problematall;whenwehadafewweakcomputers,programmingbecameamildproblem,andnowwehavegiganUccomputers,programminghasbecomeanequally
giganUcproblem."
1972
0
1E+09
2E+09
3E+09
4E+09
5E+09
6E+09
7E+09
8E+09
1960 1970 1980 1990 2000 2010 2020
TransistorsperCPU:1970->2020
Datafromh.ps://en.wikipedia.org/wiki/Transistor_count
2016Intel22-coreXeonBroadwell-E5(7,200,000,000)
1976ZilozZ80(8,500)
1971Intel4004(2,300)
1975Mostek6502(3,510)
dot.comboom
GiganUcProblem
Complexity
InsoMwaredevelopmentweareconstantlyba.lingcomplexity
digital
Upsidedownthinkingmakesitallmorecomplex
Upsidedownthinkingmakesitallmorecomplicated
Whathavewelearned?
1. DiseconomiesofScale2. Higherqualityisfaster3. Quickestwaytolearnistodo4. Doitright,thendotherightthing5. SoluUondefinesproblem
LeanPubh.ps://leanpub.com/cdigital
[email protected]:@allankellynet
LeanPubh.ps://leanpub.com/cdigital
[email protected]:@allankellynet
1. DiseconomiesofScale2. Higherqualityisfaster3. Quickestwaytolearnistodo4. Doitright, thendotherightthing
5. SoluUonsdefinesproblem
AllanKelly…Ø ConsulUngonsoMwaredevelopment&strategyØ TrainingforAgile
Author– Li\leBookofRequirements&UserStories(2016)
h.p://www.leanpub.com/userstories– Xanpan:TeamCentricAgileSoMwareDevelopment(2014)h.ps://leanpub.com/xanpan
– BusinessPa\ernsforSo.wareDevelopers(2012)– ChangingSoMwareDevelopment(2008)