Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the...
Transcript of Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the...
![Page 1: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/1.jpg)
PairProgramming&
MobProgrammingAnIntroduc3on
![Page 2: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/2.jpg)
Theclassicway:thelonecoder• Coderscodeontheirown,inthezone,a
codewarriorontheedgeof3me.• Othercodersarenotawareofthecodethey
arewri3ng.• Ifthecodergetsstuckthentheymayspenda
long3metryingtosortoutanissue;theymaybeembarrassedtoaskforhelp.
• Itthereforehardtomaintainandmeasurecodequality,whichcanleadtoarequirementofcodereviews(oroughtto).
• Itcancausealackofteamownershipofcode,leadingto“well,Ididn’twritethis,so-and-sodid”.
• Knowledgesilosarecreatedwhenonlyonedeveloperknowsthecode.Ifapersonleaves,theytaketheirknowledgesilowiththem.
• Itmakesithardfornewcomerstotheteamtolearn.
![Page 3: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/3.jpg)
PairProgramming• FromXP(eXtreme
Programming).• Partofthetechnical
implementa3onofAgile.• Two-developersworkon
thetasktogether.• Oneofthepaircanbreak
offtodosomethingelsethencomebacklater;Thisisespeciallyusefulduringanalysistasks.
![Page 4: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/4.jpg)
Waystodoitphysically
• Co-locatedteams,sharingakeyboard,orwithtwokeyboards.
• RemotelyusingSkypesharingascreen.• RemotelyusingTeamViewer,orsimilarVNCproduct.
• Co-locatedteamsworkbestinmyexperience.• Butpairprogramminghelpskeepremoteworkersfromloosingfocusorslackingoff!
![Page 5: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/5.jpg)
Waystodoit• Peopletakeitinturntodrive.• Thedriverhasthekeyboard,thepassengersitsontheirhands!
• Swapevery10to20minutes(15isgood).• Ifonepersonislessexperienced,thenitmaybegoodtoletthemdrivemore;mayhelpenhancetheknowledgetransfer.
• Forlongertasks,onepersonineachpaircanswap-offthetaskatthenextdayandanothercancomeontoit.Thenextday,theotherswaps-off.
![Page 6: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/6.jpg)
Results–Benefits• Knowledgetransferbetweendevelopersiscon3nuous.
Makesiteasiertogetnewbiesuptospeed.• Greatersenseofteam-ownershipofcode.• Codequalitymosto_enimproves;bugsgodown.• Knowledgeisnot3edupinthemindofasinglecoder.• Problemsaresolvedfasterandmoreefficientlydueto
constantexchangeofideas.• Swapping-offandontotasksincreasesspreadofknowledge
inteam.• Itfeelsgood;there’smorehumaninterac3on,andpeople
o_enfeelmoreconfidentaboutthesolu3onstheycreate.
![Page 7: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/7.jpg)
Results-Downsides• Itcanbehardtojus3fytomanagement–asitseemslikeusing
twiceasmanyresourcestoachievethesamegoal.• There’snotalotofevidenceouttheretosupportit;noprecy
graphstoshowmanagement.• Ifyourtestsuitetakesagestorun,thenitcanseemlikequitea
wasteof3metodopairtestrunnerwatching.• However,youcanmeasureinyourteamusingcycle3me,burn
downrate,andnumberofbugsfromreleasedcode.• Ihaveexperiencedsomedeveloperswhofoundit3ringtopairall
the3me;encouragesomebreakingoff,ormoreswapping.• Ihavealsoexperiencedapairwhoconspiredtodoillasneither
wereconvincedwithAgileprinciples.Oncenotedwecouldensuretheyrarelypairedtogetherandfrequentlyswapped.AlsoseeMobProgramming….
![Page 8: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/8.jpg)
![Page 9: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/9.jpg)
MobProgramming• DefinedbyMosesHohmanand
AndrewSlocumin“ExtremeProgrammingPerspec;ves”(2003)
• RecentlypopularisedbyWoodyZuillin“MobProgramming:AWholeTeamApproach”(2014).
• Everyonesharesasinglekeyboard!• Developerstakeitinturnstodrive.• Varia3on:thedrivercan’tcontribute• Co-loca3onisprecymuchamust.• Developers(andPOs,etc)areableto
dropinandoutfreely.
![Page 10: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/10.jpg)
Let’swatchavideofromWoodyZuill
![Page 11: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/11.jpg)
Results• Totalteam-ownershipofcode.Abilitytosay“wedidthis,wedecidedthat”withconvic3on.
• Enhancedcodequality,far,farfewerbugs.• Knowledgetransfertoallteammembers(toatleastsomedegree).
• Canhelpiden3fyknowledgesilos.• Inmyexperienceitdoesn’tactuallyslowateamdown,remarkably.Anyslowdowncanbejus3fiedbyresul3ngcodequality.
• Eliminatesconspiracies-to-do-bad;well,ifthewholeteamagreestotheconspiracy,thenyou’reprecymuchsunk!
![Page 12: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/12.jpg)
Mobprogramming-downsides
• Whateveryoudo,don’ttelltheFD!(atleastnotun3lyouhaveproofitworks).
• Remoteworkersarehardtointegrate.• Notthatgoodforinves3ga3onandanalysis.• Notthatgoodfordevops/sysadmintasks;pairingworksbecerforthis.
• Willmostlikelyini3allyaffectyourthroughputasitreducesyourteam’sWIPlimittoone.
![Page 13: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/13.jpg)
Andnotjustprogramming…
• Analysis• Backloggrooming• Tes3ng• Systemsadministra3on/DevOps• Repor3ng• Diggingholesintheroad(mobdigginghasbeenusedforthisformanyyearsalready).
![Page 14: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/14.jpg)
Andremembertoalso…• Keepthestoriesshort.• Focusonthewhat,whyand
forwhom,notthehow.• Dotest-driven
development.• WriteCLEANcode.• Usedesignpacerns.• Refactoro_en.• Nurturerespectamongst
yourteammembers.• Sitonyourhandsifyou
can’tkeepthemoffthekeyboard.
![Page 15: Pair and Mob Programming · Pair Programming • From XP (eXtreme Programming). • Part of the technical implementaon of Agile. • Two-developers work on the task together.](https://reader033.fdocuments.us/reader033/viewer/2022042809/5f954b369dfdbc18913600e8/html5/thumbnails/15.jpg)
Thankyou.07811671893
hcp://leanbytes.co.ukhcps://mbharris.co.uk
hcp://uk.linkedin.com/in/mbharrishcps://github.com/mikebharris/