Talking with Tech Leads

Page 1


TalkingwithTechLeads

FromNovicestoPractitioners

PatrickKua

Thisbookisforsaleat

http://leanpub.com/talking-with-tech-leads

Thisversionwaspublishedon2021-01-28

ThisisaLeanpubbook.Leanpubempowersauthors andpublisherswiththeLeanPublishingprocess. LeanPublishingistheactofpublishingan in-progressebookusinglightweighttoolsandmany iterationstogetreaderfeedback,pivotuntilyou havetherightbookandbuildtractiononceyoudo.

©2013-2021PatrickKua

TweetThisBook!

PleasehelpPatrickKuabyspreadingthewordabout thisbookonTwitter!

Thesuggestedhashtagforthisbookis#twtl.

Findoutwhatotherpeoplearesayingaboutthe bookbyclickingonthislinktosearchforthis hashtagonTwitter: #twtl

Foreword

http://jimwebber.org¹

@jimwebber²

WhenPatrickapproachedmetowritethisforeword, Iwasalittlehesitant.I’mnotespeciallyrenowned–notevenasaTechLead!ButafterIreadthebook,I begantounderstandwhyPatrickbelievedI’dfindthe bookworthyofasmallcontribution.

Thisisanimportantbookanditmakesasubstantialcontributiontothesoftsideofsoftware:namely onethatbeginsapathtowardsempiricalreflection onwhatitmeanstobeaseniorsoftwareengineer. Moreover,in“TalkingwithTechLeads”Patrickhas capturedawidevarietyofexperiences,opinions,and reflectionsonwhatitmeanstobeartheresponsibilitiesofaTechLead,farbeyond“merely”being competentatsoftwaredelivery.

¹http://jimwebber.org

²http://www.twitter.com/jimwebber

Foreword ii

Uncoveringthepractices,emotions,andambitionsof TechLeadsaswellastheirdoubts,uncertaintiesand tribulationsisavaluablefirststeptowardsempirically qualifyingthenatureandexpectationsoftherole. Intakingthatstep,itenablesthenewTechLeadto managetheirownexpectations(andnerves)andthe seasonedTechLeadtogrowthroughunderstanding howtheirpeershavesolved(orfailedtosolve)the challengesthatbesetothers.

Thisisnotacareerguidancebook,orevenaself-help book,thoughbothIthinkaresuitablyaddressedasa side-effectofreadingandinternalisingtheinterviews. Thisisabookthatyoucanturntowhenyou’re feelingunsureaboutmovinginto,orexpandingyour roleasaTechLead.Itprovidesanimmediatesense ofcommunity,globalanddiverse,bythenatureof theinterviewees.Theirstoriesresonatepreciselybecausethey’rehonestaccountsfromrepresentative technologists,muchlikeyou,thereader.Allarewell cataloguedandcuratedtobeengagingandprovide anoverarchingnarrativethatmapsconvenientlytoa typicalcareerarc.

Foreword iii

Iexpect,likemostsoftwarepeople,ordinarilyIread technicalworksmuchmorethanIreadexperience reports.“TalkingwithTechLeads”hashelpedme redresssomeofthatbalanceandthinkthroughwhat itmeanstoleadsoftwareteamsintheearly21st century.ForthatIamgratefultoPatrickandIhope you’llfeelthatthebookwillhelpyoutoreflectupon, andaddress,yourchallengesandaspirationsaround technicalleadershiptoo.

Preface

WhyIwrotethisbook

IhaveplayedtheTechLeadrolecountlesstimes, inmyroleasasoftwaredevelopmentconsultantat ThoughtWorks.InoveradecadeofworkinginIT,I haveseenhowdifferentTechLeadsoperateandgrapplewiththeirdifficultproblems.Ihavealsotrained, coachedandsuccessfullydevelopedotherTechLeads –bothwithinThoughtWorksandfortheclientswe workwith.InoticedthatthetransitionforadevelopertoaTechLeadisnevereasy.Evenexperienced TechLeadsstrugglewhentheyfirstchangeteamsor organisations.

Whenyou,thedeveloper,becomeaTechLead,you suddenlyrealisehowlonelytheroleis.Youwillno longerbe“justadeveloper,”andyouwillnolongerbe treatedassuch.Whenyoulookforsupportandadvice, youfindthatnoonecanunderstandyourunique position,teamandcontext.Ifyouworkforalarger organisation,youareinluck–youhaveotherTech Leadsaroundyou.Buteventhen,youcannoteasily

Preface v seehowtheyruntheirteamsandevenlesslikely,how theythinkthroughtheproblemstheyface.

IstartedthisbookprojectbecauseIsawhowdevelopersstruggledtoadapttothedifferentskillsand responsibilitiesthatcomewiththeTechLeadtitle.The experienceyougainasadeveloperdoesnotprepare youfortheresponsibilitiesoftherole.Unlikethe bountifulnumberofbooksonprogramming,thereare fewresourcesthathelpdevelopersprepareforthis role,orhelpTechLeadsdevelopthemselvesfurther. Thisbookhelpsyouonyourjourneytobecominga betterTechLead.

Whatyou’llfindinthisbook

Thisbookoffersyoutheexperiencesfromreal-life TechLeads.Iwantedthisbooktorepresentawide spectrumofexperiencesandfoundTechLeadswho workallovertheworldindifferentcircumstances.

SomeTechLeadworksforverylargeorganisations, whilstothersworkforverysmallgroups.Theirteams writesoftwareinindustriessuchastravel,finance, realestate,media,andconsulting.SomeTechLeads guideateamofveryexperienceddevelopers,whilst othersleadateamwithamixofexperience,including developersrelativelynewtotheindustry.Withthis

Preface vi spectrum,Ihopetherearepeopleyoucanrelateto, andalsonewcircumstancestobeawareofintherole ofaTechLead.

TheTechLeadssharetheirviewstheirroleandhow theysolveproblemsthroughaseriesofcuratedinterviews.Thestructureoftheinterviewswasintentionallysimilar,inordertoseehowdifferentTechLeads responded.

Youwillfindthatthereisnosinglebestwayto leaddevelopmentteams.Instead,youwilldiscover differentapproachestodealingwithdifferentaspects oftheTechLeadrole.

Acknowledgements

Firstofall,Iwouldliketothankallthecontributors.I knowhowtime-consumingtheTechLeadroleisand ittooksignificantnumberofhoursforeachperson tothinkaboutandwritedowntheirthoughtsabout therole.Sharingstoriesabouttoughtimesrequires humilityandeveryoneofferedtheirexperiencesto shareandlearnfrom.

I’dliketogivespecialthankstocontributorsinthe Novicesectionofthebook.Notonlyweretheyhard tosource,becausebeingaTechLeadforthefirst timehappensonlyonceofcourse,buttheywere alsocourageousinsharingtheirexperienceswiththe world.

Thankstootothecountlesspeoplewhohelpedput meintouchwiththepeopleincludedinthebook. Withouttheirrecommendationsandpeopletheyintroducedmeto,Iwouldnothavebeenabletopasson suchawidevarietyofexperiencesandbackgrounds.

Irecognisethatthecontentsmaybealittlebiased withmanypeoplehavingsomeconnectionwithThought-

Acknowledgements viii

Works³.Thisisdowntomybackgroundandnetwork. Iworkedconscientiouslytocastmynetfurtherafield, attemptingtocaptureTechLeadsworkinginadiverse setofcompanies,industries,andwithabroadrangeof experiences.Ihopethatasareaderyoubenefitfrom this.

I’dalsoliketothanktheeditorIcollaboratedwith, AngelaJamesonPottsofVirtualEditor⁴.Itwasa greatpleasuretoworkwithheragain,andIgreatly appreciatedherflexibleapproachtoworkingwith verynon-traditionalbookformattingtools.

Finally,Iwanttoacknowledgeyou,thereader:thank youforselectingthisbook.Ihopeyoulearnmuch fromit.

³http://www.thoughtworks.com

⁴http://www.virtualeditor.co.uk/

Testimonials

“IwishIhadreadthisbookfiveyearsago.Itchanged thewayIworkedthedayafterIreadit.Iwould recommendittoanyneworaspiringTechLead.”

–DavidMorgantini,TechLead,UKGovernmentDigitalService

“Reading‘TalkingwithTechLeads’islikegoingtoa conferenceandwatchingagreatpaneldiscussionon leadingteams.”

“Thisbookhasmademerethinkmypositionandthe wayIworkwithmydirectreports.”

–NickMalnick,TechLead,DRWTradingGroup

“Iliketheevolutionofadvice,commentsandinterviewsandincreasingdepthandcomplexitygenerated bythebookstructure.”

–HugoCorbucci,TechLead,ThoughtWorks

Introduction IntheBeginning

TechnicalLeaders–TechLeadsforshort–almostall startoutinthesameway:aprogrammerorsoftware developer,eitherbycircumstanceorthroughthepassingoftime,whoisaskedtotakeontheTechLeadrole. Thestoryoftengoessomethinglikethis: MeetBrian.BrianworksasadeveloperforZalana, acompanysellingasoftware-as-a-serviceproductto peoplewhoworkinHumanResources.Brianhasbeen withZalanasinceitsstart,threeyearsago.

Overtheyears,thedevelopmentteamhasgrown fromjustBriantothreeotherdevelopers.Theother developersreallyrespectBrianforhisabilitytodesign,

Introduction 2

testandwriterobustcodethatisalsoeasytounderstand.Sheryl,theProductManager,drivestheproduct directionandalmostalwaysapproachesBrianwhen shehasquestionsbecauseshefindshecommunicates wellwithher.Heisparticularlygoodatexplaining technicalsolutionsorconstraintstoher.

Oneday,thefounderofZalana,BobinvitedBrianout forbreakfast.BrianthoughtthisalittleunusualbecauseheknewBobneveratebreakfastandpreferred tospendtimelateintotheeveningswithinvestorsand potentialcustomers.Intriguedandslightlyconcerned, BrianagreedtomeetBobatacosyFrenchrestaurant. Brianarrives,seesBobonhissmartphone,reading andrespondingtoemails,andsitsdownopposite.

BobseesBrianapproachandputsdownhissmartphone.Bobsmiles,waitingforBriantositbefore announcing,“Brian,Ihavesomeexcitingnews.Our businessisdoingwell.Wehavejustsignedthreebig customers.Iknowthedevelopmentteamhasbeen workinghard.Wecanreallyseetheresults,butwe needtogrowtheteam;doubleortripleitifneedbe.”

BobpausestoscanBrian’sface.“Wewantyoutotake theTechLeadrole.”

Brian’smindisreelingattheprospectofthreenew customersandthefreshstreamofdemandsonthe developmentteam,aswellastheofferofanewrole. Questionsracethroughhishead:Whyme?Whatwill

investorsandtherestofthebusinessexpectofme? Howwilltheotherdevelopersseeme?WillIstillgetto writecode?

BrianknowsBob’simpatientbutgoodnatureand answers,“OK,I’llgiveitago.”But,asBoborders anothercoffee,Brianlooksathismenuandthinks, “Nowwhat?”

Althoughthisispurefiction,itillustratesthelesson underlyingmanyoftheinterviewsinthisbook.The TechLeadroleisquitedistinctfromthedeveloperrole, eventhoughtheyoverlaptosomedegree.However, thosewhomoveintotherolearealwayssurprised atwhatthedifferencesare.LikeBrian,manyfind themselvesthrustintotheroleofaTechLeadby chanceoropportunity,anditwasonlywhenthey foundthemselvesintheTechRolethattheyrealised thedifferentresponsibilitiesrequiredmanyskillsthat youdon’tdevelopintheroleofaprogrammer.

Thetimeyouspendhoningyourdevelopmentskills, suchasseeingpatternsincode,refactoringcodetobe easiertomaintainorextend,andwritingtestsdoeslittletoprepareskillsinresolvingconflict,establishing ateamculture,orcommunicatingtechnologyinways thatnon-technicalpeoplecanunderstand.

TechLeadsalmostalwaysfindthemselvesworking soloandthequestion“AmIdoingtherightthings

4

asaTechLead?”isoftendifficulttoanswer.Most developershaveotherdeveloperstoaskfortheir opiniononwhichtoolorframeworktouse,ortoget feedbackonthedesignortestabilityoftheircode. ATechLeadrarelyhasotherTechLeadsaroundto shareideasonapproachingpeopleproblems,orways tomoreeffectivelycommunicatepressingtechnical matterstothebusiness.

Thiscollectionofinterviewsprovidesthatmissing link:howothersapproachtherole,thechallengesthey haveandthedifferentexperiencesdemonstratethe wayspeoplesucceedindifferentwaysasaTechLead.

FromTechLeadstoTech Leads

Forthepurposesofthisbook,IdefineaTechLeadas: Aleader,responsibleforadevelopment team,whospendsatleast30percentof theirtimewritingcodewiththeteam.

Ifeelthatwritingsomecodeisanimportantaspectof technicalleadership.Havingatechnicalbackground isnotusuallyenoughtohelpfacilitatediscussions ormitigatetechnicalrisk.Someorganisationshave

Introduction 5

roleslikeTechnicalManager,DevelopmentManager orTeamLeadandpeopleintheserolesdonotwrite anycode.Thisbookdoesnotattempttodescribetheir responsibilitiesorchallenges.

Thisbookfocusessolelyongivingadvicetosoftwaredeveloperswhosuddenlyfindthemselvesdealingwithsignificantly,butnotexclusivelynon-technicaltasks.Suddenly,whengiventheTechLeadrole, adeveloperisrequiredtobalancenewnon-technical taskswiththeirfamiliarworldofdetaileddesign, solvingsoftwareproblems(notpeopleproblems!)and cuttingcode.

Althoughmanypeoplecouldhavegivenresponses towhattheyfeelaTechLeaddoesorshoulddo,I wantedtocollectlessonsandexperiencesfromreal TechLeads.ThecontributorsIhaveincludedinthis bookmatchtwosimplecriteria:

1.Theyareresponsibleforateamofmorethan threedevelopers; 2.Theywritecodewiththeteam.

ThesetwofactorsexcludedmanywhowouldtypicallybeartitlessuchasSoftwareArchitect,Team Manager,DevelopmentManager,HeadofDevelopment,orAgileCoach.Thepeopleplayingtheseroles

mayhaveverygoodideasandopinionsbutIwanted toavoidtheoldadage: DoasIsay,notasIdo.

Ratherthangivingyouideasthatmaynothavebeen triedandtested,Iofferyoustoriesandlessonslearned frompeoplewithrealworldexperience,peoplewho wereplayingtheTechLeadroleatthetimeoftheir interview.

FromNovicesto Practitioners

Thepeopleinthisbookrepresenttwoperspectives thatprovidethebestinsightintotheTechLeadrole.

•Novices-Youwillnotbethefirstdeveloperto transitionintotheTechLeadrole.Thepeople interviewedintheNovicessectionsharehow theydealwiththetransitionfromwritingcode allday,tosuddenlybeingresponsibleandaccountableforawholenewsetofunfamiliartasks. Eachpersoninthissectiondescribedthemselves asa“first-timeTechLead”atthetimeofthe interviews.

•Practitioners-First-timeTechLeadsquickly transitionintoexperiencedTechLeadsinthe courseoftime.WhiletheTechLeadcontinues toencounteruniquesituationstheydidnotexperienceasadeveloper,theycandrawonother situationstheyhavedealtwithpreviouslyas aTechLead.Thepeopleinthissectionhave oftenplayedTechLeadforseveralteams,orhave playedtheTechLeadforseveralyears.They sharetheirwisdomandinsightstheygleaned whilegainingmoreexperienceinthisrole.

FindingseasonedTechLeadsprovedsignificantlyeasierthanfirst-timeTechLeads,andtheunevenweightingbetweenthetwosectionsreflectsthat.WithsignificantlymoreresponsesfromseasonedTechLeads,I foundseveralstrongerthemesemergedandIgrouped theresponsesinto:

1.People–Focusesonthesofterskillsrequiredby theroleofTechLead.

2.TheTechofaTechLead–Outlinesdifferent technicalresponsibilities,whichdistinguishthe TechLeadfromsimplybeingatechnicalmanager.

3.BridgingBusinesswithTech–Highlightsadifferentperspectiveandmoreoutward-looking focus.

4.You–Containsresponsesthatrelatetoyou,as anindividual,intheroleofaTechLead.

Ihaveattemptedtobreakdowntheresponsesinto thesedifferentthemes,addinginsomeofmyown experiencesandobservationsaboutwhatemergedin theresponses.Ihopethethemesenableyoutoget understandandnavigatethevariousdimensionsof theTechLeadroleandhopefullytheywillmakeit easierforyoutoreferbacktointhefuture.

Thenextpageshowsawordcloudbasedonthe responsesinthisbook.Thewordcloudcontainskeywordsthatrecurfrequentlyandhighlightsfurther themesthatemergedfromtheinterviews.Youmay noticethatsomeofthewordsinlargetypecorrespond withtheoverallthemesthatemerged,includingfrequentuseoftheword“people”aswellasthinking about“code”.

Novices

“Inthebeginner’smindtherearemany possibilities;intheexpert’smindthereare few.”–ShunryuSuzukiZenMind,Beginner’sMind

Thestoriesinthissectiondemonstratethemostsignificantdifferencesthatdevelopersdiscoverwhenthey moveintotheroleofTechLead.Theirviewsare importantbecausetheyhighlightthechallengesthat developersfaceandhowtheymustadaptandfindthe skillsrequiredfortheirnewrole.

Withabetterunderstandingofthekeycontrastareas,organisationsandmanagementcanprovidemore supporttopeopletransitioningtotheserolesthrough targetedtrainingandcoaching.

Developersdealwiththesmalldetailsallthetime. Theymustbesurenottoforgetthatsemi-colon, thatextracomma,orsomeotherspecialsymbolthat

willmakethedifferencebetweensomethingworking andfailing.Implementingfeaturescorrectlymeans focusingondetailinthepresent.Gooddevelopers thinkaboutdesigningtheirfeatureandhowitfitsinto thebroadercontext;TechLeadsspendmuchoftheir timethinkingaboutthebroadercontext.

Differencesinperspective

ATechLeadspendsmuchmoretimethinkingabout thefuturestateofthesystem,andtheimpactthat addingafeaturetodaywillhaveonaddingfeatures tomorrow.A‘goodenough’designandimplementationisnotonewheretheoriginaldeveloperistheonly personabletounderstandandmaintainit.Itisthe joboftheTechLeadtoconsiderwhetherornotthe entiredevelopmentgroupwillbeabletounderstand andshapeit.

Aspeopleinthischapterobserve,theTechLeadhas

tospendmoretimeseeingthebiggerpicture;thinking aboutthefutureconsequencesoftoday’sdecisions. Thechoiceofanewprogramminglanguagetotackle aproblemmightbetheeasiestandmostappropriate toonedeveloperontheteam,forexample,butthe TechLeadisawareofthepotentialchallengesit couldthrowupinthedeploymentenvironment,such ashavingthenewprogramminglanguageavailable onallmachines;makingsuretheentireteamcan understandandmaintainthesamecodebase;thetime thatmayhavetobespentondevelopingnewskills.

Choicesarenolongerevaluatedintermsof‘this worksforme’,butthebroaderecosystem.TheTech Leadevaluatesadecisionintermsoftheconsequences itwillhaveforotherparties.Theyspendmoretime consideringquestionssuchas:

•Doesthischoicelimitwhatwecandoforthe businessorproductmanager?

•Canothermembersoftheteamunderstandand changeorextendthedesign?

•Willmakingthischoicethreatentheperformance oruser-experienceforend-users?

•Doesthischoicesimplyshiftworktootherpartiesinourorganisationandisthatbeneficialfor thebusiness?

•Willthisdesigncreatemoreworkinthelong run?

SensingGreaterResponsibility

“Withgreatpowercomesgreatresponsibility”-UncleBenfromSpiderman

OrganisationsoftendesignateTechLeadsasapoint ofauthority.Otherpartsoftheorganisationtrustthe TechLeadtoleadtheirteamtosuccessandthisbrings withitaccountabilitytotherestoftheorganisation.

AProductManagermayasktheTechLeadtowork withtherestoftheteamtofindthesolutiontoa problem,forexample,butultimately,itistheTech Leadwhowillbecalledupontoexplainwhyitisthe bestsolutionorwhattheconsequencesofachoice mightbe.

WhentheymoveintotheroleofTechLead,developersfindthemselvesclosertotherestofthebusiness. Theybecomemoreawareofthetime-sensitiveaspect ofmakingdecisions,becausethetimingmaydirectly affecttheabilityofthebusinesstomakemoneyand thesehavetoalign.

GuidingtheTechnicalVision

TheTechLeadattemptstobringteammemberscloser together,sotheyseethingsinthesamelight.TheTech Leadappreciateshoweveryoneapproachesproblems

differently.Theyinvesttimeinhelpingtheteam understandtheTechnicalVisionsotheentireteamis pullingtogetherinthesamedirection.TheTechLead realisestheyareultimatelyresponsibleforsteering thegroup.

Overtime,theTechLeadstartstorecognisehow differentlypeoplecaninterpretthesamemessageand hastofindalternativewaysofcommunicatingthe sameideatoavoidmisunderstandings.Somepeople mayunderstandanideaaftertalkingaboutit;some needtimetoabsorbtheideaandrespond,andyet othersfindadiagramonawhiteboardeasiertoread becausetheydependonvisualisation.

Asoneintervieweesuccinctlysaid:

“Communicationtakestime.”

LessTimeforWritingCode

AsIdefinedintheintroductiontothisbook,Iwould expectTechLeadstospendatleast30percentoftheir timecoding.Iwouldn’texpectthemtobewriting codeallthetimebecausetheyhaveconsiderably moreresponsibilities.TheTechLeadspendslesstime writingcodebecauseoftheeffortrequiredtozoom outfromthefinedetailtothebiggerpictureandto

thinkabouttheimpactthattoday’sdecisionhason thefuture.

Timenotspentcodingmaybespenthelpingother developersonproblem-solving,perhapsconnecting themwithotherdevelopersintheteambecausea differentskillsetorapproachisneeded,orhelping connectthemwithpeopleoutsideoftheteam.Tech Leadsoften(butnotalways!)havemoreexperience thansomeofthedevelopersandsonaturally,some oftheirtimewillbespentteaching.TheTechLead alsospendstimelookingnotjustatcodesmells⁵,but alsoobservingteaminteractionsandenvironmental constraintsthathindertheteam.

TechLeadshavelesstimetospendonwritingcode becausetheyareexpectedtointeractwithotherroles intheorganisation.Buildingrelationshipswithother peopleintheorganisationtakestimeanditusually meanstheTechLeadneedstoattendmanymore meetingsthantherestoftheteam.

ManynovicesIinterviewedstruggledwiththetransitionintotheTechLeadrolebecausetheyhadless timetowritecode.Asadeveloper,youperceivethe valueyouaddintermsofthefunctionalityyouenable throughthecodethatyouwrite.Whenyoutakeon theTechLeadrole,thisvalueisthreatenedbecause ⁵http://en.wikipedia.org/wiki/Code_smell

othertasksdrawyouawayfromwritingcode.

ItoostruggledwiththisuntilIrealisedthattheway theTechLeadbringsvalueiscompletelydifferent. TheTechLeadbringsvaluebyenablingeveryoneon theteamtocontributecodeasmuchaspossible;by avoidingrewritesduetopeopleworkingindifferent ways;bymanagingtechnicaldebttomakeiteasierto addcode,andbypromotingrelationshipsbetweenthe developmentgroupandbusinesscolleaguestoensure thecodeaddressesbusinessgoalsanddeliverstrue value.Asaleader,youenableotherstodotheirwork; youharmoniseandtherebymaximisetheeffortsof theentiregroup,notjustanindividual.

JugglingMoreContextSwitches

Thepeopleinthissectiontalkaboutpickingupnew responsibilitiesinadditiontobuildingatechnical solution.Theyfoundthemselvesinmoremeetings, needingtorisetoabstractlevels,orhelpingpeople solvedifferentproblemsinacompletelydifferentpart ofthesystem.

TheroleofaTechLeadoftenrequiresmorecontext switching,whichcancertainlybefrustratingwhen youfirststepintotherole.Learningbettertime-managementandtask-managementtechniquesaswellas delegationskillswillhelpyoutocope.

AllowingPeopletoFail

“Learningisthebottleneckinsoftwaredevelopment”Anonymous

BythetimeyoumoveintotheTechLeadroleyou willhavespentsometimeintheindustryworking asadeveloper.Youwillhavemadesomemistakes, learnedfromthemand,hopefully,beabletoguard yourselfagainstpracticestoavoid.Whenotherpeople areabouttomakemistakes,youwillwanttojump inbecauseyouwanttohelpavoidthem.Youmay convincethemtouseadifferentsolution,butunfortunately,thenexttimeasimilarproblemarises,they maynotremembertotakethatcourseofaction.

AhardlessonfortheTechLeadisallowingpeople tofail,allowingthemtomakemistakes.Failureisa naturalpartofthelearningprocess;itforcesyouto evaluatecircumstancesandtryagain.Directingpeopletoasolutionavoidsfailurealtogether.Somepeople areabletolearnifyouarticulatethealternativesand thethoughtprocessbehindthesolution,butinmy experience,notmanypeoplecanlearnthisway.

Createsafetybyreducingthetimeforfeedback.Perhapsatthestartofanewtask,youcheckinwith apersondailytoseehowtheyareapproachingthe problemandtoaskquestionstogetthemtosee

trade-offsintheirsolution.Allowthemtotrytheir ownapproaches,butifyousenseitisheadinginthe wrongdirection,findwaystoletthemseethatfor themselves.

Askingtherightquestions,decidingwhentocheck-in –nottoooftenandnotfortoolong–areskillsthat taketimetodevelop.

PeopleAspectsareHard

PeopleIinterviewedinthissectionwroteaboutthe surprisinglydifficultsidetopeoplemanagement.As adeveloper,youseethepeopleyouworkwithas colleagues,asindividuals.WhenyoubecomeaTech Lead,harmonisingtheteamrequiresyoutospend timeunderstandingindividualsandfocusonimprovinginteractionsbetweentheindividuals.

Workingwithacomputerisacompletecontrastto workingwithpeople.Computersdonottalkbackand arenot(usually)temperamental.Youcanworkwith acomputerinstantly,whereasittakestimetobuild trustwithpeople.Computerscontinuetodotheir workuntiltheybreak,whilepeoplehavelivesoutside ofworkthatmayaffecttheirmoodsandhowwell theydotheirjob.

Youareapersontoo,andasaTechLeadyoumust beawareofyourownmoodandemotions.Theteam

willwatch,observe,andjudgeeverywordyouutter andeveryactionyoumake,whetherornotyoulikeit orwantit.Youneedtoconsideryourchoiceofwords andactionscarefullyaspeoplecanquicklymisread andmisinterpretwhatyouintend.

ADifferentPerspective–CameronSwords

Describewhatresponsibilities theTechLeadhas

Fromatechnicalperspective,my roleincluded:

•Settingoutatechnicalvisionthatalignedwiththe businessvision(although thiswasprettymuchdone)

•Helpingcommunicatetechnicalissues,problems,and solutionstostakeholders

•Managingreleases-determiningwhatwe’rereleasing,when,andwhat’spossible

Fromaleadershipperspective,myroleincluded:

•Ensuringeveryonemovedinthesamedirection; towardsthesamevision

•Understandingeachdeveloper’sgoals,interests, andstrengths

•Supportingpeoplebychallengingtheminaway appropriatetotheirskills

DoestheroleofTechLeadholdanysurprises?

TheTechLeadrolegavemetheopportunitytoview theteamfromtheperspectiveofan“outsider”.Workingonandwithteamsasan“insider”,Iwouldoften bequitecriticalofpeopleandthedecisionsmade;it affectedhowIfeltaboutoursuccessasateam.

HavinganoutsideperspectivemeantIcouldunderstandhowotherpeoplemeasuretheteam’ssuccess.It wasverydifferentfrommyown.

Theprosandcons

Idefinitelyhadmoreinfluenceonboththetechnical visionandthewaytheteamwasrun.Holdingthe“authoritystick”meansthereislesschanceofsomeone elseusingthe“authoritystick”onyou.Thatgaveme moreopportunitytoempowerpeopleinthetrenches.

Ispentlesstimecoding.I’dliketothinkIwouldcode moreifIworkedwithamoreseniorteam.Ialsofound thatmanagingpeopleisnotwhatmakesmehappy. Buildingsolutionsthatenablepeopleiswhatmakes mehappy.SotherearepartsoftheTechLeadrole thatyoujust“have”todo.

Anypreparationadvice?

IfeellikeIspentalotoftime“preparing”.Atsome point,Ithinkyoujustneedtojumpinandplaythe roleofTechLead.

Idonoticesomedevelopers(someveryjunior)say theywouldliketobeaTechLead.Iwouldliketofind awaytogivethemabetterunderstandingofwhatthe roleis,sotheycanmakeamoreinformedjudgment abouttheircareer.

Wheredoyougoforsupport?

TheformerTechLead(thisbook’seditor)wason myprojectandmentoredme.Myteamwasvery supportiveofme,particularlywhenIfirststarted.I alsofoundtheTechLeadlunchesuseful.

WhatisaTechLeadlunch?

Weheldlunchesinvitingeitherexisting TechLeadsorpeopleinterestinginbeing aTechLead.Inthisinformalsetting,we discussedchallengingsituations,asked eachotherquestionsaboutconcernsas aTechLeadandofferedeachotherdifferentwaystoapproachproblems.

Hasyourperspectivechanged?

Asadeveloper,Ikeepmyheadupalotmorenowto tryandsupporttheleadersintheteam.

Cameron’skeyquestion:I’venoideawhatthe questionis!HereiswhatIwanttoanswer.

Takingoneofthemostexperiencedprogrammersout oftheteamtobetheTechLeadisabrokenmodel.I ampassionateaboutfixingit.Givenmoretimeand opportunityintherole,thisiswhatI’llbetryingto do.

Cameron’sbackgroundstory

CameronstudiedComputerScienceattheUniversity ofSydneyandjoinedThoughtWorksasagraduate sevenyearsago.Hemostrecentlyspenttwomonths playingtheTechLeadrolewithateamofabout12 developers.

ChangeofFocus–Anne Simmons

DoestheroleofTechLeadhold anysurprises?

Thebiggestdifferenceformeso faristhechangeinfocus,asyou needtofocusmoreontheoverall vision.Youstillhavetofocuson smalltaskssuchasdeveloping featuresandmaintainingquality. Atthesametime,youhavetoquicklyswitchfrom thatmicroviewtoamoremacroviewoftheproject.

Youneedtoconsiderafeature’simpactontheoverall systemarchitecture,spendmoretimeguidingthe directionoffeaturesandgivinginputintoupcoming work.Ihavefoundthatyouneedtoswitchcontexts fairlyfrequently,andoftenswiftly,aspeoplecometo youforhelporquestions.

Theprosandcons

Ienjoythesenseofresponsibility.Ienjoybeingin apositiontohelppeopleuntangleproblems,and figuringouthowtogetthebestoutofeveryone.I alsoenjoybeingpartoftheplanningprocessforfuture

workandtheincreasedengagementwithotherroles. WhatIfoundhardwasknowingwhattoworryabout, andwhatnotto.Istillfinditdifficulttoworkout which‘smells’tofocusonintheshortterm,andwhich onesareokaytodeferworryingabout.Ithinkalotof thiscomeswithexperience.Ihavecometorealisethat youcan’ttackleorworryabouteverythingatonce anditisachallengeformetoletgoenoughforthings tosortthemselvesout,whichtheyoftendo.Ifinditis easytogetoverwhelmedwithallthedifferentaspects oftherole.

Anypreparationadvice?

Onmypreviousteam,weintroducedtheroleof FeatureLead.AFeatureLeadtakesresponsibilityfor thedirectionandcompletionofawholefeature.They takepartintheanalysis,domainmodellingandarchitecture,aswellaspartofthedevelopment.Ithinkthis isagreatwaytogetexposuretosomeoftheTechLead responsibilitieswithoutactuallybeingtheTechLead.

Wheredoyougoforsupport?

ItrytogetthemostoutofthegreatTechLeadsonmy team.Iasktoattendsomeoftheactivitiestheyrun, andaskthemtoexplainthethoughtprocessesbehind whyandhowtheyprioritiseandmakedecisions. Itwouldbegreatifthereweresomekindofmagical

trainingcourseorbookthattoldyouhowtobeagreat TechLead;atthemoment,youseemtojustgetthrown intotheroleandhavetofigureitoutalongtheway.

Hasyourperspectivechanged?

AfterplayingtheroleofTechLeadroleonce,Itryto makesurethat,asadeveloper,Iunderstandhowthe elementIamworkingonfitsintothebiggerpictureof theapplication.Ithinkmoreabouthowitcontributes tothewiderstrategyandpurpose.

Ialsotrymoretogetinvolvedwithadjacentteams andplanningofstoriessothatitisnotalluptothe TechLead.

Anne’skeyquestion:Whatdoyoufeelthattherole ofaTechLeadentails?

IthinkeveryonehasdifferentexpectationsofaTech Lead.Somepeoplewantacommand-and-controlstyle. Theywantatechnicalpersonwhowilltellthem howtodoeverything.Otherswantsomeonewho willleadtheteamandhelpthembecomeabetter workingunit.AlltypesofpeoplecanmakegreatTech Leads,aslongastheyaresurroundedbypeoplewith complementarystrengths.But,ifyouareonetypeof leadandpeopleareexpecting,orwanting,another typeofTechLead,fulfillingtherolecanbehard.

Anne’sbackgroundstory

AnnegraduatedfromQueen’sUniversity(Belfast) andjoinedThoughtWorksasagraduate,working inCanada,allovertheUSandintheUK.Sheis currentlyaseniordeveloper,workingaspartofa mixed-disciplinedevelopmentteam.Shehas,more recently,startedtotakemoreofaleadroleinthe developmentteam,leadingthedesigninfeatureareas orfillinginfortheTechLeadwhentheyareaway.

Shefeelsliketheroleisanaturalprogressionas sheenjoysmentoring,coachingothersandbuilding bondswithinandbetweenteams.

BeforejoiningIT,shemoonlightedasaskiinstructor!

NeedsforaWiderSkillSet–

EbonyPierce

DoestheroleofTechLeadhold anysurprises?

Theprimarydifferencebetween myroleasdeveloperandmy roleasTechLeadisthefocusof projects.Asadeveloper,Iwas responsibleformyroleandmy designatedprojectdeadlines.My concernwasalwaysteamoriented,makingsurethat everyoneworkingontheprojectwasabletomeet theprojectdeadline,butmyfocuswasprimarilyon projectsthatIwasworkingon.

AsaTechLead,Ihavetobenotonlygoal-oriented, butalsopeople-oriented.WhereIusedtoberesponsibleforonlymywork,Isuddenlybecameresponsiblefortheworkofseveraldevelopersandmultiple projects:ensuringthatdeadlinesarenotslipping;motivatingdeveloperstopressforwardbutcheckingthey arenotstretchedtoothinly;ensuringthatmoraleis notslipping;watchingmytoneandconsideringthe wayinformationiscommunicated;ensuringdevelopershavetheresourcestogettheirprojectscompleted,

andthatresourcesaremanagedappropriately.

AfewofthechallengesthatIhaveinclude:going frommanagingmyownworktotheworkofothers; goingfromworkingalongsidedevelopersforyears tomanagingthem;monitoringhowIspeaktoindividualstominimisemisunderstandings;drawinga distinctlinebetweenprofessionalandpersonal,and havingtoreframeconversationsandsituationssoas nottooffendanyone.Thehardestpart,inmymind,is theshiftfromworkingalongsidepeopletomanaging them.Itissometimesdifficulttoseparatethetwo, becauseasateamplayer,youcoverforaco-worker ifyouknowtheyarelacking,butasalead,youare responsibleforgettingthingsdoneandyoureally havetochangethewayyoulookatthings.

Theprosandcons

OneofthethingsthatIlikeabouttheTechLead roleisthatIhavetheopportunitytoseethewhole picture.Iseehowtheday-to-dayworkinteractswith thecontractandcompany,andhowmycontributions andthecontributionsofthedevelopersdirectlyaffect thesuccessoftheentirecompany.

Honestly,thethingIdislikemostabouttheroleis dealingwithpeople.Foralongtime,Ihaveworked withcomputers:youtellthemexactlywhatyouwant andtheycompleteatask.Itisdifficulttotransition

intoarolewhereyoumanagepeople,becausepeople donotworklikecomputers.Ifyoutellaperson somethingtheyarenotreceptiveto,severalthings couldresult:theymaydowhatisrequested;theymay saythey’lldowhatisrequested,thenunderperformor takeapassive-aggressiveapproach;theymaysimply notdowhatisrequested.Itisdifficulttoadaptyour approachforeachindividualbasedonpersonalityand temperament,whereasforacomputer,thelanguageis alwaysthesame;theydonotreadintotoneorbody language:aslongasyourdirectionsarespecific,the taskiscompleted.

Anypreparationadvice?

Ithinkthatthebestthingtoprepareforthisrole wouldhavebeenadegreeinpsychology,withafocus onbodylanguagereadingandnon-verbalcommunication,andasolidpokerface.AsIdon’thavethat, Ithinkavariedexperienceisimportant.Thebest characteristicsofaTechLeadincludeadaptability, agility,competence,character,reliability,trustworthiness,anddefinitelyathickskin.Noneofthese aretechnicalskillsthatcanbetaught;theycanonly bedevelopedwithpracticeandfromexposureto differentexperiencesandsituations.TechLeadshave topushthemselvesintochallengesanddifficultsituations,takestretchassignmentsoutsidetheircomfort zone,andpractiseleadingmeetingsandpresentations.

TechLeadshavetolearntokeepemotionsoutofthe equationandmaintainobjectivity.

Wheredoyougoforsupport?

Idrawsupportfromdifferentmentors,mostofwhom aremen.Iusethemassoundboardsforideas,toprovideamaleperspectiveofmymethodsandapproach andtohelpmetounderstandhowmaleco-workers mightperceivemyactions.Ialsodrawsupportfrom myfamilyandfriends:focusandobjective.Ihave severalfemalementorstoturntoforadviceandinspiration.Iamlearningtofindanappropriatework-life balance,andtomaintainthisItakeregularvacations whereIfocusonme.Theseprovideopportunityfor metorenewand“storeup”self-supportforalater date.

Hasyourperspectivechanged?

Asadeveloper,I’vealwaystriedtohaveacomplete understandingofthesystemthatIwasworkingon andI’vetriedtobepromptasfarasdeadlinesare concerned.Iwouldnothavedoneanythingdifferently.Forotherdevelopersconsideringthetransition toTechLeadatsomepoint,mysuggestionwouldbe toaskwhy.Ittakesaboutfivewhystogettothe rootcauseofanissue;toidentifywhatneedstobe improvedandtogainabetterunderstandingofwhat needstobedone.

Developerswhoarelookingtobranchoutneedto:

•Becurious

•Bethorough

•Readeverything

•Maintainobjectivity

•Understandthebigpicture.

Ebony’skeyquestion:Howdoyoumaintainthe drivetocontinuewithsuchanarduousjob?

Imaintainthedrivefromthesecureknowledgethat mycontributionmattersandthatotherpeopleare directlyaffectedbymycontribution.Itsoundslame, butit’strue.

Ebony’sbackgroundstory

EbonystartedinITasaSoftwareDeveloperbuildinga websiteusingclassicASP,JavaScript,CSSandHTML. Atthetimeofthisinterview,shewasworkingona teamofninepeopleandgraduatedintotheroleof aTechLeadafterworkingwithherteamforseveral years.Althoughshedidn’thaveabackgroundin .Nettechnologies,shewonherteamoverwiththree monthsoffocusedself-studyandresearch.

JugglingAct–SiebertLubbe

MyviewoftheTechLeadrole

Ithinkit’smyresponsibilityas TechLeadtoleadtheteamin goodsoftwaredesignandarchitecture.Wemakemostdesigndecisionstogetherasateam,butit ismyresponsibilitytofacilitate thedesignsessionsandensure thatwhatweproduceisofhighqualityandaligned withtheorganisation’stechnicalvision.

MentoringtheteamandteammembersingoodsoftwareengineeringisalsopartofwhatItakeon.I spendtimewithindividualsandtheteamasawhole todiscusscodequality,bestpracticesanddesign decisions.Oursoftwareinfrastructureisincreasingly complex,soItrytobeavailabletonewteammembers tointroducethedifferentaspectsofoursystems.

Weoperateinacontinuousdeliverymodel.Itake ownershipofourbuildanddeploymentpipelinesand ensurethatthesepartsofourdevelopmentprocess supportourdeliveryrequirements.Wearealsokeen adoptersofagilepractices,soIensurethatwestay truetothiswayofworkingduringthedevelopment

process.

Communicatingtakesupabigpartofmyday.I liaiseconstantlywiththebusinessanalystanditerationmanagertoensurethatourteamisaligned withtheproductvisionandbroaderbusinessdirection.Ialsospendsignificanttimecommunicatingour technicaldirectionwithexternalstakeholders.Our developmentteamisoneofmanyinourorganisation thatworkconstantlyonthesameinfrastructureand codebases;itispartofmyresponsibilitytomaintain communicationwiththesedevelopmentteamsand theirTechLeadstoco-ordinatedevelopmentefforts, releaseactivitiesanddesigndecisions.

Iamstillaprogrammeratheart.Ilovewritingcode andImakeitapriority.Ibelievethatstayinghandsonisthebestwaytounderstandourfullstackand enablemetoleadourteamtechnically.

DoestheroleofTechLeadholdanysurprises?

Asadeveloper,Iwasusuallyabletofocusononetask atatime;asTechLeadIoftenhaveafewthingsgoing onatthesametime.ThenumberofinterruptionsI havetodealwithonanyparticulardayhasincreased significantly.Thiscallsforfrequentcontextswitches. Isometimesfinditdifficulttomeasuremyown efficiencyandprogress.Learninghowbesttomanage mypersonaltimeisanongoingjourney.

Theprosandcons

Ireallyenjoyseeingthebiggerpictureacrossall aspects,includingproduct,businessandtechnology, andbeinginvolvedinshapingthebiggerpicture.It isveryrewardingtobeinapositionwhereIcaninfluencetechnologydecisionstobestachievebusiness requirements.

Ialsogetgreatsatisfactionfromleadingateamtowardsacommontechnicalvision.Facilitatingtechnicaldiscussionsandmotivatingtheteamtotechnical excellenceissomethingIenjoyalot.

Beingverymuchadeveloperatheart,Ihavefound ithardtogetusedtotherealityofwritinglesscode. Ontheflipside,however,theexperiencehasopened myeyestoanumberofnewareasandchallengesin softwaredevelopmentthatIfindveryexciting.

Anypreparationadvice?

IfeelthatIhavehadexperienceinmostoftheareas whereIrequireskills:leadingateam,understandingourorganisation’ssystemsinfrastructure,time management,softwarearchitectureskills,andagile methodologies.However,moreexperiencewouldalwayshavebeenbetter,andImighthavefocusedabit moreontheseareashadIknownwhatwasgoingto berequiredofmelater.

Ithinkitisimportanttohaveamentorfromthe beginning.Ihavesupportnow,butIdidn’ttostart with.Iwouldrecommendanyonemovingintothe TechLeadroletoseekmentorshipfromanindividual thattheyrespectandtrust.

Wheredoyougoforsupport?

Mylinemanagerhasbeenhelpfulindefiningthe expectationsformyroleandsettingobjectivesto addressmyskillgapsasIwassettlingintothenew role.Thishasbeenagreatsourceofsupport.Ihave foundthatdiscussionswithmylinemanageraremost constructivewhenIamhonestandclearaboutwhich areasIwouldliketoimprovemyskillsetin.

Discussingmyroleandcurrentchallengeswithcolleaguesoutsideofmyimmediateteamisalsohelpful. Thiscouldmeanasimpleadhocchatoveracoffeeor bookingafortnightlymeeting.Inmycase,therehave beentwoindividualsthatIrespectalot:oneapeer withalittlemoreexperiencethanI;theotherasenior withquiteafewyearsofexperienceandawealthof knowledge.

Hasyourperspectivechanged?

Iammoreawareofthebiggerpicturenowandof howwhatwedocontributestotheorganisation.My perspectivehaschangedaboutwhatisavaluableinvestmentoftimeandefforttowardstechnicalandul-

timatelybusinessvision.Ihavealwaysvaluedclever engineeringsolutions,butIamincreasinglyaware thatgoodsoftwaredesigndecisionsleadtomore future-proof,easy-to-maintainsystems,andmustbe wellalignedwithbusinessrequirements.

Siebert’sbackgroundstory

SiebertstudiedComputerEngineeringattheUniversityofPretoria,SouthAfricaandhasbeenworking inITforthelast10years.Hegetsexcitedaboutall thingsrelatedtosoftwaredevelopmentalthoughhe hasaparticularlykeeninterestinsoftwaresecurity.

HecurrentlyholdstheTechLeadroleforadevelopmentteamatrealestate.com.auinMelbourne,Australia.

TheExternalFace–Liz

Douglass

DoestheroleofTechLeadhold anysurprises?

Theexternal-facingaspectofmy roleisnoticeablydifferentfrom whatI’vedonebefore.Aswell askeepinganeyeonwhat’shappeningwitheachdeveloperand tryingtoanticipatewhat’scomingupwithintheteam,I’vefoundthatIneedto keeparegulardialoguegoingwiththeteamsthatwe partnerwith.ThisincludesbothITgroupssuchas infrastructure,BAU(businessasusual),architecture, aswellasnon-ITgroupssuchasSalesandMarketing. Establishingandmaintaininggoodrelationshipsoutsidetheteamhasbeenreallyimportantforus.

Theprosandcons

Overall,Ireallyenjoytherole.Ilikebeingableto shareideaswithmorepeopleandworkthroughhow wecanachievethebiggestandfastest.Ienjoygrabbingawhiteboardmarkerandfacilitatingdiscussions aboutwhatwe’redoingandhowwemightprogress.

Thatsaid,Idon’tthinkI’veyetmasteredtheability todelegateandIoftenfindmyselfwithtoomuchon myplate.Ireallydislikeleavingmypairwhenwe’re ankle-deepinastory.Ialsothinkplayingtworoles hasanegativeimpactontheteambecauseI’mnot aroundallthetime.

Anypreparationadvice?

IamnotsurethatIcouldhavebeenbetterprepared. Youneverknowinadvancewhatyou’regettinginto, andthat’soneofthebestpartsofwhatwedoas consultants.InyearsgonebyIhavebeenconcerned aboutneedingto‘knoweverything’inordertobea TechLead,which,ofcourse,isafallacy.Surrounding yourselfwithpeoplewhohavedifferentexperiences andideasisthekeytobeingabletocopewithanythingthatcomesup.

Wheredoyougoforsupport?

IthinkI’vebeenquitefortunatetohavealwayshadan amazingsupportnetworkaroundme.Onthisproject wehaveaterrificteam,includingaprojectmanager whoexpertlymanagestheexternalstakeholders.We alsohaveanexcellentbusinessanalyst,whoisreally investedintheclientandisagreatfacilitatorand negotiator.

IalsohavethesupportofScottShaw,aseniortechnologist,whocomesonedaypermonthtovisittheteam

andgivesusadviceonarchitectureandtechnologies.

Hasyourperspectivechanged?

Iamprobablymoreattunednowtothebroadercontextoftheteamandtheclientorganisation.Iamnow evenmoreofanadvocateofgettingoutofyourchair andspeakingtoothers-itcansavealotoftimeand italwaysleadstobetteroutcomesforeveryone.

Liz’sbackgroundstory

Lizstartedhercareerwitharadicallydifferentbackground,firstlygraduatingfromUniversityasanaerospace engineerfromtheRoyalMelbourneInstituteofTechnology.Sheworkedforacoupleofdifferentaerospace companieswhichfirstbroughtherintocontactwith softwareengineersandshelearnedaboutbuildscripts, unittestsandothersoftwaredevelopmentpractices.

ShejoinedThoughtWorksasadeveloperandhas workedinseveralcountrieswithdifferentteamsand roles.Inhercurrentrole(atthetimeofthisinterview) sheplaysboththeroleofTechLeadandClient Principalinbuildingareplacementandrefreshofa client’sonlinepresence.

Editor’snote:TheClientPrincipalisresponsible

forbuildingandmaintainingrelationshipswith customers.

ChaosandCluelessness–Roy Osherove

DoestheroleofTechLeadhold anysurprises?

OnmyfirstTechLeadrole,what surprisedmethemostwasjust howlittleeveryoneelsearound meknew:aslittleasme.WhateverquestionsI’vehad,I’vereceivedeitherincompleteorjust horribleanswersfrompeoplewhomIlookedupto inotherleadershiproles.

Forexample:‘Whatarewesupposedtodowiththe customermeeting?’and‘Howdoweworkoutthe requirements?’.Itseemedthateveryonearoundme waswingingitasmuchasIwas.

Theprosandcons

Thefactthattherewaschaosandcluelessnessaround mewasactuallyagoodthing.Itallowedsomeonelike me,withalittledeterminationandalittleaudacity, todowhatIneeded,wanted,andfeltwasbestfor myteam.Peoplewouldaskme,‘Arewethereyet?’ oraskmetofinishthingsinhalfthetimeactually

neededtoaccomplishthem,butultimatelyIwasthe onedictatingtheprogressandqualityoftheproject. Thisisgreatifyouwantthechancetoexperiment withdifferenttechniquesinarelativelyrisk-freeenvironment.Thatparticularprojectwasheadingfor failureanyway,soItriedtoatleastdoitwithsome test-drivendevelopmentbuiltin,eventhoughthat takestimetolearn.

Anypreparationadvice?

Iwouldhavelovedsomeonetotellmehowtorespond whenaskedforunreasonablethings.Myusualreactionwas,‘Well…we’lltry.’Idon’tdothatanymore, butsomeoneshouldhavetoldmeitwasmyjobto domyjobandnotrolloverandacceptunacceptable requests.

Wheredoyougoforsupport?

IreadTheMythicalManMonthandTestDriven DevelopmentbyExample.Ikeptreadingmoreand morebooksandrealisedeveryonehasadifferent opinion,andnobodyreallyknowswhat’sreallygoing on.Yearslater,afriendtoldme,‘Therearenoexperts, thereisonlyus.’Hewasright.

Roy’sbackgroundstory

RoywasbornandraisedinIsrael.Heistheauthorof TheArtofUnitTestingandNotestoaSoftwareTeam Leaderandhasworkedwithtechnologyformorethan 15years.

Heiscurrentlyaseniordeveloper/coach/architectin ateamworkingonagovernmentprojectinNorway.

MoreThanJustTech–PriyankGupta

MyviewoftheTechLeadrole

IbelievetheTechLeadisresponsiblefor:

•TheArchitectureandTechnicalSolution-Weworked forasmallcompanythat wasonamissiontoreduce paperandwespearheaded theideaofdigitalfilingcabinets.Theappetite forinternalhostingandinfrastructurewaslow andtheneedtoinnovatewaspressing.Aspart ofthatwecameupwithadigitalecosystem inthecloudtohelpendcustomersaccessdocumentsubiquitouslyandsecurelyonallsortsof platformsanddevices.Fromtheoutset,myrole wastocollaborate,guide,andsuggestasuitable technicalarchitectureforthesystem.Itinvolved reasoningandresearchtofindasuitabletechnologytoprovidebalancebetweenspeedofdevelopmentandscalability.Theanticipatednumber ofendusersinthefirstyearoflaunchwasinthe hundredsofthousands.

Inaddition,IfocusedondesigningtheAPI,theweb platformdesignandinfrastructure,andthedeploymentprocess.

•Representingtheoffshorepresence-AsIwas onshore,closertotheclient,oneofmymain responsibilitieswastoliaisewith,andonbehalf of,theoffshoreteam.Ivoicedtheirconcernsand issuestothetechnicalfolkonshoreandensured thateveryonewasonsamepage.Irelayedany importantoccurrencesbacktotheoffshorecontingent;anychangesinpriorityandthetechnical impactsbackandforth.Ididthisforacombined periodofaboutsixmonthsontheproject.

•Coordinatingacrossteamroles-Wewereone ofthecoreteamsworkingontheproductand hadseveralotherteamsworkingalongsideus: desktopAPIconsumers;mobileappdevelopers;e-commerceplatformteam,etc.Myday-todayjobentailedinteractingwiththemtotroubleshootAPIissues,lookingatdesignproblems fromconsumerperspectives,andco-ordinating developmentofAPIandfeaturesthatconsumers reliedon.Thisgavemetheopportunitytoanalysealltherelevantstories,sincetechknow-how wasrequiredtodetailthemout.

•Mediatingdecisions-Beinginanopinionated teamisagreatlearningopportunity,butitcan

meanthatdeveloperhuddlesgoonforever,due todividedopinions.OneoftherolesIassumed wastocollatetheideasandbringeveryoneto anagreement,eitherbyforcingdecisionsor weighingupbusinesscontext,needs,andtradeoffs.So,whileweworkedinafairlyrationaland democraticway,Iwasrequiredtotakeastand andagreeonanapproach.

•Developing-Formostofthetime,Iwasa developerontheteamandthiswasmyfavourite part.Idevelopeduserstories,butIrarelydrove themtocompletion,relyingonmypairforthat.I rotatedfrequentlytoswitchcontextandgainan overallideaoftheapproachourteamwastaking ondifferentaspects.Thishelpedmetoconnect thedotsindifferentdiscussionswiththeother developers.

DoestheroleofTechLeadholdanysurprises?

Acoupleofsurprisesstandoutforme;thebiggest wasthatmostoftheissuesIhadtodealwithwere lessabouttechnologyandmoreaboutpeople.Ihad tobalancetheneedsandaspirationsoftheteamwith businessneeds,tomaketechnicalrecommendations orpushbackoncertaintechnologychoices.Beingexposedtoconcernsfromboththebusinessanddevelopersshiftedmyperspectivefrombeingfocusedsolely

ontechnologytoconsideringthebusinessimpactas well.Bytheendoftheproject,businessdrivershad becomethecentralconsiderationinmakingdecisions.

Anothersurprisewastheneedtolearnhowwell motivatedmyteamwas.Ididthisbytalkingtothe teamregularly,buildingrapportwithindividuals,and findingoutabouttheirindividualstrengthsandaspirations.Ithinkthismademeabetterteamplayerand usabetterteam.WhileIhavealwaysacknowledged theimportanceofacloselyknitteam,thisgaveme first-handexperienceofwhatgoesintoproactively buildingone.Thegreatpartwasthat,althoughwe weredistributed,co-sourced(ThoughtWorksandthe client’sdevelopers),andmostofushadneverworked withanyoneelsebefore,thespecificthingsweorganisedtobuildrapportworkedreallywell.Thisturned outtobemyfavouriteteamofmylastfouryearsat ThoughtWorks.

Onthedownside,Ihatedmyinabilitytoforman opiniononcertainmatters.Asadeveloper,Ihadhad theluxuryofnottakingpartinadiscussionifIdidnot haveanopinion.AsTechLead,peoplelookedtometo drive,mediate,andfacilitatediscussion,andthiswas muchharderifIdidn’thaveanopinion.Itsurprised mehow,suddenly,itwasveryimportanttohavean opinion:todefendorargueagainstcrucialbitsthat wouldshapetheprojectarchitecture.Ispentconsider-

abletimeonthis:buildingknowledgetohelpmeform aninformedopinion;questioningandreasoningin othersubjectareas,wheredepthofknowledgewasn’t therootcause.

Theprosandcons

Ilovecoding.Ilovebeingimmersedinapieceofcode andtakingittocompletion.ButasTechLeadIhadto getsomecontextonalmostallpartsofthecodesothat Icouldparticipateinavarietyofdiscussionswithout gettinglost.ThismeantIhadtorotatefrequently, whichtookmeawayfromcomponentsIwouldhave lovedtospendtimeworkingon.

AnotherkeyresponsibilityoftheTechLeadisto ‘unblock’people.IwouldlovetosaythatIworked onthis,butintruth,ourteamwasfullofextremely competentdevelopersandweneverranoutofideas. So,whileIcouldhavedonemoreinthisregard,it wasn’treallynecessary.

OneaspectoftherolethatIreallyhatedwascarrying outexercisestoprovidethebusinesssidewitha senseofprogress.ExercisessuchasCrystalBall(a statisticalrepresentationwherewetalkedaboutstory completionintermsofdays);velocityrationalisation whenwewereunderachievingourtargetvelocity.We soonrealisedtheperilsofthesediscussionsandtried tofocusonthelong-termimportanceofafeature

completioninsteadofmetrics,butitwastrickytoget thebusinessonside.

Ontheotherhand,therewerethingsthatIloved: Ilearnedthatunderstandingeachperson’stechnicalaspirationshelpsyoumanageteamdynamics.A personmaycraveopportunitiesbutmayhesitateto proactivelytakethemon.Tobeabletodothiswell, Ihadregularone-on-onetalkstogetfeedbackand eachperson’sperspective.WhileIamnotsurehow successfulIwasinmyinitialintent,itdefinitely mademeconnectbettertothewholeteam.Ialsofelt confidentofourcollectiveabilitiesbecauseIhada bettersenseofindividualstrengthsinthegroup.

Anypreparationadvice?

Foradistributedteam,oneofthebiggestchallenges isovercomingthelackoffacetimewiththecustomer andtheteamontheothershore.Therapportand leveloftrustbuildsquickerandbetterwhenateam isco-located.ThereareacoupleofinstancesthatI canrecall,whereIwouldhavebeenmoresuccessful iftheteamhadbeenco-locatedtostartwith.I’lltry tosubstantiatewithmymemoryoftheexperience.

Ihadtheopportunitytoworkwiththeclientin theirofficeforthefirsttwomonthsoftheproject. Thiswasgreat:Iwasabletobuildrapport;Ihad thetrustoftheonshoreteam,andItookthatback

tooffshore.Werotatedwitheveryonetopropagate thistrustacrosstheteamanditworkedwell.Afew monthsintotheproject,theclientstartedasmall streamofdevelopment,staffedentirelybyonshore people.Noneofushadworkedwithanyonefromthat streambefore.Wesharedasinglecodebase.Sincewe interactedonlyoverthephone,itwashardertopush backortalkatlengthtoensurewewereonthesame pageregardingthearchitecture.

Becausewehadseparatestand-ups,thelackofdayto-dayinteractionpushedusintosilos.Weeventually startedtomakeconflictingdecisions.Ihadanother opportunitytoworkonshoreagainandIhadfacetime withtheotherteam.Dailyinteractionsmadeusgel betterandhadapositiveimpactonourrelationshipso thatwhenIworkedremotelyagain,wehadashared understandingandbetterrapport.Wewereableto streamlineourdiscussionsbetter,andwebetterunderstoodeachother’sconcerns.

Bytheendoftheproject,thekeylessonIhadlearned wastoensurethatacoreteamworkstogetherfor ajumpstartperiodbeforesplittingintosmaller,distributedsub-teams.Spendingtimetogetherinthe samelocationbuildsmutualtrustandconfidence. Trustandconfidence,inturn,makesdiscussionsmore productive,whetherfacetofaceoroverthephone.If wehaddonethisearlier,wecouldhaveavoidedalot

ofpain.

Wheredoyougoforsupport?

Idrawsupportfromdifferentplaces,dependingon whatsortofchallengeIhavetoface.

Withtechnicalchallenges,suchasvalidatingsolutions thattheteamproposesormoreindustry-wideacceptedsolutions,Iseekhelpfromthefollowingplaces:

•Meet-upsanddiscussionsinmylocalcommunity.Attendingspecificeventsrelatedtothe technicalchallengeisagoodplacetostart.

•Iaskforopinionsandsuggestionsfromexternal toolortechnologycommunitiesaswellasinternal,software-relateddiscussionforums.

Itrytowidenmyperspectiveontechnologyby:

•Reading20minutesofaggregatedcontentat thestartofthedaysuchasHackerNews⁶;Ruby Weekly⁷;Zite⁸,orFlipboard⁹.Imarkinteresting bitsforreadinglaterusingPocket¹⁰andIsift throughthecontentwhenIhavemoretime duringtheweek.

⁶https://news.ycombinator.com/

⁷http://rubyweekly.com/

⁸http://www.zite.com/

⁹https://flipboard.com/

¹⁰http://getpocket.com/

•Iemailthemostinterestingarticlestotheteam, markingthemas“DeveloperSpam”.Ioftenreceivecounter-argumentsanddifferentperspectivesonthearticlesIsendout.

•IreadbooksandarticlesonsubjectswhereI wanttodevelopadeeperunderstanding.

AsaTechLead,yousometimeshavetodeliverbad newsorpushbackatnon-technicalpeoplewhoput pressureontheteam.Intheoffshoresetting,consultingwiththeclientisrestrictedbythemodes ofcommunicationavailable.Whilevideocallsare agreatwaytodiscussandthrashoutissues,they arenotalwayspossible.OnekeyareawhereIfall shortisinpushingbackwhenIdon’tagreewith something(usuallytechnicalaspects).Iavoidemails tostartthediscussion,becausebattingthingsback andforthtendstoleavethecrucialdiscussioninlimbo. Duringaphonediscussion,IfindIdon’tgetchanceto emphasisemypoint.WhenIcan’tdiscussmypoint withtheintendedparties,Iapproachonshoreteam memberstoconveymyopinionandtheyhelpedrelay ittothecustomerdevelopercommunity.Mysupport networkinthisareaislimitedandIreachedoutonly topeopleIknowdothiswellor,specifically,my sponsor.

Hasyourperspectivechanged?

Giventhatthereisnogoldenscrollhandeddown fromgenerationtogeneration,spellingouttheresponsibilitiesofTechLead,thenotionsIhadabout myresponsibilitiesweregleanedfromobservationsof otherTechLeads.Oneofthesewasthatitwasupto metoensurethatwewrotequalitycodeasateam. AndwhenIsetouttoachievethat,Ifellflatonmy faceduetothesheeroverwhelmingnatureofthetask. Ididlearnafewthingsasaresult.

Atthestartofeveryday,Ispent30minutesbrowsing throughthegitcommitsofthewholeteam,looking forareasofimprovement.Itstartedwell,butaswe gearedupdeveloperpairsandranfullthrottle,it becamealmostimpossibletoretainallcontextand contributetoeverythingobjectively.However,oneof thewaysIstartedwastocommentonagitcommit onaspecificpieceofcodetogetbetterinsights. Thissoonbecamethenormforeveryoneonthe project:everyonelookedthroughcommitseveryday, askedquestionsandsuggestedimprovements.This behaviourbecameviralandwemanagedtomaintain it,evenwhenpeoplerolledofforrolledon,andit automaticallyimprovedtheoverallquality.Asimilar learningprocessdevelopedin“LunchandLearn”sessions,whichhelpedustoimproveonpiecesofcode andtechnologiesthatwedidn’tallknowwell.

“LunchandLearn”sessionsare sometimescalled“BrownBag”sessions, wheretheteamhaslunchwitha discussionaroundafocusedtopic,or presentation.Thesesessionsenable rapidlearningorexplorationina relativelycasualatmosphere.

BytheendIhadexperiencedhowtheroleofa TechLeadwasmoreaboutfacilitatingtheteamand everythingelsefellintoplaceasasideeffect.IfIhad appreciatedthattostartwith,Iwouldhavefocused ontherightbits.

Also,asIsaidearlier,thesheerquantityofnontechnicalworkandtheprioritythatbusinesshasto takeineverydecisionchangedmyperspectiveofthe roleofTechLead.

Priyank’skeyquestion:Whatisrequiredfromthe TechLeadofadistributedteam?

Iamstilllearninghowtodealwithbeingdistributed, butIthinkthekeyfactorsarecommunicationand buildingrapport.Alotoftechnicalcapabilitiesaren’t seenorperceivedacrosstheshoreifyouworkin isolationordon’tcommunicatewell.Tomaintain effectivecommunications,Ihavehadtostepupand takeownershipofactionablethingsthatweren’tpart ofmyday-to-dayworkorplannediteration,purely

toshowwillingnesstoconnectandcontribute.This getstherelationshipbetweentheinternalandexternal teamoffontherightfootandgoesalongwaytobeing successful,despitethedistances.

Priyank’sbackgroundstory

Priyankstartedintheindustryin2004aftergraduatingwithanEngineeringdegreemajoringinInformationTechnology.Hehasmostlyworkedinan offshorecontextwithmostofhisteamsworkingin adistributedmanner.Hehasworkedforclientsin awiderangeofindustriesincludingretail,warranty, andtravelandenjoyslearningaboutdifferentdomains.

HerecentlyplayedtheTechLeadroleforthefirst timeforateamofapproximately20peopledistributed acrosstheUSandIndia.

TheBiggerPicture–Suchit Puri

DoestheroleofTechLeadhold anysurprises?

Asadeveloper,Ifoundmostof myfocuswasoncompletinga featureinthebestpossibleway. Iwasconcernedwiththeright designandmaintaininganappropriatelevelofautomatedtestcoverage.

AsIgainedmoreexperience,myfocusshiftedtothe overalldesignofanapplication;nowIhavetoconsiderhowtheapplicationfitsintothewholeecosystemofapplications.

AsaTechLeadyouhavemorechancetoparticipate inactivitiesbeyonddevelopmentsuchasaproject initiation,meetingstotalkaboutupcomingbusiness priorities,andearlieropportunitiestochampiona technicalsolution.

IfeelaTechLeadhastobalanceinteractionswith thebusinesswithmaintainingaconsistenttechnical directionintheteam.Maintainingthisbalanceis

evenmoreimportantinanoffshoreprojectbecause communicationchannelsarelimitedwhenpeopleare distributed.

Theprosandcons

ThethingthatIlikemostabouttheTechLeadrole isthatyougetthechancetodesigncomplexsystems, solveinterestingbusinessproblems,andstilldevelop well-designedcode.Ifeelwritingcodeisanessential partofbeingaTechLeadbecausetherearecertain lessonsyoulearnonlywhenyouareworkingwith theteamonacodebase.

Anothergreatthingaboutthisroleisyougetmore opportunitytointeractwiththeclient.Ifindhaving moreinteractionwiththeclientcreatesbetterinsights forsolvingandimprovingbusinessandtechnical problems.Inanoffshoreprojectitcanbechallenging tocommunicatetechnicalandbusinesssolutions,but itiscriticaltosuccess.

TheonlythingIdon’tlikeabouttheTechLeadrole isspendinglotsoftimesinmeetings.Comingfroma purelytechnicalbackground,ittookawhileformeto adjusttothat,becausetimemanagementisnotaskill youpracticemuchasadeveloper.

Anypreparationadvice?

Iamnotsurethereisanythingyoucandotopre-

parereally,astheopportunitiesinThoughtWorksare dynamicandextremelycontextual.TheonlyskillI learnedonthejobwastofocusenergiesontheright areasofmyproject.

Icouldhavespentmoretimelearningaboutarchitectingsystemsendtoend.

Wheredoyougoforsupport?

Discussionsintechforums,officegroups,andtech meet-upsgavemealotofconfidence.Casualmeetupsaroundtechnologytaughtmealot.Imetmany experienceddevelopers,andIfoundtheirexperiences withtechnologyespeciallyinformativeandexciting.

Hasyourperspectivechanged?

Ithinkthereisalotofmoreresponsibilityonyour shoulderswhenyoustepintotheTechLeadrole.You feelmoreaccountablefortheoveralldesign,code quality,testability,andotheraspectsoftheproject.

Icertainlythinkmoreaboutthefuturenow,particularlydesigningsolutionsaimedattheendgoalinstead ofsomeintermediateone.

Iamconstantlylookingfornewtechnology,approaches andideastomakeyourlifeandyourteam’slifeeasier.

Suchit’skeyquestion:HowmuchprojectmanagementknowledgeshouldaTechLeadhave?

Withourcurrenthiringrate,Ifindmyselfwithalot ofgraduatedevelopersandbusinessanalysts.Ifind myselfinmanysituationswheretheclientasksmany questionsaboutstorypoints,velocity,andprogress. Insituationslikethis,Ifeelunderstandingproject managementconceptsarecriticaltobuildingastrong relationshipwiththeclient.

Suchit’sbackgroundstory

Suchithasworkedasanapplicationdeveloperfor aboutfiveyears,startingwithatelecommunications companybuildinganapplicationtoroutecallsfor call-centreagents.Sincethen,hehasworkedwitha productcompanyandcurrentlyworksasaconsultant forThoughtWorks.Hismostrecentteamismadeup of12people,ofwhomeightaredevelopersandhehas playedtheTechLeadforthisteamforalmostayear.

LessCoding,More Responsibility–David‘Bucky’ Schwarz

DoestheroleofTechLeadhold anysurprises?

Thethingthatsurprisedmemost washowmuchlesscodeIwrite, evenassomeonetransitioning intoaTechLeadrole.I’mspendingalotmoretimehelpingother peoplewiththeirproblems,planning,andhelpingwiththeoveralldesignofsoftware. Oneday,adeveloperthatIrespectaskedmetohelp himwiththebackenddesignofanewfeature.Itcame asahugesurprisetorealisethatseniordevelopers mightlooktomefortechnicalhelp.Ithadn’treally sunkinuntilthatmomentthatIwasultimatelymakingthefinaldecisions.

Theprosandcons

Ilikehavingadirectinfluenceonthedevelopment style,tasks,anddirectionofaparticularproject.I enjoymentoringjuniorteammembers,andprovide knowledgeandhelpwhenneeded;itisgoodtobeable

toshareknowledgegainedthroughexperienceand dumbmistakesI’vemadeinthepast.Ilikethatmy teammatescandependonmetotakecareofthings theyneedtakencareof.IlikethatIcanfilterand distildownmanydisparateremarksandideasintothe essentialpiecesneeded.

WhatIdislikeisthatmyinfluenceoverthedirection oftheprojectisnolongerexpressedthroughthecode Iwrite.IspendmoretimeinmeetingsthanIwould like,oftenlisteningtopeoplesaythesamethingsover andoveragain.Isometimesfinditdifficulttowatcha juniormemberstruggleandfailatataskthatIcould finishinafractionofthetime,butIcan’tintervene becausetheyneedtolearnfromtheirmistakes.

Anypreparationadvice?

Ithinkthatspendingmoretimementoringjunior memberswouldhavebetterpreparedmefortherole. Ifeelthatthereisavastdifferencebetweenthemost prolificcoderonmyteamandtheleast.Dealing withthemostprolificissimpleandenjoyable,while dealingwiththeleastprolificrequiresmuchpatience andcoaching.

Iwouldalsohavelikedmorepracticeatsayingnoto people.It’shardwhensomeoneispassionateabout theirjobanddependingonyoutodeliverwhatthey want,butreal-worldconstraintsforceyoutotellthem

no.

Wheredoyougoforsupport?

Mymanagerhasbeenagoodsourceofsupportand inspiration.He’soneofthebestmanagersI’veever workedfor,andhe’sbeencoachingmealongthe way.IenjoyreadingRandsinRepose¹¹asaway toconsolidatemythoughts,andasasourceofnew ideasandnewwaysoflookingatissues.Mymanager hasrecommendedafewbooksonmanagingsoftware developers.Theseinclude:

•ManagingHumans:BitingandHumorousTales ofaSoftwareEngineeringManager

•CarrotsandSticks:UnlockthePowerofIncentivestoGetThingsDone

•TargetRisk2:ANewPsychologyofSafetyand Health

•AgileEstimatingandPlanning

•PlanningExtremeProgramming

•Blink:ThePowerofThinkingwithoutThinking

Ialwaystrytostoreawaysituationsthatdeeply affectedme,bothpositivelyandnegatively.

Hasyourperspectivechanged?

¹¹http://www.randsinrepose.com/

Myfatherhasbeencoachingmeintheperspective ofmanagerssinceIstartedwork.IfeelthatI’ve understoodthatthereisalotmoregoingonthan mymanagerletson,butIneverunderstoodjusthow muchuntilImovedintoagreaterleadershiprole.I’ve learnedthatmostpeopledon’tcommunicateaswell astheythinktheydo.Inowunderstandwhymanagerswillswingbyandaskwhat’sgoingon,andhow (usually)itshouldn’tberegardedasantagonistic.My viewofhowcomplexanorganisationishaschanged dramatically.Ineverfullyappreciatedhowdifficultit istobalancedozensofpeople’scompetingrequests, muchlesshundreds.

Bucky’skeyquestion:AreyouhappybeingaTech Leadorwouldyoupreferadifferentrole?

Yes,I’mhappybeingaTechLead.Ienjoybeingina leadershippositioneventhoughitwastiring,stressful andnerve-wrackingtostartwith.

Bucky’sbackgroundstory

Buckystartedplayingaroundwithwebsites(Flash!) whenhewas17yearsold,learningashewent.He graduatedcollegewithadegreeinComputerScience andhasbeenprogrammingprofessionallyforabout sevenyears.HeisaSoftwareEngineeronateam oftenthatbuildsemail-marketingsoftwareforEtsy internaluseandistransitioningintotheTechLead

LeanonCommunication Skills–StefanMarev

Howdoyouseeyourrole?

Ioftenfindmyselfcommunicatingtheproductvisiontothe teams,becauseIhavebeenwith thecompanyforalongtime, haveextensivedomainknowledge,andspendalotoftimewith productmanagersanddirectors.

Asaresult,Ialsoattendmanyofthedomain-modellingsessionsourteamconductsatawhiteboard -techniquesborrowedfromDomain-DrivenDesign: TacklingComplexityintheHeartofSoftware.

Ialsosteerthetechnicalvisionfortheprojectsand leadanynecessaryarchitecturechanges,suchastryingtobreaka‘bigballofmud’domainmodelinto smallerpartsthatarebetterdistributed.Highquality iskeytothesuccessoftheseprojects,soIchampion effortsaroundautomatedtestingandotherpractices thatenablecontinuousdelivery.

Editor’snote:Abigballofmudisasoftware systemhaphazardlystructured,sprawling,

sloppy,duct-tapeandbailingwire,spaghetti codejungle.Seethepaper,“ABigBall ofMud”byBrianFooteandJosephYoder (1997)

DoestheroleofTechLeadholdanysurprises?

Theroleismorepeople-orientedthanIexpected;what surprisedmemostwasprobablyhowsmallapart technicalskillsplay.Iunderestimatedthedifficulties ofworkingwithadistributedteamtoo.Whenyouare adeveloperitisaloteasierforyoutodeterminehow successfulyouareonaday-to-daybasis;itiseasier togetfeedbackbecausetheresultsofyourworkare moretangible.

Theothersurprisingthingformewastheimportance ofchemistry-howpeoplefittogetherinateamagaintechnicalskillsarenottheonlyfactor.Keeping teammoralehighatalltimescanbequitechallenging and,moreimportantly,youareresponsibleforfindingthedriversofeachindividualteammemberand lookingaftertheircareeraspirations.

Tobeginwith,Ihadtofocusalotmoreonmentoring, successfullycommunicatingideasandmakingthe mostofeachteammember.Itookalotforgranted whileworkingwithpeoplefromThoughtWorks.For example,Ihadtomaketheteamcareaboutunit testingandmentortest-drivendevelopment(TDD)

skills-somethingI’dneverthoughtcouldtakeso mucheffort.IsupposeIthoughtthateverydeveloper wasmoreorlessthesame,butmyviewonthatwas one-sidedandlimitedtomyself!

Theprosandcons

WhatIlikemostabouttheroleisthatitischallenging, butinadifferentwayfromthedeveloperrole.It requiresmetolearnandpracticedifferentskills.Mentoringandleadershiprequiregoodcommunication skills.Ilearnedalotabouttheimportanceoflistening andbeingpatient,skillsthatareevenmorerequisite whenworkingwithateamoflessexperiencedpeople. Igainalotofsatisfactionfromseeingtheteam becomeself-organisingundermyleadership.

Ialsoenjoythetechnicalchallengesoftheroleaswell, suchasnurturingandcommunicatingideas,whichI oftenborrowfromreadingandfollowinggreattechnicalmindsonlineandgoingtotechnicalmeet-upsand talks.Thetrainingorganisation,SkillsMatter¹²hosts manyofthese.

WhatIdislikeabouttheroleishavinglesstimefor development.Ioftenstartdevelopingandpairing withotherteammembers,butIcan’tseethings throughandhavetoleavethemtotheteamtofinish. Iamnaturallypulledintomoremeetingsandhave ¹²http://skillsmatter.co.uk

tocommunicatebacktohigh-levelmanagers,which leavesmelesstimeforcoding.Imissthetimewhere Icancodefordaysuninterrupted.

TheotheraspectoftheroleIdon’tlikeisprotectingtheteamfromorganisationalandpoliticalissues withinthecompany.Forexample,havingarguments withivory-towerarchitects,havingtopersuadethem ofthebenefitsofpairprogrammingandexplainthat itisnotawasteoftime.Anotherfrustrationistime spentconvincingmanagersthatenterprise-readytechnologiesarenotalwaysthebestsolution.IdounderstandhowimportantthispartoftheTechLeadroleis, however,andteammoralestayshighasaresult.

Anypreparationadvice?

IwouldhavebeenbetterpreparedfortheroleifIhad takenmoreinitiativeasadeveloper.Ispentmostof mytimecodingandfocusingonthequalityofthe code;IthinkIshouldhaveexercisedmycommunicationskills.Icouldhaveaskedtoleadretrospectives orfacilitatediscussionsandwhiteboardsessions,for example,insteadofjusttakingpartandconcentrating onlyonthingsthatwerepartofthestoriesand featuresthatIwasworkingon.

On-boardingnewteammembersmighthavehelped medevelopasaTechLeadaswell.WhenIwasa developer,Isawthattaskasboringandrepetitive,

butnowIrealiseitdevelopsbettercommunication skills.EventhoughIfoundmyselfexplainingthesame detailsoverandoveragain,Icouldhavetakenthetask moreseriouslyandasanopportunityandchallengeto improvecommunicatingalldimensionsoftheproject.

Inthisrespect,pairprogrammingisthepracticethat mosthelpedmetoprepareforbeingaTechLead.I founditagreathelpwhenpreparingtobeaTechLead tohavesomeonebesidemetochallengeorconfirm ideasandgiveinstantfeedback.

Wheredoyougoforsupport?

IlikedthewaythatmyThoughtWorksteammateshad sponsorsforeveryrole.ThecompanyIworkforisnot atechnologycompanyandapplicationdevelopment isarelativelysmallpartofIT,sowedon’thavethe samekindofsetup;therearenotechnicalpeopleI canlookuptosoIdrawsupportfrommypersonal contactsinstead.Ishareideasandproblemswiththem togetearlyfeedbackandhelptoresolveissues.

Atthesametime,Ihaveearnedthetrustofhigh-level managementinmyworkplaceandtheygivemethe timeandsupporttoimplementnewideas,tryoutnew developerpracticesandevenallowedmetobuildmy ownteam.Iliketothinkthatwe’vecreatedandwork asasmallstart-upwithinanenterprise.

TheInternetandsocialnetworkingplayanimportant

jobforme.IfindTwitteranamazingtoolforlearning fromthegreatestmindsinourindustry.

Ibelieveincontinuousimprovementandstrivetoget feedbackfromasmanysourcesaspossible.Ioftenask variouspeopleIworkwithbothwithinandoutside theteamforfeedback.

Anypreparationadvice?

Irecommendyoutakemoreinitiative,andmakethe mostofeverysituationandnotfocusonlyoncoding. Iwouldtrytoparticipateinasmanydiversetasks aspossibletodevelopdifferentskills.WhenIwas adeveloper,forexample,Ireallyfocusedoncoding tests,featuresandatinybitofbuild-scripting.Irealise nowthathavingmoreexposuretopath-to-production andoperationstaskswouldhavehelpedtoo.

Stefan’skeyquestion:Howdoyoubalanceyour timeandensureyoustayhands-on?

Thiswillvaryfromcompanytocompany,butina traditionalITdepartmentliketheoneinmycompany, Icantellyouitisnotaneasyjob.Idoitthrough prioritisation.Iprioritisetimeforcodingandtime spentwiththeteamabovegoingtomeetingsorwritingreports,etc.evenfortheChiefInformationOfficer (CIO).

Itrytoavoidbecomingthesinglepointofcontactfor

technicalconcernsontheproject.Icreatechampions withintheteamsandaskthemtocommunicatesolutionsbothwithinandoutsidetheteam.Idon’tknow howsuccessfulIamatthis,butIkeeptrying!I’dlike tofindmoresourcesforadviceonthis.Ihavefound alotofgoodadviceoncommunicatinggoalswithin theteam,butlessoncommunicatingtechnicalideas effectivelytotherestoftheorganisation.

Stefan’sbackgroundstory

Stefanhasworkedintechnologysince2005andhas workedwithwebtechnologiessinceattheUniversity ofWestminsterandReedBusinessInformation(RBI) intheUnitedKingdom.HejoinedGroupMwherehe helpsbuildweb-basedsystemsformediaplanning andbuying.

Stefanhasalwayshadapassionforagilemethodologiesandengineeringpracticesandwasinfluenced greatlybyworkingwithateamofconsultantsfrom ThoughtWorks.Heiscurrentlyleadingthreesmall teams,twoofwhicharenear-shorewhereheworks closelywithasecondTechLeadtoprovidecontinuity whenherotatestoadifferentteam.

Practitioners

“Wisdomcomesfromexperience.Experienceisoftenaresultoflackofwisdom.”TerryPratchett

ForthissectionIinterviewedTechLeadswhohave workedintheroleforanumberofyearsoracross anumberofteams.Iaskedthemtosharetheirown stories,thechallengestheyfaced,andthewisdom theyfoundovertime.Theysharetheirexperiences acrossawiderangeofindustries,awiderangeofteam sizesand,asaresult,awiderangeoflessonslearned.

Witharolesplitacrossseveraldimensions,effective time-managementbecomesevenmoreimportant,soI askedeachpersontosharetheirownapproach.They describewheretofindtime,howtoidentifytasks, strategiesfordelegationand,mostimportantly,how tomaintainthedelicatebalanceofheads-downtime incodeandjugglingtheirotherresponsibilities.

Igroupedtheirresponsesintofourthemes:

1.People

2.TheTechofaTechLead

3.BridgingBusinesswithTech

4.You

Ifeelthesefourthemesrepresentdifferentfacetsof theTechLeadrole,andresonatestronglywiththe responsesfromdifferentpeople.Iprovideabrief commentaryforeachofthesethemes,summarising people’sresponsesandaddingobservationsfrommy ownexperienceasaTechLead.

People

Peopleandteamsareinextricablylinked.Ateamdoes notexistwithoutpeople,andittakesefforttoturna setofpeopleintoateam.

“Asetofpeopledoesnotmakeateam.It onlyexistsasagroup.Ateamisasetof peopleworkingtowardsacommongoal.An effectiveleaderalignspeopletowardsthat goal.”-Anonymous

RemainingTechnicallyGrounded

WhenadeveloperfirstmovesintotheroleofTech Lead,theirfocuswillbealmostexclusivelyonthe technicalaspects.SomedevelopersinterprettheTech Leadroleasbeingthefinaldecisionmakerondifficult technicalchoicesorasfocusingonthemosttechnicallydifficultproblem.

Theseinterviewsrevealaverydifferenttake.Yes,a TechLeadmustbetechnicallycompetent,sincethis helpsbuildrespectandrapportwithpeople,however

theTechLeaddoesnotnecessarilyneedtobethebest technicallyand,inmanycases,doesnotnecessarily havethedeepesttechnicalskillsontheteam.

FindingandDevelopingGood People

Noonesetsouttofindmediocrepeoplefortheirteam. EveryTechLeadwillsaytheyhiregoodpeople.Tech Leadsarenaturallypartoftheinterviewprocess,lookingforculturalfit,aptitude,andapositiveattitude tolearning.However,findingtheidealcandidateina timelyfashionisdifficultintoday’sdynamiclabour market.

Inadditiontofindinggoodpeople,theeffectiveTech Leadfocusesequallyongrowingdevelopersintheir team.Acommonpracticeistomeetone-on-onewith eachdevelopertofindoutwhattheirinterestsare, whatmotivatesthemandwhattheyconsidertheir strengthstobe.Withthisinformation,theTechLead constantlyseekswaystomatchinterestsandopportunitiesacrosstheteam.Oneintervieweeinthis sectiontalksaboutappreciatingthemixofskillsand experienceasateamstrength.

Forexample,ataskmaybeperceivedtrivialbyone personbecausetheyhaveworkedonmanysimilar problemsinthepast.Foranotherperson,thissame

taskcouldbeextremelyinterestingbecauseitisanew typeofproblemforthemtosolve.

Keepingtrackofwhatpeoplefindinterestingevolves overtimeaspeoplegrow,andlearn.Theonlywaya TechLeadcankeepupwiththesechangesistoask peoplefrequentlyenough.

ATechLeadgrowsdevelopersbyencouragingthem tostepoutsideof“justprogramming”andworkclosely withotherpeopleinthesoftwaredevelopmentprocess.Developersworkingmorecloselywithtesters buildabetterunderstandingofwhatittakestomake morerobustcode.Developersworkingmoreclosely withend-usersandbusinessstakeholdersbetterunderstandwhatacceptabletrade-offsmaybemadeand therealproblemthatneedssolving.

ListeningtotheTeam

TheTechLeadfindsopportunitiestolistentothe peopleontheirteam.OneTechLeadasks:“Ismy teamsetupaswellasitcanbe?”Whenstarting withanewteam,Iaskmyself,“Doeseveryonefeel comfortableexpressingtheiropinion?”TechLeads needtoestablishsafety.

Onceyoucreatesafetyyoumustthencultivatemotivationforfullteameffectiveness.Differentthings

motivatedifferentpeopleandittakestimetofindout whateachpersonwantstodoandfindopportunities todothem.Listeningisthekeytothis.

TechLeadsspendlesstimeincode,sotheyrely moreheavilyoninformationfromtheteam.Drawing factualinformationoutofdeveloperscanbedifficult becausedevelopershabituallypresentsolutionsto problemsandopinionsratherthanfacts.Youdraw upongoodquestioningskillstodrawouttheinformationyouneedtomakebetterdecisions.

AppreciatingIndividualStrengths

ATechLeadappreciatesthedifferentstrengthsthat eachpersonbringstotheteam.Overtimeyouwill recognisethesedifferentstrengths.Forexample,some developersarebetterthinkinginmoreabstractterms, whilstothersaremoredetail-oriented.Somedeveloperswillbebetterthinkingvisually,whilstothersmust communicatebestthroughcode.

Differencesinstrengthsbringopportunitiesforlearningandbetterproblemsolvingbuttheyalsocreatean opportunityforconflict.TheTechLeadpaysattention toheateddiscussionsintheteamandhelpstheteam moveforwardwhentoomuchconflictthreatensto permanentlydamageteamrelationships.TechLeads shouldnotbeafraidtofacilitatetechnicaldiscussions

(particularlyheatedones!)inordertomoveforward. VeryrarelywillaTechLeadstepintooverridea decisionasthisdisempowersteammembersandgeneratesresentment.

TeamFocus–Alison Rosewarne

WhatshouldaTechLeadfocus onandwhy?

Teamfocus:itisimportantthat theteamcanactuallyfocusand knowswhatisimportant.Thisenablesgooddecision-makingand ensuresgoodresults.Different teamshavedifferentneedsand differentobstaclestoovercometoachievefocus.

Iworryaboutteamengagementandwanteveryoneto bechallengedwiththeworkthattheydo.Spending timeon1-to-1sisgenerallythebestwaytogauge interestandenthusiasm.

WhathasbeenyourbiggestchallengeasaTech Lead?

Workingwithanoffshoredevelopmentteaminan agilemannerhasbeenthemostchallengingsituation I’veexperiencedasaTechLead.Itiseasytotake corridorconversationsforgranted;itiseasiertoabsorbincidentalcontextwheneveryoneisco-located, workinginthesameenvironment.

Handlingadistributedteamrequiresconstantawarenessofthesituation.Moretimeisneededtoensurethe remoteteamiskeptuptospeedwithdecisionsmade locallyandyouneedtousewhatevertechnologyis availabletodecreasethedistanceandimprovecommunicationbandwidth.Adhoccommunicationtools suchasSkypearebetterthanemailorafter-the-fact documentation.

Anytime-managementtips?

Iamadedicatedlistmaker.EachweekIreviewthe prioritiesandplanatleastthreethingsthatIwant toachieveeachday.Itisimportanttounderstand competingprioritiessoanyinterruptionscanbemanaged.Someworkhastobedone(deferringplanned tasks),whileotherworkcanbedeferred.Ikeeptrack ofunexpectedworkforlaterreview.Occasionally bookingtimeinmycalendarorworkingfromhome isnecessarytoensuretasksrequiringfocuscanbe completedwithoutinterruption.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Idon’twriteasmuchcodeasIwouldliketo;the splitbetweenwritingcodemyselfanddoingother thingsisabout20/80.Thiscanchangedependingon whatstageaprojectisat.Ihavehadtoacceptthat itismoreproductivetopairwithteammembersand

provideguidanceaboutthecodetheyproducerather thanwritingallthecodemyself.

Alison’skeyquestion:Whatskillhelpsmostwith techleadership?

Theabilitytodelegateandgoodcommunicationskills areessentialtotechnicalleadership.Ofthesetwo,I wouldsaygoodcommunicationskillsarethemost helpful.AsaTechLeadyouneedtotailoryour communicationforbothtechnicalandnon-technical audiences.

Fortechnicalaudiencesyouneedtoknowwhatyou aretalkingabout;youcannotfakeit,aspeoplecan tell.Itisimportanttosummarisedetailandachieve consensusamongstthegroup.Fornon-technicalaudiencesyouneedtotranslatetheeffortinvolvedin differentapproachesandtrade-offstogainsupportfor architecturalchoicesandspendingtimeontechnical activitiessuchaseffortinreducingtechnicaldebt.

Alison’sbackgroundstory

AlisonhasworkedasTechLeadfortheCommercial teamatREAGroupfortwoyears.Shestartedworking intheITindustryaftergraduatingfromRMITUniversityinMelbourne,Australia.Forthelasttenyearsshe hasworkedacrossmanyindustriessuchasgaming, superannuation,defence,andinsurance.

Shehasleadtechnicalteamsonandoffoverthelast sixyearsdependingontheconsultingengagement. HercoredevelopmentexperienceswereinJava/J2EE andmorerecentlyshehasbeendevelopingwithRuby andassociatedwebframeworks.

TeamoverSelf–Humphrey Elton

WhatshouldaTechLeadshould focusonandwhy?

Iexpecttoleadpeoplewhoare professionalwithoutpretensions. Idonotexpecttooverseeallcode. Ido,however,expectteamsto worktogether.Forme,adeveloper’sskillswithpersonalrelationshipsandcommunicationareasimportantas codewriting,possiblymoreso.Amixofabilitiesin theteammeansthatthegunshavetohelpjunior developersandgivethemspacetolearnthemselves.I havefewerissueswithsimplistic,andeveninefficient code.

Inmyareaofsoftwaredevelopment,memoryischeap, CPUischeapandcomplexcodeistoocostlyto maintain,sodonotaskmetowriteadisksubsystem! Itrytokeepanearoutforthenoisecomingfrom anyteam.Atoneextreme,toomuchtalkingmight indicatepeoplebeingtoounproductiveandthatthe teamarenotmakingdecisions,ortheymightbe havingjusttoogoodatime.Attheotherextreme,too

quietmightmeaneveryoneisheadingintheirown directionandthecodewillnotcombinewell,orthat therearepersonalityissuesbrewing.

Discussionisgoodbutunproductiveandfrustrating forallunlessitsfocusischoosinganoutcome.

Whathasbeenyourmostchallengingsituationas aTechLeadandhowdidyouhandleit?

Mymostchallengingsituationwasmanagingamixed teamofsometechnicallyverygooddevelopersand somejuniors.Thatteamhadalotofissues,ofwhich havingtwodifferentmanagerswastheveryleast.The teammemberswerecompletelyatoddswitheach other.Partsoftheteamhadsignificantlydifferent codestyles,becausesomewereJavadevelopers,but alotofJavascriptwasrequiredandtherewasno consistentapproachtoimplementingnewfeatures. The“gurus”wouldalsowritecode,leavingthe“unit tests”tothejuniors.

Weheldameeting,inwhichIwasinvolvedonly becauseonemanagerwasaway.Weputallknown issuesonthetableandallowedthemeetinggettoa fragile,butsweetpoint,whereIstoppedit.Wethen gavetheteamacoupleofminutestoresolveeach problem,andiftheycouldn’treachadecision,Iwould stepintomakeone.Ionlyhadtodoacouple;theteam workedtherestout.

Iensuredthateveryoneintheteamhadasaysomewhere.Thereisnoonelessproductivethanajunior whosegoodideagetsignored,orwhosecodegets refactoredwithinaweek.Ionlyinsistedononeitem: ifitworks,thenleaveitandmoveon.

Whatareyoursecretstomanagingtime?

AsaTechLeadyouwantyourteamtobeproductive.

Yourtimeisonlyoneperson’sworth.Yourteam’sisn timesthat.Yourfocusshouldbeontheirproductivity. Trytofindthebalanceofgoodteamtime,while lettingeachhavetheirownbesttime.Iammost productivelateintheafternoon.Ifpeopleinterrupt methenItrytogetthemtoorganiseatimethenext morning.

IhaveWednesdayafternoonsoffbecauseofmykids. Managementhatesit,butitgivestheteamtimetobe self-responsible.SometimesIpickupthekids,thenlog inremotelyandfinishstuff,othertimesnot.

Youwillprobablyfindyoucannotchooseallthetasks thatmatchyourskills,becauseinterruptionsmean youcan’tguaranteetheywillbecompletedontime. Youjusthavetobemorecarefulaboutwhatyoutake on.

Howdoyoufindthebalancewritingcodeand dealingwithotherissues?

Balancingwritingcodeanddealingwithotherissues isaconstantconflict,andalwayswillbe.Interruptionsmustbedealtwithsoonerratherthanlater. Ifyoudonotaddressthem,theywillstackupand swampyou.IhavenaughtydayswhenIreallyjust wanttocode,butIpayforitlater.Indulgeyourself occasionally!

Itrytodealwithalotoftheissuesmyself,butif Icandelegateproblemsordecisionstosomeonein theteam,thenIwill.IcannotrememberwhenIlast overrodewhattheydecided.Theirdecisionmaynot betheonethatIwouldhavemade,butitisalmost alwaysgoodenough.Donotdoitall;butdonot delegateitalleither.Itrynottohavetoomanyrules aboutwhatIdoversuswhatIdelegate.Itrythings, makeafewmistakes,andlearnfromthem.

DecidingtobeaTechLeadisastepawayfromcoding, unlessyouarewillingtodolongerhoursoritisreally clearthatyouhavenolinemanagement.Ihavenever workedthatwayanddonotthinkthatitispossible.

TheroleinvolvesdealingmorewithpeoplethanI realised.Ifyoudonotwanttohavetodealwithpeople ordonotthinkitisimportant,thentheTechLead rolemaynotbeforyou.Youneedtoactivelybuild

relationshipsandhaveoneyeontherelationships withintheteam.

Idonotgettoexplore,ortrydifferentthingsincode thatIusedtodomuchmoreasadeveloper.

Humphrey’skeyquestion:Isitasensibleroleinan organisation?

Probablynot!Youareunproductiveforyourskills. Whatyoucandeliverbywhenisunpredictable.The roleisonestepawayfromcoding.Wheneveryouget reallyfocused,someonewillcomealongandinterrupt it.Youwillinevitablygetstalerinyourfavourite language,buthopefullyyouwillhavethematurity toappreciatethatmostoftheissuesarenotreally languagespecific.

Youhavetostartreadingallmanagementemailsmore carefully;maybeevenstartdoingitforonce!Youhave tolearntohaveoneearontheroom,whileyouare tryingtoconcentrate.Youalsohavetodecidewhento stickyournoseintoanything.Atthesametime,you mustgiveyourteamspaceandrememberhowoften problemsgotsolvedwithoutaTechLeadorsomeone elsegettinginvolved.Youbecomehalfmanagement, halfgrunt.Itisnoteasyasyouareinevitablyonboth sides,yetinneithercampcompletely.

Iimaginethisroleislikethatofacorporalorsergeant inthearmy.Peopleobeyauthority,ofteninthefaceof

completeincompetency,andyoumustlearnwhento useit.Findthestyleofyourinnertinpottyrant.Use itwisely.

Inevitablyyouaremanagingtheteam.Youneedto decidewhattheteamshoulddecideforthemselves.It wouldbeanunderstatememttosayIreallyhatecode stylediscussions,forexample,soIlettheteamchoose! Theyhavetoliveinitmorethanyou,butonlygive themtwominutestodiscussit!Itcangoonformuch longer,butyoualwayshaveveto!

Humphrey’sbackgroundstory

Humphreyconsidershimselflessofa“technical”Tech Leadthanmostdespiteworkingindevelopmentfor 20yearsanddealingwithtechnologiessuchasFortran,OpenVMS-TPU(VirtualMemorySystem-Text ProcessingUtility).Hehasmorerecentlyworkedwith Java,Flex,PHPandPython.

Delegate,Delegate,Delegate –JasonSelby

WhatshouldaTechLeadfocus onandwhy?

Teamdynamics.Onceyoustop focusingonbeinganindividualcontributor,thehealthofthe teamcultureisthemostvaluableareathattheTechLeadcan greatlyinfluenceanddirectlyaffectsteamperformance.Therearemanythingsthe TechLeadcandotoimpactcultureanddynamics. Youcanidentifyandaddressinternalandexternal conflictsearly,coachindividualsontechnicaland behaviouralimprovements,andclearroadblocksto keeptheteamfromspinningonexternalconstraints. WhathasbeenyourbiggestchallengeasaTech Lead?

Oneofmyguidingprinciplesisforkeydecisionsto bedelegatedtotheteamasfrequentlyaspossible. Thisisoftenimpossiblewhendealingwithpersonnel issues,butotherwiseitworkswell.Lettingtheteam owndecisionsensuresbuy-in,bothonapproachand ownershipofoutcomesatateamlevel,especially

whenthingsdon’tgoexactlyasplanned.

Althoughtheprincipleissound,itisn’talwayseasy toadheretoinpractice.

WhenIwasleadingateamatalargeconsumer electronicsretailer,forexample,wewerediscussing thedesignofaserviceendpoint.Thisparticularservicewouldnotbecalledeverytimeawebpagewas rendered,butourtrafficmodelprojectedthattheendpointwouldseetrafficabout50%ofthetime.Atthe retailer’soperatingscale,thiswasstillasubstantial quantityoftraffic.

Ofthetwoleadingdesigns,onewasamorecomputeintensivesolutionwithlessdevelopmenttimeand onewasquiteabitmoredevelopmentwork,but wouldrequirealmostnocomputationatrequesttime. Ifavouredthesolutionthattookmoredevelopment timebutguaranteedproductionperformance.Anumberofseniormembersoftheteamwantedtoproceed withthesolutionthatoptimisedfordevelopmenttime; theywerewillingtotaketheperformanceriskinorder tohavemoretimetofocusonotherdevelopment workthatwasalsocriticaltobecompletedpriorto therushofholidaytraffic.

Aftersomedebate,weputittoavoteandbasedona slightmajority,wentwiththecompute-intensivesolution.Itwashardformetoacceptthatmyarguments

weren’tpersuasiveenough.Itwasdifficulttoresistthe temptationtooverruletheteamandimposemysolutionbyfiat.Theholidaycameandwentandtheteam decisionprovedright;thecompute-intensivesolution hadbeenaconcernthroughtheholidayperiod,but itdidn’tcauseanyproblems,andhavingadditional timetofocusonotherdevelopmentprioritiesmeant thatweaddressedotherperformanceconcernsandso probablypreventedotherperformanceproblems.

Anytime-managementtips?

Igetinearlyeachday,usuallyanhourbeforethe restoftheteam.Thisallowsmetimetocatchupon administrativetasksandemail.Withthosechoresout oftheway,I’mmorefocusedwhentheteamstarts tricklingintotheoffice.

Anothermajortime-consumerisansweringquestions fromotherteams.TheteamsI’veledhavebeenagileteamswithastrongemphasisonlow-ceremony collaboration.Thismeansweencourageotherteams weworkwithtocometoourdevelopmentlabwhen theyhavequestionsorneeds.Theproblemwasthat, sinceIwastheTechLeadandtherecognisableface oftheteam,Iwasinterruptedmanytimesaday toanswerquestionsorhelpdraftrequestsfornew features.Isolvedthisbyintroducingarotatingrole of“Concierge”toourteam,whowasdedicatedto answeringdrop-inrequestsonagivenday.Myteam

ishappytogetgetbetteracquaintedwithourlarger communityandtheinterruptionsaretolerablesince they’respreadacrossallmembersoftheteamovera fewweeks.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Iworkhardtokeepmeetingsscheduledincontiguous blocksandonlyoncertaindays.Thisallowsmeto havetimetobefocusedandworkwiththedevelopmentteam.Makingtimetobearoundtheteamand presentiskeytoeffectiveandauthenticleadership.

I’malsomercilessaboutoptingoutoflow-valuemeetingsorthosethatlackacrispagenda.Thisisn’t possibleinallcontexts,butmycurrentemployerhas ameeting-heavycultureandifIdidn’trejectalotof meetings,Iwouldhavelittletimeforanythingelse. Thisdoesn’tmakemeverypopular,butItrytobe kindwhendeclining.Stayingfocusedallowsmyteam andmetodeliver.

Therearealwaysenoughnon-developmenttasksto filleverysingleday.Determiningwhichmeetingsand tasksareoptionaltakestimeandabitofdelicate experimentation.Iusuallyattendallmeetingsand followthroughonalltasksatthestartofaproject andasIgetafeelforthosethatarenotaddingvalue, Istarttodeclinethemoneatatimeandwatchto

seeifthereareanyconsequences.IfImisjudgethe importance,IsayIoverlookedthemeetingortask withoutsubstantialimpacttomyrelationships.

Jason’skeyquestion:Whatwasthehardestchange foryouwhentransitionedfromdevelopertoTech Lead?

Iwasusedtobeingoneofthestrongesttechnical contributorsonteamspriortobecomingaTechLead. OnceItookonleadershipresponsibilities,Iwasno longerpresentforallteamconversationsnorableto beinvolvedintheimplementationdetailsofevery feature.Theteamoftenlookedtometohelparbitrateandbreakcontentiousdeadlocks.Istruggledto letgoofbeinginvolvedintheimplementationof everyfeatureanddrivingparticularimplementation approaches.HadIcontinuedtobeoutspoken,Iwould havecompromisedmyabilitytoarbitrateandtiebreak.

Jason’sbackgroundstory

Jasonconsidershimselffirstasasoftwaredeveloper, eventhoughhehasbeenleadingteamsforthepast sixyears.Hiscareerhasfocusedmostlyonhigh-scale, high-availabilitysystemsinbusinessdomainssuchas banking,insurance,utilitiesandretail.

Facilitating,thenLeading–DanAbel

WhatshouldaTechLeadfocus onandwhy?

Peoplecanbethebiggestchallengetoco-ordinateandinspire, butarethemostpowerfulforce tothrowatanyproblem.Toknow yourteamandforthemtoknow youallowsyoutoworkasa leader,afacilitator,andcoachtoguidethegroupto powerfulactions.

Myguidingruleistoleadwheretheycannotandto facilitatewheretheycan.Thatmeansgettingoutof theirwaywheretheycanshine,puttingjustenough structurearoundthemuptoensuretheyaresupported.Andleadingfromthefrontwheretheteam needsastrongguidetogetontopofachallenge.

Whenitcomestoleadership,I’vefounditessentialto findopportunitiestohelptheteamgrowsothatIhave thefreedomtojustfacilitatethingsIwasonceleading. TodothatIneedtobeabletoobserveandjudgefairly; lookingtothefuture,listeninganddirectinginequal measure.I’vefoundthatinthatwayyoudon’thave

tostartwithagreatteam,youcanbuildone. Ifyouwantapointabouttechnicaldiscovery,it’s aboutdecidingwhatmightlookgoodandthenincrementallyworkingtowardsthat,measuringand assessing,beingwillingandreadytoripsomeofitup ifwefindoutwewerewrong.Beingaleadermeans managingtherisksandlastresponsiblemomentsto thebestofmyability.Ifindithard,butItrytowork throughPlanDoMeasureAdjustcycles:justenough, readyintime.

WhathasbeenyourbiggestchallengeasaTech Lead?

I’mallergictoGanttchartsandin-depthprojectplans, thoughIloveworkinginpartnershipwithagreat projectorprogrammemanager.Earlyoninmycareer, duringthesecondtimeIwasaTechLead,theProject Manageraskedmetocomeupwithsomerough estimatesbasedonwhatweknew.Hewantedtohave aplantotalkthroughduringameeting.Theclient tookholdofthisGanttchart,simplymovingalongthe planwithoutrevisingitbasedonnewinformationwe hadlearned.Theclientwasn’tinterestedinadjusting theplan,evenafterconversationshighlightingthe risksinvolved.Intheend,Italkedtoadirectorand gainedhissupporttochangeourworkingstyleafter showinghimtheriskinvolved.

NowImightsolvetheproblemdifferently,butI wouldstillattacktherootcause.Icannotsitback anddonothingifweknowaboutsomethingthatwill preventasuccessfuldelivery.Weshouldactonwhat weknow,evenifitinvolvesbadnewsanddifficult conversations.

AfewyearslaterIhadtodeliverbadnewsmyself.I inheritedaprojectthatdidn’tmeetallclientexpectations.Itwasmyjobtosolvetheproblem.Icreateda table,highlightingthefeaturestheclientexpectedand wherewewerebeforeusingthatintheconversation withtheclient.Nottalkingabouttheissuewouldhave madethingsworse.Badnewshastobedealtwithand aplanmadeoverwhattodonext.

Anytime-managementtips?

Lifetendstothrowmechallengesthatarealways slightlybiggerthanI’mreadyfor–orperhapsmy eyesarebiggerthanmybelly?Theresultisthatwhen thereisaproblemIcanbereallyfocused,butwhenit isbusinessasusual,Ihavebeenknowntostruggleto knowwhattodonextandgeteverythingimportant done.

SomeyearsagoIreadtheadviceofRands’onhow

todowhatIseeastheurgent¹³andtheimportant¹⁴, whichhadabigeffectonhowIworked.TheUrgent isthestuffthatyouneedtogetdone:perhapspeople areaskingforit;perhapsyouhavedecideditneeds tohappen.TheImportantisthestuffthatmeansyou wouldn’tbedoingyourjobifyouignoredit,butno oneisaskingyoutodo;thisstuffisn’tmilestones,but itistheflowofyourdayandyourweek,yourchatsto yourteammembers,beingsuretopair,what’sgoing onthestorywall,areyourteamhappyandsatisfied?

ThoughIdon’tfollowhisprocessesverbatim,Iuse indexcardsformyto-dolist;Rands’DailyScrub helpedmedealwithmoreworkthatIcoulddo,and thetricklelisthelpedmefocuspastthatintothezone ofrichconversationsthatseemtocatchthingsIdidn’t knowabout.Amixtureofthis,andshort,moreformal meetingshelpsmetointuitwhatisgoingonandwhat mightneedtogetontomyto-dodeck.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

I’venotbeenverygoodatthisrecently,butI’m fortunateasI’moftensurroundedbygooddevelopers wholetmedropinandout.

¹³http://www.randsinrepose.com/archives/2008/07/22/the_taste_of_the_ day.html

¹⁴http://www.randsinrepose.com/archives/2008/08/18/the_trickle_list. html

Alotdependsonthesizeandcompositionoftheteam: whenI’vebeenonasmallerteam,it’sobviousthatI shouldbespendingmytimecoding;onlargerteams, Iliketheideaofblockingoutsomecorecodinghours whereIcanfocusonthatpartofmyjob.WhenI’ve beeninvolvedinmulti-teamdeliveries,I’vemadea pointofspendingmylimitedcodingtimeinpairing onareaswhereIknowtherehasbeenpainora challengeandIwanttosettheworkandthecode upforsuccess,givingmeachancetounderstandthe surprisesandpressuresthatmightlurkintheareafirst hand.

Idon’twanttoslip,sothisyearI’mlookingtomix thingsupabitandworkonprojectsthatallowmeto haveamorecode-facingrole.

Dan’skeyquestion:WhendoestheTechLeadrole stopandotherrolesbegin?

ATechLeadfindsbalancebetweenurgentandimportanttasks,andbetweendoingandlookingforward. WhenaTechLeadfocusesononeaspecttoomuch,I seethemoptingoutoftherole.Forexample,ifIam inmeetingsallthetime,orIampermanentlyfocused onsolvingadeeptechnicalproblem,thenmyteamis missingaTechLead.

Dan’sbackgroundstory

Danstartedtoexplorewhatcomputerscandoat

anearlyageandfollowedthisupbystudyingboth computersintheCprogramminglanguageandpeople atcollege,withthehelpofdancingandlotsofcider.In 18years,hehasseenenvironmentsofalltypesfrom smallstart-upstoalargeC++productcompany.

Hehasleadteamsonseveraloccasionsandnow recogniseswhatisimportant:relyingonastrong goal,themeanstogetthereandworkingwithpeople willingtolearn.

HelpingtheTeam–Adam Esterline

WhatshouldaTechLeadfocus onandwhy?

Ithinkthemostimportantthing aTechLeadcandoistohelp theirteamfigureoutwhatwork theyarenotgoingtodo.Lotsof thingscanoccupyateam,such asrefactoring,learningnewtechnologies,addingnewfeatures,andfixingbugs.Most ofthetime,wewanttodoallthosethings,butwe havetolearnhowtosayno.Sayingnocancomein manyforms.Forexample,saying,“Wealreadyhave it,”orasking,“Isitthemostimportantthingnow?”.

Mybiggestworryisprobablymakingsuretheteam feelslikeitissuccessful.Writingcodeishardanditis easytoburnout.Itrytomakesurethattheteamsare seeingbenefitsfromtheirworkonaregularbasis.

WhathasbeenyourbiggestchallengeasaTech Lead?

Tworealchallengescometomind.Thefirstonearose whenthecodetheteamwasworkingonhadgotinto

abadstate.Wewerehavingtroubledeliveringcode onaregularbasis.Asateam,wedecidedweneeded tostopdeliveringfeaturesandworkonthecodethat causedproblems.Thiswasnotapopulardecision withallourstakeholders.Wedrewuparelatively shortlistofproblemsthatneededtobeaddressedand wefocusedonsolvingthemoverthefollowingthree monthssothatwecouldthengetbackintoastable stateandstartdeliveringfeaturesagain.

ThesecondchallengeIhadwasdecidingtomoveto continuousdeployment;thiswasatoughteamsituationthatreallypaidoff.Therewasalotoffearand uncertaintywhendeployingeverycommit.People wereaskingquestionssuchas,“HowdoesQAfitinto thismodel?”and“Canwereallytrustdeveloperswith thatmuchresponsibility?”.Wespentalotoftime discussingeachoftheseissues.Wespentconsiderable timewritinga“safetynet”thatwouldallowusto deploycodesafely.Wealsospenttimeintroducing failuresintothesystemtoseehowoursafetynet performed.Intheend,webuiltasystemthatcanreact quicklytocustomerneedsandissues.

Anytime-managementtips?

Iblockouttimeinmycalendarfrom8amto1pmevery day,whenIwillnotacceptmeetings.Iusethattime tocodeandworkwithmyteam.WhereIspendmy morningscodingwiththeteam,Iusetheafternoons

dealingwithissues.IfIdonotblockofftimeinmy calendar,Iwouldendupspendingalmostallmytime workingonissues.

Ialsomakeitapointtoonlyansweremailfirstthing inthemorningorlateatnight.Itrytocheckemails onlyatthattime.

Adam’sbackgroundstory

Adamhasworkedwithawiderangeofprogramming languagessince1999andhasspentseveralyears runningtrainingclassesforWashingtonUniversity inSt.Louis.Adamhasleadteamssince2003in everythingfromprojectsinvolvinghardwaretohightrafficwebsites.

InwardsandOutwards–RachelLaycock

WhatshouldaTechLeadfocus onandwhy?

IthinktheTechLeadtakestwo stances,lookingbothinwards andoutwards.

Inwardly,themostimportant thingistheteam,andthedynamicsoftheteam.Iwatchforthe dynamicsofentireteam,notjustthedevelopers.I watchhowthedevelopersinteractwithotherroles intheteamsuchasanalysts,testers,andtheproject manager.Ithinkaboutwhetherpeoplearelearning, orwatchifpeoplearekeepingupand,ifnot,consider whatsupporttheyneed.Ifindoutwhereaperson wantstofocustheirgrowthandseeifpeoplefeel comfortabletakingownershipoftasks,championing ideas,andgrowing.Inmanyways,Iprotecttheteam inthesamewayaprojectmanagermight.Itryto shieldthetechnicalteamfromspendingtoomuch timeinmeetingsaboutarchitectureorideationof futurework,sotheycanfocusonprioritisingwork inthepresent.

Outwardly,Ioftenactastheconduitbetweenthetechnicalteamandthebusiness.Iconsiderwhetherweare meetingstakeholderneeds,andwhetheroursolution answerstheprobleminthebestwaypossible.Iask myself,“Aretherightpeopleinvolvedattheright timetomakethebestpossibledecisions?”Iconstantly stepbacktolookatthebiggerpicturetocheckthe projectisheadingintherightdirectionandaligns withfuturereleases.Iamalsoanadvisertoproject managersandanalyststofacilitategooddecisions, addingamuch-neededtechnicalperspectivetothe analysisphase.

WhathasbeenyourbiggestchallengeasaTech Lead?

DelegationissomethingIstillstrugglewith,soI’ll exemplifythis,buttherehavebeenmanychallenges aroundstakeholdermanagementandmanagingexpectations,whichhavebeendifficultlessonstolearn aswell.

IwasworkingasaTechLeadArchitectroleata largefinancialcompany;Ihadanotherconsultant fromThoughtWorkswithme(someofthetime),and ateamofclientdevelopers.Inaddition,Ineededto managetheexecutivestakeholdersandtheirconstant demandsandexpectations.Ididn’thavetheusual constructsofBA,PMetc,soIhadalotofgapsto fill.ThisiswhereIreallystruggledwithdelegation.

Ididn’thandleitwellatfirst;Ijustgavepeoplework todopiecemealandthismeantthatthedevelopers alwayshadtoaskwhattodonext,justwhenIwasso busyIcouldn’tthinkwhattogivethem,or,atleast, feltcomfortablegivingthem.

Eventually,IrealisedIwouldworkmyselftodeath unlessIletsomestuffgoandletthemownwork andlearnhowtomanageandprioritisetheirwork basedoninformationIgavethem.Itwashard,but Istoppedtoaskeachofthedeveloperswhatthey actuallywantedtolearnandworkon.Onedeveloper wantedtodevelopbetterconsultingskills,soIlet himrunmeetingsandpresenttotheclientwithmy support.Iwouldthengivehimfeedbackonspecifics ofwhatwentwellandwhattheycouldimprove.It washardformetoletstuffgo,butitdidchangethe attitudeoftheteamandIwasn’tconstantlybeing askedwhattodonext.

Delegationisespeciallyhardwhenyouknowhowto doataskandtheotherpersonisstilllearning.You knowtheymaynotdothetaskaswellasyoucould, buttheyneedtomakemistakesinordertolearn.The advantageisthatyouarenolongerdoingeverything! Anytime-managementtips?

Thistiesinwithdelegation:itissomethingIamstill workingon!Iamdiscoveringthatbreakingthings

downintohigh-levelconceptsandthenprioritising themisworkingformerightnow.So,forexample, IstartbydecidingwhatIneedtodoandthendefine priorities;Ihavetoberealisticwithmyselfaboutwhat Icanachieve,giventhatmycalendarisoftenfullof meetings.TherewillalwaysbetasksIcannotgetdone, sothenIthinkaboutwhoIcandelegatethoseto.Itry tobasemydecisionontheareaswherepeoplewant togrow,butsometimesIsimplyhavetoaskthemto dotaskstheymaynotcarefor.

Tosummarise,Ibreakthingsdownintothreeorfour high-leveltasks,prioritise,thendelegate.Ireferto “YourBrainatWork”(DavidRock),whichexplains thatprioritisationanddecision-makingishardforthe humanbraintodo,soyoushoulddoitwhenyouare atyourbestandmakeiteasieronyourselfbybreaking itintothreeorfourthings.

Itdoesn’talwayswork;Ioftentrytodoitallmyself, butIamconstantlyworkingonmyselfaswellasthe team.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Itishard.CodingisaveryfocusedactivityandIcan losemyselfinastoryandbecomefocusedonthenext testtowrite,forexample,butasaTechLeadyou needtokeepaneyeonthearchitecture,theevolution

ofthecode,doesitmeetthebroadergoals?Willthe solutionworkwiththingsthatareinthepipelinethingsthatonlyyoumayknowaboutbecauseyou wereinthemeetingtotalkaboutthenextrelease. Youalsoneedtopayattentiontoteamdynamics.Are therightpeoplepairingwitheachother?Arepeople growing?Personally,IfinditeasierifIdropinand outofstoriesratherthanowningthem.ThenIdon’t gettoocaughtupintoomuchdetailandIcanremind myselfthatIammoreacoachthanacoderformy team.

Rachel’sfirstkeyquestion:“Howwouldyoucoach adeveloperintobeingaTechLead?”

Themostimportantpointisthattheyunderstand thattheyarenolongerresponsibleforbeingthebest coderontheteam,butformakingsureeveryoneelse doestheirbest.Helpthemtoseetherisksinvolved andhelpthemfindwaysofencouragingeveryone elsetocontribute,particularlyiftheyareleading aninexperiencedteam.Showthemwaystospread responsibilityfordesignsintheteam.Encouragethem touseaSocraticquestioningmethodinsteadofletting themfirstpresenttheirideatoateam.Teachthem variousquestioningstylestohelptheteamcomeup withtheanswersthemselves.Thequestion,“What about?”oftenhelps.

Teachthemtorecognisetheskillspeoplehaveand

wheretheymightbebestapplied.Helpthemtofind abalancebetweensharingskillsacrosstheteamand being“efficient”withsoftwaredelivery.Helpthe developerbuildlisteningandinfluencingskills,as theywillhavemoreinteractionwiththebusinessand potentiallyothertechnicalteams,architectsorother TechLeads.Finally,identifyasupportnetworkforthe developerandpersuadethemtonotsufferinsilence andtoaskforhelpwhenneeded.Helpthemfinda goodmentorwithmoreexperience,orsomeonewho worksinadifferentroletogetfeedbackonideas,and toprovidesupportorguidancethroughtryingtimes.

Rachel’ssecondkeyquestion:“Howdoyouremain technicalandrelevantwhenyoudon’tgettocode thatoften?”Acceptthatyouareunlikelytoremain thebestcoderontheteam,purelybecauseyouwillbe codingless.Focusonwhatyouneedtoknoworlearn forthecontext.Youmuststilldemonstratepassion aboutbeingtechnicalbecauseyoumayfindyourself learningmoreinyourowntime.

Encouragetheteamtoorganise“Brownbag”sessions tokeepyouandotherteammembersabreastofwhat theteamislearning.Youwillrelymoreonreadingthe codetounderstandwhatisgoingonandpair-program withdevelopersasmuchaspossible.Iaimtomakethis about50percentofmytime.

Rachel’sbackgroundstory

Rachelisasoftwaredevelopmentveteranoftenyears, havingledsixteamsinthepast.TherolehasinterestedhersinceshefirstworetheTechLeadmantle anddiscoveredpeopleproblemsaremuchmoredifficulttosolvethantechnicalones.Sheusedtothink themosttechnicalpersonontheteamshouldlead, butrealiseddeeptechnicalknowledgedoesnotaid theTechLeadinsolvingpeopleproblems.Rachelis alsoparticularlypassionateabouthowtogetandkeep morewomenintechnology,particularlyintechnologistroles.Shewouldalsoliketoseewomenplaythe TechLeadrolemoreoften.

SoftSkills–JonPither

WhatshouldaTechLeadfocus onandwhy?

Getthebestpeopleinyourteam. Itissuchanobviouspoint,but thebestpeopletendtosolve mostproblemsforyou.Forexample,problemsofhavingtoeducateandlinemanagecanquickly evaporateintoquestionsofhowyoushouldbestdelegate.

Iloveself-organisingteams.Atthesametime,a TechLeadneedstobringpositiveenergy.ATech Leadneedstostirthingsup,toaskquestions,andto facilitatemeetingssothateveryonecanhaveafairsay. Idothisbydrawingupongoodold-fashionedmeeting managementtechniques,focusingonthebiggestissue fortheday,andseekingagreementonoutcomes. Althoughsomepeoplethinkwell-establishedteams don’trequirefacilitation,inmyexperiencethisis rarelytrue,especiallywhentheproblemiscomplex orilldefined.Itcanbeexhausting,butaleadmustbe preparedtogivealotofthemselves,emotionallyand intellectually.

TechLeadsshouldfocusondevelopingsoftskills. AgoodTechLeaddrawsupontheseskillstoseek balancebetweenteammembers,topushboundaries ofwhatispossible,andtonoticethosehappytostay withintheircomfortzone.Ishouldpointoutthat yourjobasTechLeadisnottoautomaticallysolveor increasefriction.Disagreementsarehealthyaslong asitdoesnotblocktheteamfrommovingforward.

Lastly,aTechLeadshouldbepreparedtostepaside forthegreatergood,bywhichImeanfindingtheright balancebetweenthreeelements:

•Theemployersorthebusiness:thosewhofoot thebillultimatelyrepresentthegreatergood.

•Theproject:teamscome,go,andchangeover time.Thesystemswebuildoutliveus.

•Theteam:Iconsidertheteamasindividuals first,andasacollectivearoundwhatwould makepeoplehappy.Iliketoquoteofaformer colleagueofmine(HäkenRäberg):“Wearenot paidtoenjoyourselvesatwork,butitdoesn’t hurt.”

Whoeverworksinthisroleshouldbeworkinginthe interestsoftheteam.Whenateamisundertaking aradicaltransformation,forexample,achangeof languageandsupportingtechnologies,theTechLead rolemaybetterbetransitionedorshared.

WhathasbeenyourbiggestchallengeasaTech Lead?

IoncesteppeddownfromtheroleofTechLeadasIfelt Ihadtodevoteallmyenergytocoding.Ibroughtthe teamintoastateofnearanarchytofacilitateatechnologyshiftandfeltsomeoneelsecoulddoabetterjob ofrestoringsomeprocess,cleaningupmymess.Ialso feltextremelydedicatedtoensuringthetechnology shiftsucceeded,sothiswaswhereIneededtofocus myenergy.ThisleftlittletimeforotherTechLead responsibilitiesthatcanbeemotionallydrainingon manyfronts.

SinceIwastryingtobeanagentforchange,Ineeded someoneelsetotakeontheroleofcalmingagent; someonewhocouldbetterintegratetheviewsofteam memberswithopposingstrategies,ofwhichIwasone. Icouldnotplaybothroles.Ifoundasuccessorwho, Ibelieved,hadthenecessarysoftskillstofacilitate heateddiscussionsandhadtheappreciationofthe biggerpicture.

AnotherchallengeIhaveoftenencounteredisdealing withateamgettingstale.Ateamneedsnewblood;it needsnewsourcesofcreativity.Todothis,Isought outamazinggraduatestoliftateam,aswellasscouringmynetworkforpeopleIhighlyadmire,whomI thinkshouldmakeadifferenceandexcitepeople.

Ifindithardtodealwithdevelopersinmyteamwho leantowardsaconservativeoranegativeviewpoint. Iwanteveryoneinmyteamtobehappyandexcited, butperhapsthisisoneofmyownfailings.Youneed differentpeopleonateamwithdifferentviewpoints anddifferentstrengths.JustbecauseIamaTechLead Ishouldnotlosesleepoverpeoplenotbeingthrilled byworktheteamisdoing.

Anytime-managementtips?

To-dolistsareessential.Boringthingslikeusinga calendarhelp.OrgmodeinEmacsrockstoo.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Youshouldn’thangontobeingaTechLeadand writingcodeallthetime.Ifyoucannotdoboth,then don’t:pickone.IoncereadsomewhereonaJava forum:“Pickonethinganddoitwellratherthansuck atboth.”

ButI’vehadgreatsuccessandjoyfromdelegation.If youhaveagreatteam,delegate.Setup“streamleads” orTechLeadsoverasmallerarea.Asktheteamhow theyfeelyoucanbestdelegate.Retrospectivesarea must.Aboozypubscenedoesn’thurt.

Jon’sfirstkeyquestion:DoIconsidermyselfa goodTechLead?

Ihavemixedfeelingsaboutthis.Icanbringgood energy;Icangainateam’strustandbewillingto pushwhateverbarrierpresentsitself.Ontheother hand,Istrugglewithmyowndemonsofconfidence, ofnotfeelinggoodenoughtoleadsomeamazing people.Itcanbechallenging.Icangetstressedwhen Ifeelmyteamisunderattackfrompeopleinlarge institutionsthatmaynotrespecttheworkwedo.I amaverypassionateperson,andsometimesIfeelI wouldbenefitfrombeingmoresavvyatpolitics.

Jon’ssecondkeyquestion:HowcanIimprove myself?

Meditateeveryday!Trynottotaketheworktooseriouslyandenjoytheplayfulnessinsideteamsmore.I lovecommunicationtechniqueslikeNonviolentcommunication,althoughitistooeasytoforgetsuch practices.

Jon’sbackgroundstory

JonhasworkedinITfor12years,wherehehasacted astheTechLeadforthreetofourteamsinthelast fouryears.Hehasaparticularlystrongpassionin usingandcontributingtoopensourcesoftwareand hasmostrecentlyfoundapassionforusingClojure tosolveproblems.

EnablingPeople–Isabella Degen

WhatshouldaTechLeadfocus onandwhy?

ATechLeadshouldenableeach personontheteamtobeas productiveastheycanbe.They shouldmakeeachteammember feeltheyarepartofasingleteam workingtowardsthesamegoal. Theyensuredeveloperstrulyunderstandtherequirementsandco-ownthecodebase.OnewayIachieve thisisbyensuringIdonotpresentmyideasfirst,and byencouragingotherstosharetheirideas.Itrynot totellpeoplewhatIwoulddo,becauseIfindthis discouragespeoplefrompresentingtheirownideas.I amcarefulaboutthat,andalthoughitdependsonthe team,IdelaypresentingmyownideasuntilIbetter knowthepeopleontheteam.

Itrytospendhalfanhoureverydaywiththedevelopersontheteamtoaskquestionssuchas:

•Whatproblemsexistinthecodebase?

•Doyouhaveanynewideastotry?

•Wherearewespendingthemosttimeandwhat canwedoaboutit?

•Isthereanythingonyourmind?

Ispendalotoftimetryingtoencouragelessexperienceddeveloperstosharetheirideas,becauseeven thoughtheymaynotalwayswork,theyoftencomeup withdifferentapproaches.Mixedwiththeexperience ofseasoneddevelopers,weoftenendupwithanew solutionthatwillwork.

Someideastakealongtime,soIalsoworkwith developerstofindwayswecanincrementallyimprovetohelpwiththenextsetoffunctionalitybeing developed.Ifindthisisthebestwayforgetting stakeholdersupportfortechnicalimprovements.

TechLeadsshouldalsoensuredifferentrolesona projectdonotworkintheirownsilos,throwingwork overawall.Itrytopreventdeveloperspickingup workwithoutinvolvingotherrolesand,ifInoticeit, willoftensendtheBusinessAnalyst(BA)andQuality Analyst(QA)theirway.WhatIfindinterestingis thatBAsandQAs,whoarenormallytheminority oftheteam,neverhaveissuesinvolvingotherroles. Theywanttotalk.Itisoftendevelopers,whothink theyknowwhatneedstobedone,whoneedthe encouragementtoworkwithpeopleinotherroles.

AnotherwayItrytobreaksilosacrossteamsisoften atsocialevents.AsaTechLead,Ioftenspendmore timewithpeopleintherolesofProjectManageror ProductOwner.Atsocialoccasionssuchasateam lunch,Itrytoavoidsittingnexttothesepeopleto giveothersanopportunitytointeractwiththem.

ATechLeadshouldfocusonthepathtoproduction. Iliketostartdesigningandarchitectingasolution byenvisagingago-livedate,thereleaseintoproduction,andworkbackwardsfromthere.Iidentifywhat workmustbedone,andtheimpedimentswemight encounterandmustovercome.

ATechLeadworkswiththebusinesstodevelopa sharedunderstandingofhowmuchworkcanbedone, andthereforehelpprioritisingwhattheywanttodo. Theyalsohelpnon-technicalteammembersunderstandwhatisoccurringinthedevelopmentteamby translatingtechnicalneedsandtermsintoamore generallanguage.

Whathasbeenyourmostchallengingsituationas aTechLeadandhowdidyouhandleit?

MyfirstprojectasTechLeadwasthemostchallengingsituation,becauseIdidnothavetheexperience anddidnotunderstandwhattherolewasabout. Ifounditdifficulttogettheteamtorespectme, which,inhindsight,isnosurprisegiventhatItotally

misunderstoodthatIhadtogivetheteamthefreedom todesigntheirwork.Ishouldhavebeenactingas ashepherd,lookingafterthemandsteeringthem looselyintherightdirection,ratherthanenforcing allmyideas.

Luckily,Iwasworkingwithanexperiencedproject managerandwespentanhourtogethereveryday todiscussproblems.Thesediscussionshelpedme understandmoreaboutmyrole.Feedbackfromall theteammemberswaswhatmademechangemy approachthenexttimeroundandeversince.

Anytime-managementtips?

Everyday,beforeourteam’sstand-upmeeting,Itry toarriveearlysothatIcanspend40minutesintotal quietwhereIcanponderoverwhatisgoingonin theproject.Iaskmyselfquestionslike,“Arethereany smellsoranti-patternsappearing?Dowestillfollow ourvision?Iseveryoneonboard?”

IletmyteamknowwhatIamdoingduringthistime sothetimeisnottakenfromme.Ithinkitisimportant tohavetimeforvisioningandnotjusttimetowork throughtasks.

IensureIgetsolid,unbrokenchunksoftimethroughouttheday(suchasallafternooneachday,ortwofull daysaweek)withoutanymeetingssothatIcanwrite codeandpairprogramwithotherdevelopers.

Igiveasmuchresponsibility(alwaysslightlymore thanyouthinkyoushould)toothermembersofthe team.Thisfreesupmytime,andthemembersoften finditmuchmorefulfillingtoownwholepartsofa systemsuchasanintegrationpoint.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

WritingcodeiswhatIlovedoingmost.However, quiteoftenIdeprioritiseitinfavourofresolvingan issuethatInoticewouldunblockmoremembersof theteam.Ifeelthatpeoplewhounderstandboth technicalandbusinessaspectsarebestplacedtosteer theteamawayfromobstacles.Theyalsotendtobe betteratfindingsolutionswhentheteamdoeshalt duetoablock.

Itrytoavoidreviewingmyteam’scheck-ins.Instead, Iensurethatthedeveloperswithmoreexperience pairprogramonthecriticalstories.IfIdonothavea teammemberwiththatexperience,thenIspendmuch moretimeinthecodebase.

Iseemyselfasaguestinthecodebaseandnotasthe owner.Iusethetimeinthecodebasetodetectcode andarchitecturalsmells,anti-patterns,maintainabilityissues,anddiscussthesewiththeteam.Ideally theywilltakeownershiptoresolvethose.Ialsouse thetimetobetterunderstandthestrengthsofdifferent

developers,highlightingwhentheycomeupwitha greatideaandnudgingthemonhowtheymightshare thatwithawidercommunity.

Isabella’skeyquestion:HowdoIgetopinionated developerswithdivergentopinionsbetterintegratedasateam?

Idonothaveagoodanswertothis.Atthemoment, Iwouldsayittakestimetobuildanunderstanding ofwhytheydonotlikeworkingwithotherpeopleor considerotherpeople’ssuggestions.

InthepastIhavesatwiththemandexplainedwhat Iexpectedandwhy.Iletthemexplaintomewhy theyhadadifferentapproach.Normallythereissome middlegroundthatcanbefound.ButIwouldbeinterestedtohearwhatotherpeopledointhesesituations.

Isabella’sbackgroundstory

IsabellastartedworkingforThoughtWorksin2006 andbeganherTechLeadjourneyin2008.Sincethen, shehasplayedtheTechLeadroleforovereightdifferentteams,mostlyusingJavaand.NetTechnologies. ShehasaMastersofScienceinElectricalEngineering andInformationTechnologyfromtheETHZurich.

It’sNotAbouttheCode–PatricFornasier

WhatshouldaTechLeadfocus onandwhy?

Beingabletomastertechnology isabsolutelynecessary,butnot sufficientinitselftodeliversoftwareeffectively.Twoothermain areasthatasuccessfulTechLead shouldfocusonarepeopleand process.Thereisnotmuchpointwritinggreatcode, forexample,ifyouaresolvingthewrongbusiness problem,becauseyoudidnotcommunicateenough withyourcustomers.Or,itmightmakesensetohave onedeveloperworkonsomethingelseotherthan stories,suchasanalysis,techtasks,operations,or testingifthismakestheteamgofaster.Inthisrole, youmakethesecost/valuedecisionscontinuouslyand prioritiseaccordingtowhatyouwanttheteamto focuson.

AsaTechLead,Ispinmanyplatesatonce.What occupiesmythoughtsthemostisfiguringoutwhich platesneedtokeepspinningandwhichonesIcan affordtoletcrash.

Usually,mydaysarefilledwithmakingdecisionsto strikeabalancebetweencostandvalueinorderto achieveanoptimaloutcome-short,medium,and longterm.Forexample,Ineedtoknowmyteam wellsothatIcandecidewhoismostsuitableto workonagiventask.Thereisanumberoffactors thatinfluencethisdecision,suchastaskimportance, taskurgency,team-memberskillset,experience,and personalpreferences.

WhathasbeenyourbiggestchallengeasaTech Lead?

Ithinkoneofthehardestthingsisbalancingshorttermagainstlong-termgoals.Itiseasytosellashorttermgain,butitrequiresmoreexperience,discipline andskilltoforgoaquickwintodayinfavourofbeing inabetterplacetomorrow.Oneexamplethatsprings tomind,iswhentheChiefTechnicalOfficer(CTO) ofalargeprojectIwasworkingonaskedmetoadd anextradaytoourcurrentiteration,becausehehad animportantboardmeetingthefollowingweekand wantedtoputusinagoodlightbydemonstrating moreprogressthanwehadactuallymade.Itwasa temptingpropositionintheshorttermbutIknewit wouldbackfireeventually.

Ittooksomecourageformetostandmyground,but Iexplainedthatifhewantedtofakeprogressthere areeasierwaystodothat.Heabandonedhisideaand

presentedactualdatatotheboard,whichwentdown wellandavoidedsettingunrealisticexpectationsof whattheteamwascapableofdelivering.

Anytime-managementtips?

Itrytogetmyprioritiesright.Generally,there’s alwaysmoreworkthanIcouldpossiblydo,soit isaboutdecidingwhat’smostimportant.Iusually spendafewminutesinthemorningwritingdown myprioritiesonapieceofpaper,whichIcarrywith methroughouttheday.Everynowandthen,Itake acoupleofminutestoreviewthelistortickthings off.WheneverIamspendingmorethanacoupleof minutesonsomething,Icheckthelisttoseeifthe taskIamworkingonisactuallythemostimportant thingIshouldbeworkingon.Ifitisnot,Ieitherstop immediatelyortakeaminutetore-prioritise.That way,IamalwaysfullyawarethatIamspendingmy timeonwhatIdecidedwasmostimportant.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Strikingthisbalanceishard.Writingcodetakeslong blocksofuninterruptedtimeandforaTechLead, theseblocksbecomerarer.Evenso,IthinkitisnecessarythataTechLeadspendstimeonthecodebase. ATechLeadensuresthecodebaseremainshealthy.I don’tthinkyoucanleadateamofdevelopersifyou

donotknowwhatyou’retalkingabout.Asaprinciple, Idon’taskadevelopertodosomethingthatIwould notdomyself.Itisawaytokeepmehonestandallows metoappreciatetheworkIaskotherstodo.

Thereareafewapproachestohelpmedealwith distractions:

•Pairprogram-WhenIgetdistracted,mypair cancontinueworkingonthetask.WhenIreturn, Ifinditeasiertogetbackintotheflow.

•Delegatework-Isitdownwithpeoplewhen they’reworkingonacrucialpart.AssoonasI feeltheydon’tneedmeanymore,Iletthemgo onwithoutme.

•Findquiettime-Itrytotakeacoupleofhours everyweektoeitherlockmyselfintoaroomor workfromhomeuntillunchtime.

Patric’skeyquestion:Howdoyoukeepyourtech toolssharp?

Ithinktherearereallythreeessentialpartstothis:networking,alertnessandlearning.Iamrelyingheavily onmyprofessionalnetworktofilterandsurfacenew ideas,tools,techniques,etc.Atthesametime,Ipick upnamesortermsIamnotfamiliarwith.IfIpick somethingup,Ispendamomentputtingitincontext andunderstandinghowitcouldbeused.Atthisstage,

mylearningissuperficialandIamonlyoptimising forbreadth,notdepth,butithelpsmebuildupa catalogueofresourcesthatIcancomebacktoatalater stagewhenIamconfrontedwithaspecificproblem. Atthatstage,Ispendmoretimetolearnindepth. This,incombinationwithhavingaspecificproblem tosolve,allowsmetolearnquicklyandeffectively.

Patric’sbackgroundstory

Patrichasworkedincommercialsoftwareforover 10years,havingspenttimebeforethatinacademia. Althoughheenjoyscoding,hefindshimselfalways lookingtoimproveteamsandprocesses,whichnaturallyledhimintotheTechLeadrole.Heseesthemost difficultchallengeinsoftwareasthesocialratherthan thetechnicalaspects.

PeopleFocus–Sarah Taraporewalla

WhatshouldaTechLeadfocus onandwhy?

Ithinkaboutthefollowingquestionsallthetime:

•Ismyteamsetupaswell asitcanbe?AndhowdoI getthebestoutofeachteam member?

•Doeseachteammemberknow, understandandbelievein thesamegoal?

•AmIallowingthemenough roomtomaketheirownmistakesandgrow,butnotso muchspacethattheproject isderailed?

•AmIfosteringasupportive environmentwheremyteam hasthefreedomtochallenge meonmyideas?

WhathasbeenyourbiggestchallengeasaTech Lead?

Iwasonateamwherethefivedevelopersdoubled whilstIwasawayonholidays.Everyonehadsignificantlydifferentskillsandexperiences.IdonotthinkI handleditaswellasIwouldhaveliked,butIlearned alot.

OnegoodthingIdidwastoidentifytheseniormembersoftheteamanddelegatedareasoffunctionality tothem.Theyworkedwithmetocomeupwiththe high-levelconceptanddesign,butitwasuptothem toputitincodeandexplainittotherestoftheteam.

AsaresultIworkedcloselywithcertainmembers oftheteam,andgottounderstandwhatwasworryingthem,whereIshouldbeconcerned,wherethey wantedtoextendthemselves.ButIdidnotspend enoughtimewiththemorejuniormembers.Ithink theyfeltlessappreciatedandheardasaresult.

Anytime-managementtips?

IusethestorywalltoletpeopleknowwhatIam workingon.

Iusuallylethighestpriority(sometimesthe“loudest shoutingperson”)dictatewhatIamworkingonnext andanyotheritempurposelydelay.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

That’shard!Ifindmyselfeitherrefactoringcodeto enablestoriesinupcomingiterations,orsneakinga new,smallstoryformyself.Dependingonthesize oftheteam,anycontributiontocodeImakewillnot usuallyaffectoverallprogress,soIdon’tfretwhen Iamnotworkingonstories.Itfreesmeuptomake sureIcanpairwithsomeoneontoughstories,or storieswhichseemtodrag.Italsomeansthatwhen Iamdraggedofftomeetingstheflowofastoryisn’t interrupted.

Isettimeasidespecificallytositdownandpair,soon certaindaysnomeetingsmaybebooked.

Iconstantlyhaveanearopentodiscussionstowork outifIamneededornot;thatwayIcancarryon whatIamdoing,listeninandstepinwhenIammost neededtocutdownontime.

Sarah’skeyquestion:Wasthereeveratimewhen youthoughtthatyouweren’tagoodTechLead?

Yes,loads!Especiallystartingout.ButIthinkthat doubtmakesyoubetteratanythingasyouseekways toimprove.OnmyfirstlargeteamasTechLeadI hadacrisisoffaiththatwassogreatIalmosttold ourResourceManagementnottomakemeTechLead, asIwascertainIwasdoingsomethingwrong,but

couldn’tfigureoutwhat.Iconsultedsomeoneabout it,whosaid,“YoucouldavoidbeingTechLeador youcouldfindoutwhatyouaredoingwrongandfix it.Whatdoyourteammatesthinkofyou?”Ididn’t knowtheanswer,soIstartedfeedbacksessionswith everyone.ItturnedoutthattheythoughtIwasdoing agreatjob,butwantedmetospendalittlemoretime withthem.Sowealllearnedtogether:theyrealised Iwashavingdoubts,sotheyhelpedmeoutandwe becameamuchbetterteamforit.

Sarah’sbackgroundstory

SarahhasbeenworkinginITforabout10years, startingwithBoeingasagraduateandthenmoving ontoThoughtWorksthreeyearslater.

ShesteppedintotheTechLeadroleasthesecondin commandonaprojectforBenButler-Cole(BBC)and describes“unofficiallyfallingintotheTechLeadrole” againonhernextproject.HersubsequentTechLead roleshavebeeninafuller,moreofficialcapacity.

EngagingtheTeam–Glen

Ford

WhatshouldaTechLeadfocus onandwhy?

AsaTechLead,Iaimtoaccomplishtwomainthings:

•Removetheobstaclesfor myteam:Iaddresstheissuesthatareholdingback myteamorindividualsin theteam,whetherthatbeexternalissuessuch asblockingstakeholders,orinternalonessuch aslackofexperienceorknowledge.

•Makemyselfredundant:Iwork toensuretheteamhasthe skills,knowledge,andexperiencetorunitself.There areacoupleofreasonsfor this:Iwantmyteamstoselforganiseasmuchaspossible;itgivesthemagreater feelingofempowerment.It meanstheteamcanoperatewithoutanoverseer,soI

canhaveconfidence,should Igoonleaveorgetill,that thingswilloperatesmoothly. Justasimportantly,italso freesmeuptolookatbroader concernsandaddmorevalue atahigherlevel.

MymainworriesasaTechLeadareusuallyabout peopleengagement.Technicalproblemsarerarely insurmountable,inmyexperience.Peopleproblems aremuchmorecomplex.

WhathasbeenyourbiggestchallengeasaTech Lead?

Itisdifficulttoselectthesinglemostchallenging situation.Themostrecentchallengewasleadinga strongteamoffourseniordevelopersandtechnical architects,eachwithatleast10years’experienceand eachhadworkedasTechLeadsinthepast.Allwere verytechnicallyproficientandallopinionated.

Theteamhaddeliveredaprototypeveryquickly, whichhadsubsequentlymovedtoproductionand,as aconsequence,wasfallingapartattheseamswith technicaldebtanddesigndecisionsthathadmade senseinthecontextofaprototype,butmadenosense inproduction.

ThechallengeIhadwasgettingtheteamengaged andworkingtoasinglevision;gettingthebestout ofdifferentpersonalities,whilstkeepingeveryoneon theteamtalkingandfeelingpartoftheteam.

IfIhadn’tbeenabletoshowmytechnicalcompetence withthisteamitwouldhavefallenapart,butbecause Ihadearnedtheirrespect,Iwasabletoengagethem onthesurroundingissueswefaced.Imadeitclear thatmyrolewastoremovetheirobstacles,manage thestakeholders,andclearapathtoincrementallyimprovethesystem.InreturnIexpectedeveryonetobe professional,speakoutwhentheyfeltthingsweren’t right,andrespecttheideasofsharedownership.

Bytreatingeveryoneintheteamasanindividualand workingtounderstandwhattheyneededtoperform totheiroptimum,Iwasabletomakeaccommodations, whichinturnbuiltteamcamaraderie.Forexample,I foughthardtokeepregularwork-from-homerights forpeoplewhoworkedwellremotelywhenthese rightsfeltthreatenedbyamanagementthattended tofallbackon‘bumsonseats’.

IworkedhardbuildingteaminteractionsandIfound productivitygrewsignificantly.Webuiltateamcultureof‘disagreementisnotcriticism’and‘failureis learningwheretheboundariesare’.

Dailystand-upsweretypicallyshort;storycardswere

simplecards,whichweredebatedandrewrittenuntil everyoneunderstood.Processwasataminimum.I dealtwithreportingtostakeholdersandensuringthat noprocesswithoutvaluecreptintohowweworked. Huddles(wesattogether)severaltimesadaybecame common,aswewouldsolvespecificissuesasagroup. Wepair-programmedonoccasion,butnotasanexplicitrule.

WhenIsteppedintotheleadershiproletheplatform wascausingoperationalpainandIhadtostaveoff demandsforrewrites,quickhacks,andother‘injected solutions’.Ireliedonmyteam’sandmyowntechnical competenceinrebuttingthis,understandingthatwe neededtolookunifiedandinagreement.

Weturnedtheplatformaroundfromunstable,monolithicprototypetodecomposedrobust,distributed platformwithoutanyinterruptiontoendusersatall andwealsodeliveredbusinessvaluethroughnew featuresandreducedcosts.

Anytime-managementtips?

Startingearlygivesmeanhourtogetmythoughts andplansforthedayinplace.I’llgothroughanything outstandingfromthepreviousday,reviewanyurgent orimportantissues,ofwhichIkeepthreeto-dolists: onefortoday,oneforneartermandoneforlonger term.Itjusthelpskeepthingsvisibletome.

Itryanddealwithissuesfacetoface,ratherthan lengthyemailexchanges.Itiseasytoburnalotof timeinemailexchanges,whichareopentomisinterpretation.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Itendtoworkonsmalldiscretepiecesofcodingthat arenon-critical,soIdon’tholdupanyteammembers. OrIworkcloselywithanotherperson,eitherpairing orclosecollaborationsothatIcanhandoverseamlessly.ThisusuallyworkswellasIcanaddressmore Kaizen-typeproblemsandreducefriction,whichcan otherwisebuildup,andithelpskeepmyknowledge ofthecodebasecurrent.

Ihaveoccasionallycodeddeeplyforworkthatrepresentsmajororcomplexfunctionality.However,on thoseoccasionsIdidfinditmuchhardertobalance theneedsofleadershipagainstthe‘mentalspace’ requiredforsuchthought-intensivework.

Glen’skeyquestion:Haveyoureceivedanytrainingormentoringspecifictoleadingteams?

ManyTechLeadshavehadlittletonotrainingor guidanceinwhatitmeanstobeaTechLead,orhow itrequiresadifferentmindset.Onthecontrary,Isee manyTechLeadsthinkingthattherolemeanshaving todomorehoursthaneveryoneelse;thattheyhave

tobethebestdeveloperintheteam.

Ireceivedminimaltraininginmyengineeringdegree, butIhavebeenfortunatetohaveworkedwithsome greatpeopleinmycareer.

Glen’sbackgroundstory

GlenhasworkedinITfor20yearsaftergraduating withadegreeinelectronicengineering.Hehaslead aboutseventeamssince2000,movingbetweenleadershipandarchitecturalroles.

TheTechofaTech Lead

TheroleofTechLeadwouldnotbethesamewithout theresponsibilityimpliedbythetechnicalaspectsof therole.Atthesametime,certainTechLeadresponsibilitiesdistinguishtherolefromthatofadeveloper.

GuidingtheTechnicalSolution

ThefirstdistinguishingresponsibilityofaTechLead istheirgovernanceofatechnicalsolution.ThisresponsibilityoverlapswithaTechnicalArchitectand inmanyorganisationsthesetworolesareoneandthe same.

TheTechLeadshapestheoveralltechnicalsolution toensurethatallrequirementsaremet.Theyneedto appreciateallthefunctionalrequirementstounderstandwhatmightbebuiltaswellascross-functional requirements(CFRs)abouthowitmightbedelivered. TheTechLeadlooksforthesignificantCFRsthat couldrequireadifferentarchitectureoradditional

worktoimprovedimensions,suchassupportabilityor frequentdeployability.TheTechLeadchampionsall relevantCFRsandeducatespeopleaboutthenegative impactofneglectingthem.

CFRsaffecttheshapeofthefinaltechnicalsolution, sotheTechLeadusesdiagramstocommunicateunderstandingwithintheteam.

HarmonisingTeamDirection

Whenyouhaveagroupofdevelopersworkingona singlesystem,youwillhaveoccasionswhendevelopersdisagreeabouthowtoapproachaproblem.Disagreementsarehealthyaslongastheteamsettleson adirectionrelativelyquickly.Disagreementsbecome destructivewhentheteamdivides,unabletochoose betweenalternatives.

TechLeadswatchcarefullywhentheteamreachesan impasse.Theyusedifferentstrategiestofindways fortheteamtomoveforward,perhapsfacilitating, reachingforexternaladvice,orsometimesstepping intomakeadecision.Inthesesituations,aTech Leadfirstseeksagreementonthecoreproblembeing solved,beforeentertaininganysolutions.Onlyonce everyoneagreesonthecoreproblemwilltheteam findasolutionagreeabletoall.

ATechLeadalsolooksforsignsthatindicatedevelopersmaybemovingindifferentdirections.TechLeads watchoutforwhenanindividualunnecessarilyadds anotherwayofsolvingaknownproblem.Different methodsofaccomplishingthesametaskleadsto unnecessarycomplexityandmakescollectivecode ownershipmoredifficult.Ateaminharmonylooks similartoasingledeveloperwritingthecodebase, unlikethefollowing:

Ateamoutofharmony

ATechLeadpromotesdesignprinciplesandarchitecturalguidelinesfordeveloperstomakedecisionsthat alignwiththeoveralltechnicalsolution.

ManagingTechnicalRisks

Technicalrisksquicklyturnintoissuesthataffect everyonewhowantstochangesoftware,notjustthe developers.However,onlypeoplewithatechnical backgroundcansensetherisksandmoreaccurately

understandtheirimpact.Developersarealsobethe firsttofeeltheimpactwhenrisksbecomerealand turnintoissues.

TheresponsibilityformanagingandtrackingtechnicalrisksfallstotheTechLead.Justlikethewaya projectmanagertracksandresolvesrisksandissues, theTechLeadworkswithdeveloperstoidentify, prioritiseandfindwaystomitigatetechnicalrisks. TheTechLeadmakesrisksmorevisibletooutside stakeholdersandlobbiesfortimeandresourcesto addressthem.

TheTechLeadfindsdifferentapproachestoexpress technicalriskstonon-technicalpeople.TheTechLead usesmetaphorsandvisualisationstoexplaintonontechnicalpeopletheimpactthattakingrisksmight have.Expressingtechnicalissuesinwaysnon-technicalpeoplecanunderstandcreatesbetterrapportand generatessupportforfixingthem.

Thechampionforaddressingtechnicalrisksortechnicaldebtmustcomefromwithintheteamortherisks remainunaddressed.

TakingaLonger-TermView

Adevelopersolvesaproblembasedontheirown experiences,knowledge,andwhattheythinkisright

forthem.Adevelopermakesthischoicewithanarrow perspective.TheTechLeadhastoapproachproblems withawiderperspective;theylookattheconsequencesthatachoicehasonotherpeopleontheteam, andthefutureworkorreworkthatthechoicecould saveorcreate.TheTechLeadevaluatesdecisionswith abroader,longer-termview.

IntheearliersectiononNovices,newTechLeads suddenlybecameawareforthefirsttimeoftheimpact adesigndecisioncouldhaveondeployment,architecture,andthelong-termmaintainabilityofthesystem. Whatmaybesimpleforadevelopercouldmake runningthesoftwareinproductionmoredifficultand aTechLeadneedstobeawareofwhomightbe affectedbythatchoice,particularlyiftheysitoutside oftheteam.

ATechLeadbecomesparticularlyconcernedifa choicetodaymakesitmoredifficulttochangeor addtothesystemtomorrow.TheTechLeadfinds opportunitiestosafelyexposeadevelopertothis broaderviewtogrowthedeveloper’sawarenessof theimpactanindividualdecisionmighthaveonthe future.

TeamsandArchitecture–SimonBrown

WhatshouldaTechLeadfocus onandwhy?

ThetermTechLeadisambiguous: someconsidertheTechLeadto betheleadprogrammer;some seeitasasynonymofsoftware architect.IpreferSoftwareArchitect,becauseitimpliesasetof responsibilitiesthataren’tsoobviouswhenyouuse thetermTechLead.

Whatevertermyouuse,theroleshouldfocuson puttingtogetherthehigh-levelarchitectureofthe softwaresystem,takingcaretounderstandanyrequirementsorconstraintsthatinfluencethearchitecture.Architecturesneedtoevolveovertimeandfocus needstobeputoncontinuoustechnicalleadershiptoo, toguardthearchitectureandensuretechnicalquality. Toanswerthequestion,Iwouldhavetosayfocus onmakingyourselfreplaceable.Itisaboutcoaching, collaboratingwith,andleadingtheteam.

WhathasbeenyourbiggestchallengeasaTech Lead?

MybiggestchallengewasprobablywhenIwasasked totakeoverasoftwareprojectbecausetheprevious TechLeadquit.Fromtheoutside,theprojectappeared tohavecleanarchitecture,agreatteamwhowere ontracktodeliveringwithinbudget,andagreedtime scales.Oncloserinspectionitwasadifferentstory. Ifeltthatthearchitecturewasoverlycomplex.Future strategywascitedasthereasonforthis,buttodate, thisstrategyhasneverbeenimplemented!Ifoughtto simplifythearchitecture,buttoomuchhadalready beenspentonthosepartsofthesystemthatIfeltwere unnecessary.Thecodelookedmorecomplexthanit shouldhavetoo,andmembersofthedevelopment teamcomplainedaboutthecomplexityoftheinternal layeringstrategy.Therewerefewautomatedtests;the developmentprocessbeingfollowedbytheteamwas ambiguous,andtheoverallscopeoftheprojectwas vague.

Ihadachoice:cleanupthecode,writetestsandhope thateverythingworkeditselfout,orstepbackand revisitthebasics,suchasthescopeoftheprojectand theprocessthatweshouldfollow?Idecidedtodothe latter,asnoonehadaclearideaofhowmuchhad beencompleted,orhowmuchwaslefttodo.

Wesetupsomeworkshopswiththeprojectsponsors todefinethehigh-levelscope.Wesimplifiedthearchitecture;createdaKanbanboardtovisualisethe remainingwork;introducedasimpledefinitionof “done”andgotseriousaboutautomatedtests.Wegot thereintheend,butitwasthemostfrustratingproject thatI’veeverbeeninvolvedwith.

Ittaughtmetwokeythings:agoodteamismore thanthesumofitsparts,andthatnoteverybodyhas attentiontodetail.Myfirstrulenowforanybodyin aleadershiproleis:nevermakeanyassumptions.

Anytime-managementtips?

Therearelotsoftechniquesfortimemanagement, includingGettingThingsDoneandPersonalKanban. Ithinkthekeyistotakeapragmaticstanceofwhen somethingis“done”.Itisincrediblysatisfyingwhen you’vewrittenorre-factoredsomecodetobethe bestitcanbe;thetrickistoknowwhentostop. Automatedtestsandacceptancecriteriadogosome waytohelpinghere,but“continuousre-factoring” doesrequiresomelimits.

Thingslikedocumentationtakealotoftime,soI workiteratively,pushingstuffoutbeforeitisdone,to getfeedbackthatIamheadingintherightdirection. That’stheadviceIwouldgiveanybody:wetalkabout buildingsoftwareusingagileanditerativeapproaches,

buttheseapproachescanbeusefulinotheraspectsof aTechLead’sdayjob.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Firstly,don’ttakeonmorethanyoucanhandle.Secondly,don’tputyourselfonthecriticalpathwith regardtodeliveringcode.It’snotalwayspossible,of course,butbeawarethatyoucaneasilybecomethe bottleneck.Thirdly,beopen,coach,andcollaborate. SharingtheTechLeadrole(evenalittle)spreadsthe pressureofotherpeskyissuesthattakeawayyour timefromwritingcode.

Steppingawayfromthekeyboardcanbeuncomfortablewhenyoufirstmoveintoaleadershiprole,but youdon’tlosetheabilitytocodebysteppingback fromyourIDE(integrateddevelopmentenvironment) forafewhoursaday,sodon’tletitworryyou.

Simon’skeyquestion:Wheredoyoulearnabout technicalleadership,andparticularlythesofter sideoftherole?

Thistopicisn’tgivenmuchthought.There’salotof discussioninthesoftwareindustryaboutbeingagile andhavingself-organisingteams,andthetraditional viewofsoftwarearchitecturehasdiscouragedpeople fromlearningaboutthediscipline.WhileIagreethat weshouldcertainlystrivetobeself-organising,most

teamsthatI’veseenaresomewayfromthatgoal. Manyproblemstheyfacecanbesolvedbyhavinga single,dedicatedTechLead.Irecommendthesebooks:

•BecomingaTechnicalLeaderbyGeraldWeinberg

•NotestoaSoftwareTeamLeaderbyRoyOsherove

•PresentationZen:SimpleIdeasonPresentation DesignandDeliverybyGarrReynolds

•Gamestorming:APlaybookforInnovators,Rulebreakers,andChangemakersbyDaveGrayetal.

Simon’sbackgroundstory

Simonhasspent12yearsworkingforITconsulting companiesinabroadrangeofindustries,gradually growingintotheTechLeadrole.Hemovedbackto JerseyintheChannelIslandsjustoverfouryearsago. Simonstillwritescodetodaybutmoreofhisworkis helpingteamsunderstandsoftwarearchitecture,technicalleadershipandfindingthebalancewithagility. Heiscurrentlywritingabook,“SoftwareArchitecture forDevelopers”thatcoversthesetopics.

EnablementandSolution Design–MartenGustafson

WhatshouldaTechLeadfocus onandwhy?

Enablementandsolutiondesign.

Enablementshouldcomefirst andforemost.Ensuretheteam hasroomtoworkeffectively; shielditfromcompanypolitics, pointlessmeetings,andotherdistractions.Atthesametime,focusontransparency bydescribingwhatishappeningaroundtheteam, changesindirectionfromthebusinessorwhatmay becomingupinthefuture.

Solutiondesigncomesaclosesecond.Itrytoidentify workpatternsovertime.Iaskquestionssuchas:“Do wewritethesamefunctionmorethanonceand,if so,canweconsolidatethedifferentversions?”or“Is ourcurrentdatastoreagoodfitforotherdata?”or “Shouldweuseadifferentlanguageforeverything,or justforcertaincomponents?”

Itrackprogressprimarilybyreading,oratleastskimmingallthenewlywrittencodeandreadingabout

newtechniquesorevaluatingframeworks.

Ispendsignificanttimethinkingaboutdeferredissues thatcouldcomebacktobiteus.Issuessuchaswhether we’reusingtherightstrategyfordataversioning persistentdata,orifoperationalaspectssuchasmetric collectionandlogretentionaregoodenough.Iworry abouthavingenoughsupportinginfrastructureforthe developmentteam,suchasbuildservers,orshorteningbuildtimesandmakingdeploymentssmoother. Iconsiderwhetherwearespendingenoughtime onqualityaspectssuchasstability,availability,and scalability.

Itrytofosteraculturewheredevelopersseebeyond thegreenunittestsandalsoobserveoperationalaspectssuchasdeployability,monitoring,metrics,and changingservertopologies.

IusethisasalistofprinciplesforanoviceTechLead:

•Readasmuchcodeaspossible

•Setasfewrulesaspossible

•Codewinsarguments

•Beyourownharshestcritic

•There’salwaysabetterway,butwhatisthemost feasiblesolutionrightnow?

•Alwaysaddressoperationalaspectsearlyon.

Imakesurewedosomethingoutsideworkoncein awhileandtrytotalkaboutsomethingotherthan work.

WhathasbeenyourbiggestchallengeasaTech Lead?

Explainingtomanagementthecomplexityofmigratingacompletesoftwarestack,whileswitchinghostingprovideratthesametime.IthinkIdidfairlywell bydrawingadependencytree.Wehavetodothis inordertodothat,andsoon,allthewayuptothe rootnodenamed“DONE”.Thisisacoarseandlarge variantoftheMikadoMethod.

Anotherchallengeisdealingwithbadtechnicalinvestments.Techniquesthatlookfine,startfine,and thencomecrumbleshortlyafterwards.Youhaveto reassess,readjust,andfindthebestalternativeroute. Thetransitioncostiseasilyforgotten,especiallythe greyareaofmotivation:doesaforcedchangeofa frameworkorpracticede-motivateyourteamordoes itenergisethem?

Shapingtheoverallteamtoworkagainstcommon goalsandhonouragreedbestpracticescanbevery challenging.Itisharderunderpressurewhenpeople “digin”withafocusonshipping.Itiseasytoslipon basictechnicalqualitysuchasdeployability,operability,andcleancode.

Anytime-managementtips?

Idon’ttrustmyselfwithkeepingtabsonhowmuchI work.Iwriteeverythingdownasitistheonlyway tobesure.Iupdateaspreadsheetonadailyand weekly(inaggregate)basis.Irecordshortcomments onparticulareventsandnotableaccomplishmentsper week.

Secondly,timeoffcanbeagoodthing,notjustfor youbutforyourteam,astheygettoworkwithout youbeingaround.After14years,Istillstruggleto taketimeoff;Iamdefinitelymyownbiggestobstacle totakingtimeoff.

Itrytodeferplanningasmuchaspossibleuntil somethingmustbedone,ortheperceivedneedto planhasbeenobliteratedbychangedcircumstances. Deferringasmanyitemsaspossiblefreesuptimefor codereviewsandactualprogramming.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Ifyouenjoyprogramming,youhavetolearntoaccept thatTechLeadshaveabattleandtherewillbeupsand downs.Iprioritisenon-programmingtasksifIfeelit enablestheteamtodotheirjobbetter.Ihavelearned tohandleinterruptionsbetter,becausetheTechLead isapointofcoordination.IamconsciousofwhatI wantandtheprerequisitesformakingithappen.

Findyourpoweranimal.WhenIamstressedbytoo muchmulti-tasking,Isiftthroughtechnicalissuesto findsomethingsmallandrelativelyeasytodo.Idrop everythingforacoupleofhoursandfixit.Shipping codethatfixessomething,howeversmall,quickly putsmeinabettermood.

Editor’snote:Apoweranimalisashamanic concept:itisaspiritthatempowersand protectsapersonfromharm.

Marten’skeyquestion:Whatprinciplesandbeliefs doyouhavearoundorganisingandplanningsoftwaredevelopment?

Ibelieveinself-organisation;withinmyteam,obviously,butideallyinotherpartsoftheorganisation thatworkwithdevelopmenttoo.I’mafirmbeliever inrelativeestimation,butpreferablynotintermsof storypoints.Istriveforanopendiscussionwhere theaffectedpeople,regardlessoforganisationalaffiliation,reachanagreementonthetopthreetofive priorities.

Peoplethenself-organisetoworkthroughthatlist, breakingitemsdownintosmallertasksifnecessary. Theteamprototypes,tests,andreleasesasnecessary. Iprefernottoworkwithcalendardeadlinesorfixedreleasewindows.

Ithinkthebiggestchallengeisfindingtheinitial opportunitytoprovethismethodofworkingissuccessful.

Marten’ssecondkeyquestion:Howdoyouwork withthosepeopleorthosepartsoftheorganisationthatdon’tunderstandprogramming?

MyapproachdependsbothonthetypeoforganisationandwhatkindofmandateandautonomyI have.Iinviteotherpartsoftheorganisationtothe planningandfollow-upprocess.Involvingtheminthe processdemonstrateshowpointlessitistoestimate thenumberofhoursortosetdatesanditshowsthat timeisbetterspentdevelopingandfindingoutwhat requirementsreallyneedaddressing.

Marten’sbackgroundstory

MartenisaSwedishsoftwaredeveloperandhasworked inbackend,datastoreandinfrastructureverticalsfor thepast14years.Previously,heplayedtheTechLead roleforoneofSweden’slargestwebsitesforateamof 12.HefindshiscurrentTechLeadroleforasmaller teamrequiresmuchmorehands-onwork.

ManageTechDebt–Mark Crossfield

WhatshouldaTechLeadfocus onandwhy?

Design!AsaTechLeadthemost worryingaspectofdevelopment istechnicaldebt,andtheintroductionofmessycodeandcoupling,whichpotentiallyslows theteamdown.Ireviewthe team’sdesigndecisions;myinputistoprovidecontinuityandadifferentperspective.Ensuringthewhole teamisgoinginthesamedirectionandhasthesame understandingofthecodebaserequiresknowledge ofthehistoricalcontext.Anappreciationofthefiner pointsofthecrafthelps,suchasknowingtheappropriatetimestointroducegeneralisationandabstraction.

Iwoulddescribemyprinciplesasleanandresponsible.Ibelievedevelopersshouldownresponsibility overthewholeprocess:fromcapturingrequirements throughtodeliveryandassurancethatafeaturecontinuestoworkinproduction.Idon’tbelieveinseparatingoutdeliverydisciplines;theyareintrinsically entwinedandpeopleshouldcontributewhereverthey

can.Everydeveloperneedstoconsidertheimpactof eachactionorinactiontheymake.ATechLeadmust ensurethatvalueisdeliveredandIfindmyselfensuringthatateamdeliveringachangeisalsodelivering value,ratherthanexploringitsowninterests.

WhathasbeenyourbiggestchallengeasaTech Lead?

Istruggletoidentifyonechallengegreaterthanthe rest.Ithinkmybiggestchallengeiscollaborative design.Withalargecodebaseitisimportantfor theteamtoconsidertheimpactofthedecisionsthat itmakes,andthatthesedecisionsarenotmadein isolation.Ihavefoundthatmostpeopletendtoput offdesignorleaveittosomeoneelse.

Notwantingtodictatedesigndecisions,feelingoptimisticandnothavingahugeamountofexperience intechnicalleadership,Igavetheteamquitealot offreedomandautonomyinthisarea.Whilethis allowedtheteamtoscaleupquitequickly,wefelt theknock-oneffectsaswewereslowedbythefragile natureofmanypartsofthecode.Ihavefoundexternaldevelopmentcoacheshelpful,andIamslowly findingconceptualtoolsthatcanbeusedtohelpfind bettersolutionssuchasHexagonalArchitecture¹⁵and Connascence¹⁶alongwithcollaborativedrawingand

¹⁵http://alistair.cockburn.us/Hexagonal+architecture

¹⁶http://en.wikipedia.org/wiki/Connascence_(computer_programming)

whiteboardsessionstoensureeveryoneisonthesame page.Delegatingsometechnicalresponsibilityhelps too,asitallowsmetoquicklycommunicateadesign issuetoonepersonandhavethemprovidecontinuity withinthesubteam.

Anytime-managementtips?

Triageisanimportanttactic.Inalargeteamitis importanttouseyourtimeinthemostefficientway. Whensomeoneneedstotalk,Itrytofindafewthings outbeforecommitting:whatisittheywishtotalk about?whoelseneedstobeinvolved?Istheperson blockedbywaitingforme,andhowlongwillittake? WhatItrytoestablishiswhatwouldbetheimpact ifIdelayedorwerenoteveninvolved.IfIamunder pressureIaskpeopletoapproachmeinafewminutes orafewhours.IfIamprioritisingsomethingelse,Itry tokeepthelistofpeoplewhoarewaitingforme,to ensurethattheconversationisn’tforgottenabout.I useTeuxDeux,butamconsideringamovetoTrello. Ihaveaterribleshort-termmemorywhencontextswitchingalot,andfinditmuchlessstressfulifIcan relyontechnologytoremindmewhoIneedtohave conversationswith.Itisimportanttokeeptrackof unresolvedandimpendingissues,becausetoooften theyfallthroughthecracks-especiallywhendelivery schedulesaretight.

WhenIamnotdiscussingachange,Itrytoensure

thatwhatIspendmytimeonisalignedtoagoal.The goalmaybeimprovingstability,reducingcomplexity, spreadingknowledge,orimprovingvisibility.Itis easytobecomeabsorbedbywhatyouaredoing andstrayfromprovidingvaluetotheteam.Iam particularlypronetobeingfascinatedbyaproblem, whichisaluxurythataTechLeaddoesnothave;their availabilityisoftenrequiredurgently,sodeepdives shouldbetheexceptionratherthantherule.

Thebestpieceoftime-managementadviceIwasgiven byamentoristoworkoutwhichissueswillhavethe mostimpact,andsowhichwouldprovidethemost valuebybeingresolved.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues? IwouldnotsayIhavefoundabalanceyet!Iwould ratherbewritingmorecodethanIdo,andIthinkit wouldbeeasiertoimprovedesignbydoingso,butmy otherresponsibilitiestakeupquitealotoftime.

Thatsaid,IthinkthemostimportantthingaTech Leadcandotobalancetheirtimeistopairwith anotherteammembertoexploreaproblemandfind asolution.Bypairing,youcanminimisetheimpact ofduckingoutasandwhenrequired.

Thekeyistotrynottodotoomuch;takingon responsibilitiesinevitablytakesyouawayfromthe

codebasewhen,realistically,youareprobablyamong themostqualifiedtoworkonit.

Wherepossibledelegatewhatevernon-codingtasks youcan,butestablishboundariesandsupervision.I foundsituationalleadershiptheoryuseful,andwheneverIdelegateIconsidertheperson’swillandability. Thishelpsdecidehowcloselyyouneedtosupervise theirwork.

Mark’skeyquestion:“WhatkeytechnicalprincipalsareessentialknowledgeforTechLeads?”

Ibelieveitisimportanttounderstandthedifference betweenlong-termandshort-termdecisions.Forexample,externalcommunicationprotocolsanddata structuressuchasJSON,RESTfulapproaches,HTTP, orSOAParemoreimportantinthelongrunthan internalapplicationchoicessuchaslanguagechoice, TDD,orpersistenceframework.

IrecommendTechLeadsunderstandlayeredarchitecture,theprinciplesofhexagonalarchitecture,domaindrivendesign,andtheideasaroundConnascenceas wellastechniquesaroundrefactoringtoremoveit.

Mark’sbackgroundstory

MarkistheTechnicalArchitectforTraderMedia (AutoTrader)andhasworkedasadeveloperforeight years.HehasworkedasaTechLeadforthelastfour yearscurrentlywithateamof16developersonalongtermproject.

Hisinterestsincludesystemdesign,datavisualisation,monitoringandresilience,andsoftwarequality, althoughheisparticularlyinterestedincodecraftsmanshipandtheacademicaspectsoflanguageand computing.

AnArchitectToo?–Tomi Vanek

WhatshouldaTechLeadfocus onandwhy?

Therearetwodimensionstothe TechLead’sresponsibility:technologyandpeople.

Intermsoftechnology,Tech Leadsfacecomplexchallenges thatrequireintuitiontorecognise therootcause;theycannotbedistractedbysymptoms.ThearchitectpartoftheTechLeadspecifies theshapes,patterns,innerstructure,logicofthesolution,andholdsthemap.TheTechLeadbuildsthis mapthroughdesigndiscussionswiththeteamand thenimplementsitwiththeteam.Thearchitecture shouldbespecifiedjustintime,soithasminimum fixedshapes.TheTechLeadensuresthearchitecture evolvesthroughoutthelifetimeofthesystem.Ithink ofarchitectureaslikeahumanbody:itgrowsquickly atthebeginning,inadultageitiskeptingoodshape, andknowswhentogivewaytothenextgeneration.

Intermsofpeople:TechLeadshavetolistenand observetheteamtogatherthecriticalmassofinfor-

mationtomaketherightdecisions.Theyalsoneed tounderstandtheculture,historicalbackground,and thepeoplewhodevelopedandmaintainthesoftware system.Asystemneedstobeadaptedtotheculture itlivesin,particularlyconsideringthosewhowill continuetodevelopandmaintainit.TheTechLead mustalsoadjustthedevelopmentprocesstotheteam thatbuildsthesoftware.Theymustappreciateeach personhastheirowndreams,sorrows,andunique personality.Inashortspaceoftime,theTechLead mustfindtherightroleforeachpersonintheteam andbringaharmonisedrhythmtotheteam.

WhathasbeenyourbiggestchallengeasaTech Lead?

Icoachedanarchitectureteamforaclient.Theteam workedwithacomplexarchitecture,whichparalysed development.Itmeantthatthedevelopmentteam couldn’tdelivernewfeaturesorapplications.The teamknewthearchitecturewaspainful,butitwas theirbaby;somefeltitscomplexitydemonstrated theirtechnicalexpertise;forothers,itrepresentedjob security.

Ifeltitwasimportanttoagreesomebasicvaluesto rolloutanewarchitecture.Wesettledonsimplicity. Wedevelopedittogetherwiththeclient’sarchitecture teamsotheyhadsomeemotionalinvestmentinitand feltownershipforthenewsystem.

Acorefeatureoftheoldarchitecturehadbeenlocking topreventconcurrenteditingofthesamedata.This wastypicalold-school,object-orientedprogramming. Thefeaturerequiredabout50classes,deepinheritancechains,andwasbloatedwithfunctionality,just incase.

Isuggestedtotheteamthatwefocusonfeatures usedbyapplicationsinproduction.Thearchitects agreedandstartedtoremoveunusedfunctionality, preservingonlythetwoorthreeclassesnecessary. Newservicesdidnotrequireanyfurtherexplanation, astheywereclearandsimple.

Anytime-managementtips?

Managingtimeishard;Iamconstantlylookingfor betterwaystodoit.

Mysimplestmethodistoworkwithaprioritised backlogoftasksofthesamegranularity.Ithenvisualisethesystemonaboardfortheteamandexternal stakeholderstodemonstratewhatIamworkingon.A visualsenseoftaskscompleted,inprogress,orwaiting makesiteasierfortheteamandstakeholderstosee whatIamworkingon.

Isetasidesometimeinmydaytoreadtechnology newsontheinternet.Ifindtimetoreadonmy commutetoandfromtheoffice.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

IapproachmyTechLeadtasksmuchasIalwaysdid asadeveloper.Lookingatthedevelopmentprocess islikefindinganalgorithm.Understandingcommunicationproblemsbetweenanalystswritingfunctional specificationsanddevelopersislikedebugging.However,whenaTechLeadmovesawayfromcoding,they cannotidentifyandfixcertainissues.

Isettimeasidetowritecode.Ialsoaskmyselfwhether aparticulartaskreallyrequiresmyattention.Itryto workonthesetogetherwithotherteammembersso thesolutionlastsbeyondmyowninfluenceandthe teamevolvesandrefinesthesolutionovertime.

Tomi’skeyquestion:Wheredoyouseeyourself fiveyearsfromnow?

Ireallydonotknow?that’stheexcitingthingabout whatwedo!

Tomi’sbackgroundstory

Tomihasworkedwithsoftwareformorethan25years andwithavarietyofteamsforthepast15years. Hehasworkedineverythingfromsoftwareusedin nuclearpowerplantstomodernwebapplicationsand portals.

Hiscurrentinterestisdevelopinga“justintime” approachtosoftwarearchitectureandusingagile methodstoprogramatateamlevel.

ChampionQuality–Peter Moran

WhatshouldaTechLeadfocus onandwhy?

Ifocusmostofmythoughtson twomainconcerns:

•Howtodevelopgoodsoftwaredesignprinciplesand practicesinpeople; •Howtogetthebestout oftechnologistsworkingtogetherinteams.

Whenyouhavepeoplewhoknowtheirtechnology wellandhowtoapplyitsensibly,andtheyaremotivatedandcancollaboratewiththosearoundthem, youhavethebasisforhigh-performingsoftwaredelivery.Thesearelearnedskillsthatcandevelopinthe rightenvironmentwiththerightleadership;Ibelieve agoodTechLeaderneedstoworkhardtofoster themandhelpindividualsandteamsgrowintheir capabilitiesintheseareas.

WhathasbeenyourbiggestchallengeasaTech Lead?

Forme,thiswasleadingateamof25talentedpeople todeliveranew,high-profilewebsiteunderheavy timepressures.Thetechnicalchallengeswerekeeping bothqualityandthroughputhighwithoutsacrificing thegooddesignprinciplesthatallowasystemtobe extended,maintainedandtoperformoveralongperiodoftime.Keepingtechnicaldebtlowwhileunder pressureisextremelyhard.Thepeopleaspectswere tokeeptalentedtechnologists(developers,testers,ops administrators)motivatedtosticktotheirprinciples andseethebiggergoal,whilefeatureswerestacking upandcomplexitygrew.Balancingthesesometimes competingobjectiveswasextremelychallenging.One keytohandlingthechallenges(andnotsomethingI alwaysdowell)wascommunication.Forexample:

•Keeppeopleinformed

•Seekconstantfeedback

•Taketimetodiscusstechnicalissueswithas manyteammembersaspossible

•Minimisesurprises

•Makesureeveryoneontheteamunderstandsthe objectivesofwhatyouaretryingtoachieve

•Giveeveryoneavoice;and

•Bepreparedtofightforwhattheteamtellsyou.

Anytime-managementtips?

Irelyonkeepingasmalllistofthingstodoand makingsureIcompletethemeachday.Ialsofind ithelpstokeepmyemailinboxempty(Iconsider nounreademailsasbeingempty).I’vefoundthatI neededtolearnwhentobackoutofthings.Itisok togetinvolvedinarangeoftechnicalissues,business discussions,orpeoplemanagementtasks,butIneed tobeawareofwhentoletgoandtrustotherstotake themtocompletion.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

IrealisethatIwillnotgettocodeasoftenasIwant, butIputtimeasidetomakesureIdo.Iwillpick upsmallfeaturesorissuesthatareusefulbutnot time-dependentandIspendacoupleofhourseach weekgettingthemdone.Itrytopairatleastonce aweek;Icangetinvolvedinastoryknowingthat ifIamdivertedthereissomeoneelsetorunwithit. Thisisagreatwayofkeepingupwiththecodebase, andlearningnewpracticesandtechniques.Ialso usecodeastherapy;wheneverIhaveawindowof opportunity,I’llcode,becauseI’llfeelbetterforit,and IamconfidentIcanmakethecodebasebetterinsome smallway.

Peter’skeyquestion:Howdoyoukeepyourtechnicalpeoplemotivated?

DanPink,authorofDrivehasreallygoodinsights onthis,andI’vefollowedhisapproachclosely.He doesn’tcoveroneimportantaspect,though:thepersonalconnectionsthatmakegroupsofpeoplework effectivelytogether.

Peter’sbackgroundstory

PeteristheDevelopmentManageratHooroo.com¹⁷. Hisroleincludesleadingthedeliveryteaminall aspects-technical,process,andpeople.Heactedas theTechLeadroleonabout15differentteamsand projectsbeforethat.

Peterisasoftwaredeveloperatheartandtakesgreat careinsharpeninghistechnicalskills,asrelevant skillshelphimmoreeffectivelyleadteams.Hisinterestscontinueinwell-designedobject-orientedsoftwareanddevelopingskilled,motivatedteamsthat delivereffectively.

¹⁷http://www.hooroo.com

Don’tForget Cross-Functional Requirements–Christy Allmon

WhatshouldaTechLeadfocus onandwhy?

MyroleasTechLeadchangesdependingontheteamsize,itsdayto-dayactivities,myownday-todayactivities,andwhatstageof thedevelopmentcycleweareat.

Ingeneral,Ithinkmycurrentrole isSMEfortheApplication(everyone–Analysts, Developers,ScrumMaster,Testers,IntegrationTeams, andCustomers–comestomewithquestionsand problems),aswellaspersonwhodecidesthepriorities andtechnical/applicationdirectiontobetaken.

Theprinciplesthatconcernmethemostare:-Maintainability:thecodehastobemaintainable!Ithink somedevelopersandcontractorsdon’tconsiderthe factthatothershavetocomeinafterthemandneedto beabletomaintainandtroubleshootthecode.Alotof toolsthatarenowavailablecanhelpwithmeasuring

this,buthavingbeenonlegacysystemsaswellas developmentefforts,myexperiencehasbeenthatan applicationisonlyasgoodasitsmaintainability.

•Hardcoding:doeverythingyoucantoavoid hardcoding.Ifthereisanywayatalltoavoid hardcodingavaluethat,inmyexperience,will change,doit!Ifitisclient-based(IworkonJava Swingfatclient),putitinapropertyorother kindoffile.Ifitisserver-based(backendofthe application),putitinadatabaseorprovidesome kindofclient-triggeredevent.Evenifyouthink itwillneverchange,itinevitablywill.

•Performance:Ioftenhavetomakesuggestions andverifythatperformancehasbeenconsidered inthelogicofthecode.Forexample,ifyou areloadingorprocessingdatamultipletimes,be mindfulofdoingthestaticstuffonlyonce.Also consideron-demandorjust-in-timeprocessing whereapplicable.

•Stability:weighinguptheriskofaparticular changeagainsttheimpactitmayhaveonstability.Mycontractordevelopersoftenhavegood suggestionsforbringinginnewapproachesor tools,butIhavetoweighupthebenefitsagainst therisks.

WhathasbeenyourbiggestchallengeasaTech Lead?

IwouldhavetosaythatthesituationIamcurrentlyin ismymostchallengingyet.Mytypicaldayinvolves somanymeetingsorteamdiscussionsthatIamina constantfluxofhavingtocontextswitchandIfind itdifficulttocompleteanyparticulartask.Ontopof that,itisrarethatIgetachancetocode,whichisthe partofmyjobthatIreallyenjoyandhonestlywhat Iamreallygoodat.Iamtryingtodomoreandmore teachingasthingsastheycomeupsothatmyteam canbemoreself-sufficientandhelpeachotherinstead ofrelyingonme.Iamworkingondelegatingmoreso thatIhavetimefortheimportantthingsandtoget mebacktoastatewhereIcancontributewithdoing someofthecoding.Inthepast,Ioftendidmuchof whatIliketocall“heavylifting”coding:thecomplex orcriticalpiecesoftheapplicationthatrequiredmy expertiseandskills.Ihaven’tbeenabletodothatfor quiteafewmonthsduetotheenvironmentweare currentlyin,butIhopetogetbacktothatsoon.

Anytime-managementtips?

Ihavetoprioritiseinordertomanagethedemandson mytime;Ihavetosaynotosomethingsordelegate whatIcan.Ialsoknowthattherearetimesina releasecyclethatwillrequireovertime.Itiscyclical andpartofthejobandifyouunderstandthatitwillall

eventuallycomeoutinthewash;youcanmanageit. Myfamilyhascometolearnthisimportantconcept andknowsthattherewillbetimeswhenIhaveto workabitmorethanothers.Butagain,tocounteract thesebusytimes,therearealsolulls.Duringtheselulls Icanre-energisemyselfandcatch-uponsomeofthe lesscriticalthingsinpreparationforthenextbusy cycle.Learningthisandunderstandingithashelped metodealwithitovertheyears.Ihavehadtomentor manyyoungprofessionalsonthisverysubjectsothey canlearnhowtodealwiththestressesandtime managementduringtheupswings.Itisrewardingto seethemgetthroughthehigh-efforttimesandsee themrelaxduringthelullstogetreadyforthenext bigpush.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

AsImentionedabove,mycurrentrolehasresulted inlimitedcodewritinganditisbeendifficultto dealwithpersonally.IamworkingondoingallI cantogetbacktoitthough.Partofthisstruggle hasbeenbringingmyteamtoaplacewherethey havemoreknowledgeabouttheapplicationandmore confidenceintheirowndecision-makingabilities.It hastobeatrade-offthatIdrivethroughandpartof itismelettinggoofsomeofthatcontroltothem –myconfidenceinthemtodowhat’sexpected.In

thatrespect,Iamtryingtotakeopportunitiestoteach aswellastodelegate.Itisalongprocessandone thatwon’timmediatelyresultinmegettingbackto writingcode–buthopefullyinthelongrun,itwill benefitmeaswellastheteam.

Christy’skeyquestion:Whatdoyouthinkareyour greatestcontributionstotheteamasaTechLead?

Mygreatestcontributionstothisteamaremyapplicationexpertise(Ijustknowwhereallthebones areburied)andmygeneraldevelopmentandproblem resolutionknow-how!

Ihavebeenaskedtoprovideateachingsessionto myteamonhowIgoaboutresolvingissuesand specificallygearedtowardsacoupleofissuesthat cameuprecently.Iwouldliketothinkthatsomeof myexpertiseonthissubjectisknowinghowtogo aboutgettingtothebottomofanissueandnottied specificallytothisapplication.AsImentionedbefore, Iamreallygoodatthispartofthejob–whetherit islearnedornatural–probablyalittlebitofboth. OneofthereasonsIwasaskedtodothiswasthat ittookme30minutestosolveanissuethatnumerous membersoftheteamhadworkedonfortwowhole dayswithoutresolving.HowwasitthatIcouldfind andfixtheissueinsuchashortamountoftime? Especiallynothavingbeeninthecodeforalong while?Iputtogetherageneraldocumentoutlining

mythoughtprocessandthequestionsIaskmyself whenfacedwithanissueliketheonewehadandthen sharedthatwiththeteam.

Theapplicationexpertisejustcomeswithtimeinthe codeandtakingthetimeandefforttoapplyittomemory.However,Ialsosuspectthatmanydevelopers don’tbothertogettothecruxofaproblem,functional area,orapplicationandsimplyglossoverthesurface, focusingon“what”itis.IthinkthefactthatIoften wanttoknowtherootcauseofwhyaproblemhas occurredhashelpedmebecomeaTechLead,asIam moreabletoanswerthedifficultquestionsofwhether wecandosomethingorwhatislikelytohappenifwe doit.Ifyoudon’tlookat“why”aswellas“what”, youcannotreallygettothatlevelofunderstanding. ThissameapproachisalsoapplicabletotheproblemsolvingImentionedbeforeandpartofwhatIshared.

Christy’sbackgroundstory

Christy’sskillsinanalysis,code,andresolvingproblemsmadeheraperfectfitfortheTechLeadrole, whichshehasplayedwithFortune500companiesfor thepast27years.

PrioritisingTechTasks–ChrisClose

WhatshouldaTechLeadfocus onandwhy?

ThemostimportantthingtoconsiderinaTechLeadroleis whenitmakesthemostbusiness andtechnicalsensetoperform architecturalmodifications/refactoring.Iftheseimportanttasks aren’tdoneattherighttime,thesolutionwillspiral intoamess.Butifyoudotoomuchofit,thebusiness mightnot“see”anyactualbenefits.

WhathasbeenyourbiggestchallengeasaTech Lead?

Ihadatoughtimeattemptingtoscheduleintechtasks intoasprintwiththebusiness.Aftertryingtoresolve thesituationmyselfwiththeproductowner,Ihadto getmanagershigheruptoagreethattheworkwas beneficialtotheendproductandthenhadthework scheduledinoverseveralsprints/iterations.

Anytime-managementtips?

Ensureyouhaveagoodteamofpeoplethatyoucan

handoverworktasksto.Thismeansthatyoucan feelconfidentinusingyourtimeforhigh-priority tasks/issuesrelatingtoinvestigationsoranalysis.Of course,youstillneedtocheckinwiththeteamon howthesetasksareprogressingandprovideassistancewherenecessary,butitdoesn’trequirelarge, continuousblocksoftime.

Anothergoodideaistokeepallworkinprogressvisibletoyouandtheteam.Thiswayanythingimportant willbetalkedaboutindailystand-upmeetings.You arethenalsoinabetterpositiontoleveragetheirtime lateronastheyareawareoftheprogressonthese tasks.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Thiscanbedifficultduetointerruptionstoaddress issuesthatcropup.Thiscanbesolvedbypairingfor code-writing,sothatyoucandealwithissuesorshort conversationsforafewminutesandreturntothecode whilestillmaintainingmomentuminthecodingtask athand.

Youneedtohaveabalanceandstillkeepyourhands inthecodesothatyoucanmakegooddecisionslater onbasedontheinfrastructureofthecodethathas beencreated.

Chris’skeyquestion:Howdoyoufeelconfident thattheworkscheduledisreadytobedoneby developersinyourteam?

Whileitmaynotmakesenseintermsofefficiency toundertakealargeamountofup-fronttechnical analysisbeforeastoryisstarted(becauseastorymay neverbestarted),itisimportantthatataskcanbe fullyunderstoodbyanydeveloperthatisaboutto startworkonit.

Thereareacoupleofstrategiestoachievethis:

•Ensuretheteamisawareofthebreadthand depthofataskwhileitisbeingplanned.Any assumptionsforthestoriesshouldbeincludedin thedetailofthestory,butcanbeflexible,based ontechnicalcommonsenseandbusinessneedsallpartiesbeinginagreement,ofcourse.

•Whenataskisstarted,holdawhiteboardsession wheretheteambrainstormsdifferentideasand solutionssothateveryoneknowshowtomove forwardwiththework.

Chris’sbackgroundstory

Chrishasbeenworkinginsoftwaredevelopmentfor 12yearsandfirstactedasaTechLeadin2007.He movedintohiscurrentTechLeadroleinthepastyear andmostofhisworkiswith.Netwebtechnologies suchasMVC4.

Bridgingthe BusinesswithTech

WhenadeveloperbecomesaTechLead,theirrelationshipwithotherpartsofthebusinessbecomes stronger.Theresponsesinthissectionoutlinewhy thoserelationshipsareimportantanddescribehow thenatureoftherelationshipchanges.

BuildingTrust

AsaTechLead,youspendmoretimewithnon-technicalstakeholdersandthisisagoodopportunitytobuild trust.Non-technicalstakeholdersaresuspiciousof wheretimegoes,becausesoftwareinvolvessomuch thatisintangible.TheTechLeadmustconstantlymanagetheperceptionthattoomuchtimeisbeingspent onactivitiesthatmaynothaveanyobviousvisible returnoninvestment.Ihavefoundthatcompanies withrootsinamoretraditionalretailbackgroundare moresusceptibletothisperception.

TheTechofaTechLeadhighlightstheneedtospend timeworkingontechnicaltasksandhowgainingthe

trustofnon-technicalpeoplegivesthedevelopment teammorefreedomtodowhattheythinknecessary. Oneofthebestwaysofbuildingtrustisbestsummarisedbythefollowingquote¹⁸:

Nurturingtrustwithnon-technicalstakeholderstakes time.TechLeadsfindawaytobalancetimebetween theteamandthosethatsitoutsidetheteam.Finding thisbalanceisastruggle;someofthoseinterviewed discussedhoweasyitwastoendupintoomuch technicaldetail.

FindingTimeforTechnology

ATechLeadmanagestechnicalriskandchampions theneedfortimeinvestedinquality,butthiscanonly bedonewithtrustfromotherparties.Findingenough timeisaconstantchallenge.Whentheteamspends toomuchtimeonsoftwarequalitywithoutdelivering value,youriskbreakingthetrustyouhavebuilt.

¹⁸https://twitter.com/jchyip/status/371823213421928448

Fortunately,spendingtimeonqualityissueshasa directpositiveimpactonend-usersorthebusiness, bymakingtheuserexperiencebetterandfaster,for example,orresultinginfewerrequestsforhelpand assistance.

Spendingtoolittletimeonsoftwarequalityleads tointernalqualityissuesandquicklyturnsintovisibleexternalqualityissues.ManagingtheTechnical Debt¹⁹isakeyskillfortheTechLead.

Everydeveloperhastheirownperceptionofacceptablequality.Somewanttoperfecttheircode,spendingsignificantlymoretimeoverit;otherstakeahackand-slashapproachthatfavoursfastfeedbackbut resultsinanunmanageablemess.TheTechLeadis ultimatelyaccountableandmustmonitorwhereand whentotakeeachapproachbasedonvaluebeing delivered.

MakingTechnologySolutionsEasy toUnderstand

Developersarestereotypedashavingpoorcommunicationskills.Youprobablyrecognisethecharacteristics:-theygoonendlesslyabouttechnicaldetail,not pausingtoaskquestionsoftheotherpersonoreven

¹⁹http://martinfowler.com/bliki/TechnicalDebt.html

ensuringtheyareonthesamepage;theyassumethat theotherpartiesknowallthetermstheyareusingand thebroadercontext.

ATechLeadhastodeveloptheessentialskillof helpingnon-technicalpeopleunderstandandrelateto thetechnicalissueswhennecessary.Theydrawupon thecommunicationtoolsofsimplediagrams,collaborativewhiteboardsessions,metaphorsandsimple, clearlanguagewithminimal(orbetteryet,non-existent)useofacronymsandtechnicalterms.Theyput themselvesintotheshoesofnon-technicalpeopleand anticipatewhenatechnicaldetailmightbeimportant, introducingtechnicalterminologyinanon-threateningmannerthatdoesnotleavetheotherperson feelingstupid.Theyeducatewithcarebecausethey recognisethatsomepeopledonotwant,orneed,to knowacertainleveloftechnicaldetail.

TheTechLeadisconstantlyawarethatnotallproblemscan,orshouldbesolvedbytechnicalsolutions. TheTechLeadbuildstrustwithnon-technicalpeople. OnlyaftergainingtrustcanaTechLeaddescribe thedownfallsofaparticularsolutionmoreopenly, describingwhyonetechnicalsolutionproposedmay failtosolvetheproblem.Theyalsoworktopasson thenecessarycommunicationskillstoothermembers ofthetechnicalteamsothebusinessdoesnotrely onasingleperson.Theyprovidefeedbacktodevelop-

erswhentheywitnessanon-technicalpersonbeing overwhelmedbytechnicaljargonandencouragethe useofwhiteboardstovisualiseandfinddifferencesin understandingbetweentechnicalandnon-technical members.

InfluencingPlanning

OrganisationslooktotheTechLeadforinputduringbudgetingandplanningcycles.Zeroinvolvement fromtheteamoftenleadstoover-commitmentand technicalrisksbeingoverlooked.AstrongrelationshipbuiltontrustcreatesopportunityfortheTech Leadtoinfluencetheplanningprocess.

Duringthisplanningprocess,theTechLeadspots businessopportunitiestousetechnologybasedonlow effort,ortobringvisibilitytohighareasoftechnical risk.TheTechLeadiscarefulnottoover-commit,as theyareawaretheydonotknoweverything;committingtheteamwithoutitsinvolvementcreatesfuture tensioniftheplangoeswrong.

Underpromiseandoverdeliver-TomPeters,from“InSearchofExcellence”

TheTechLead’sinfluenceovertheplanningprocess ispotentiallygreat,butyoumustbewareofspending

toomuchtimeonit.InvolvementinplanningprocesseseatsintotimeaTechLeadspendswiththeteam andthecodebase.ThemoretimeaTechLeadspends awayfromtheteamandthecode,themorelikelythey toowillunderestimatecomplexityorunknowingly takeonadditionalrisk.

InvolvementintheplanningprocessgivestheTech Leadgreaterinsightintoupcomingareas.Knowledge aboutplansforthefuturemakesforbetterdecisionmaking,particularlywhenarbitratingbetweenwhatifscenariosinthecodebase.

ChampioningBusinessNeeds

Asyouspendmoretimeclosertothebusiness,the TechLeadappreciateswhatistrulyimportanttothe business.TheTechLeadusesthisknowledgetomake theteammoreawareoftheiroperatingcontext.The TechLeadclarifiesthecurrentgoalandremindsthe teamhowtheirsoftwaremovesthebusinesstowards thegoal.

Aclearerunderstandingoftherealgoalhelpsdevelopersmakebetterchoices.Forexample,onedesignmay requiremoremanualprocessingbyend-users,butthe softwarefunctionmaycaterforanedgecaseandthe returnonthetimeinvestedbythedevelopmentteam

maynotbehighenoughandcouldmakechanging businessprocessesdifficultinthefuture.

Incontrast,ifanerrorinthesoftwarethreatensessentialcashflowforthebusiness,regardlessofhow rare,thedevelopmentteammightspendadditional timebuildingaqualitydesign.

Technicalchoicesrarelyexistoutsideofabusiness contextwheretimeisconstantlytradedoffwiththe hopesofbetterreturns.TheTechLeadbuildsawarenessintheteamthatgoesbeyondthekeyboardand thesystemsbeingbuilt.

TheBigPicture–LucaGrulla

WhatshouldaTechLeadfocus onandwhy?

ATechLeadhastoclearlygrasp thebigpictureoftheproject. Theyneedtounderstandwhat theexpectedbusinessgoalisand helpateamtotransformthatidea intoasystem.

Toachievethegoaltheyhavetofindthedelicate balancebetweenadeliverypacethatsatisfiesbusiness needsandmaintainanoveralltechnicalqualitythat enableslong-termreturns.

WhathasbeenyourbiggestchallengeasaTech Lead?

Ifindthebiggestchallengeisinco-ordinatingand mediatingbusinessneedswithtechnicalneeds.

Afewyearsago,Ijoinedaprojectstrugglingto meetafixeddeadline.Thedeadlinewasstrictdue tothespecificnatureofthebusinessandmissingit wouldhavesignificantlyaffectedtheproject’sreturn oninvestment.

Isawproblemsatdifferentlevels:

•Aproductownerthatoftenchangedtheirmind

•Ateamconstantlyinterruptedandsidetracked withextrafeatures

•Ateamstrugglingwithmotivationtomeetthe deadline

Inthiscontext,Ifocusedonseveralareas:

•Shakinguptheteamtoclarifytheseriousimplicationsofthedeadlineandensureweputin extraeffort.

•Workingwithdeveloperstoidentifythepartsof thesystemcausingthemostpain,andplanning howtoimproveorrewritethemwhilstdeliveringtheplannedfeatures.

•Monitoringtheextrafeaturestoavoidunnecessaryscope,andworkingcloselywiththebusinessownertoidentifythosefeaturesthatadded businessvalueandwereessentialtodeadline.

Anytime-managementtips?

AlthoughTechLeadtimeisprecious,itisimportant tobeavailabletoanyonewhoneedstotalk.Itryto createanenvironmentwherepeopleknowIamthere tohelp,bothfromabusinessandfromatechnical

perspective.Iencouragepeopletocomeandtalk freelytome.IfIcannotrespondimmediately,Itry togetbacktothemassoonaspossible.

Itrytominimisetimeinformalmeetings.Although Iamsentmanymeetinginvitations,Ineverdecline them.IfIdonotfeelIwouldaddmuchvalueto themeeting,Iasktheorganiseraboutthegoalofthe meetingandtheirexpectationsofme.Iftheyconfirm mysuspicion,orIamnotinterestedinthecontent, thenIaskifitisokaytoskipit.

Insteadofformalmeetings,Ipreferanenvironment whereothersfeelcomfortabletalkingtomecasually. Handlingdecisionsinalessformalwayisoftenmore timeeffective.Obviously,thisisnotalwayspossible becausepeopleindifferentroleshavedifferentexpectations,inwhichcaseItrytoplanaheadsothatIdon’t havetokeepjumpingintothings.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Itdependsontheneedsoftheproject;aTechLead needstobeslightlylesshands-onsometimes.Tech Leadsneedtodevelopa“sixthsense”skillofunderstandingwhatishighprioritygiventhecontext. Sometimesyoufeeltheprojectneedsmoresupport fromabusinessperspective;sometimesyouhaveto appreciatethattheteamiswrestlingwithtechnical

issueswhereyoucanhelpbybeingdirectlyinvolved. Thetrickypartisnotlettingoneofthetwoaspects take100percentofyourtimefortoolong.Ihave founditisparticularlyeasytobecomeheavilyinvolvedinthebusinesssideoftheproblemsfora certainamountoftimetolosetrackofthetechnology. ThereareperiodswhereI’mawareIcan’tcontribute muchtotheoveralltechnicaldeliveryandItrytostay intheloopandfocusonhelpingtheteamconcentrate onouroverallarchitecture.WhenmyfocusasTech Leadisgivinginputtothebusinessside,suchas adviceandtechnicalsupport,Ikeepbrowsingthe codebasetounderstandtheoveralldirection.Italk withtherestoftheteamaboutthedailyproblems theyaretryingtosolve.Informalchatstoandfrom luncharegreatforthis.Ikeepacloseeyeonthestory flowonthewalltohaveamentalmapofhowthe systemisgrowing.IfIfeelwearelosingdirection,I trytoremindtheteamoftheoverallplanandwhatthe expectedbusinessvalueis.Imightdothisfollowing thestand-up,orwithanimpromptugatheringwith allthetechnicalpeopleattheendoftheday.If anotherteammemberisstronglyadvocatingachange ofdirection,Imightsitwiththemtounderstandtheir reasoningandtofindoutiftheyhavediscovereda betterdirectionthantheonecurrentlyplanned. ItrytosetasidededicatedtimesothatIcancode

withoutinterruptions.Anideal,forme,ishalfaday. SometimesIbooktimeout.IfI’mapproachedwitha non-urgentissuewhileIamcoding,Ioffertoaddress itlaterintheday.Peopleareokaywith,“Canwetalk aboutthislater?”aslongasIofferanalternativetime getbacktothem.Makesureyouactuallydogetback tothemwhenyouagreedanddon’tpostponeagain atthelastminuteasyouwillstarttolosetrustwith yourteam.Thisapproachgivesmetheabilitytofocus oncodingwhenIstartpairing,butstillmakesme availableforothers’needs.

Luca’skeyquestion:WhatisthemosturgentlessonaTechLeadshouldlearn?

AsTechLead,youwillbepulledinmanydifferentdirections.Youwillbeoccupiedwiththeoverall architecture;providinginputtoandsupportingthe business;discussingandplanningforthepathto production,andsometimesreshapingtheteamby rollingpeoplein(orout).Withsomanydifferent responsibilities,youneedtoacceptthatyouwillnot beabletoinfluenceeverypartofthesystem.Inthis role,youcanhavethefinalword,butuseitwisely.If youseesomethingyoudonotagreewith,askyourself, “Isitjeopardisingtheoverallsuccessoftheproject?Or isjustamatterofmypersonaltaste?”

Yourroleshouldbetokeepontopoftechnicalissues thatmightleadtoaprojectfailing.Youmustlearn

torecogniseandacceptfeasiblealternativesolutions -notjustyourown,andparticularlyifitisnotwhat youmightdoifinthesameposition.Workingwith theteamtodevelopalternativesolutionsengages themandcreatesastrongsenseofownership.Doing itallyourselfintroducestheriskofyoubecomingthe bottleneckandasinglepointoffailure.

Luca’sbackgroundstory

Lucahasleadaboutsixteamsinhis12yearsworking withtechnology.HiscurrentroleisactingasaSenior SoftwareEngineeratuSwitch²⁰.BeforethatLuca spentfouryearsatThoughtWorksasaTechLead.

²⁰http://uswitch.com

AlignTechnologywith Business–RobertAnnett

WhatshouldaTechLeadfocus onandwhy?

TheTechLeadkeepstheteam ontracktodeliverthebusiness requirements,whilemakingsure thesearewithinthenon-functionalrequirements.

Itiseasyforadevelopmentteam tolosesightofwhattheiremployeractuallywants andinsteadfocusontheirowngoals.Forexample, theyworrymoreaboutusingcooltechnologiesor hittinganarbitraryunittestcoveragemetricrather thanwhattheenduseractuallyneeds.

WhathasbeenyourbiggestchallengeasaTech Lead?

Mymostchallengingsituationwasonewherethe mainenduserwantedtheprojecttofail.Thisismore commonthanmostITworkersrealise;mostpeople don’tlikechangeandareplacementITsystemmay endangerthecurrentuser’sjob.Thisoftenleadsto usersdeliberatelywithholdinginformationandop-

posingreasonablefunctionality.

HowdidIhandleit?Iadmit:badly.Developerstend tolookfortechnicalsolutionsandforevery“hand grenade”thrownbytheenduser,Itriedtowork arounditasatechnicalproblem.Thisleadstohard workandconstantchange.Ultimatelyitisapolitical issueandthesolutionisalsopolitical;forexample,I couldhavetriedtogetbuy-infrommanagementto implementthechangeandstopanysabotage.

Anytime-managementtips?

Planandkeepaneyeonthebigpicture.Itiseasyto getboggeddownintheminutiaeofatechnicalissue. Youneedtoknowwhento‘declarevictory’overa problemandmoveon.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Ifyouhaveresponsibilitiesbeyondwritingcode,they takepriorityandyouneedtoensureyourcode-writingtasksarenotonthecurrentcriticalpath.Thisisto avoidblockingothers’progressifyoucannotworkon itforawhile.Youalsoneedtomakesureyouaren’t theonlypersonwhoknowsaparticularbusinessarea ortechnologyforthesamereason.Pairingwithjunior membersoftheteam(onwhatevertheyhappento beworking)isgood,asispairingwithanyoneonthe criticalpath.

Robert’skeyquestion:“Howdoyoudealwith conflictswithintheteam?”

Thesecanbedifficultforsomeonefromatechnical background.Thekeyistoremainprofessionalandnot becomeemotional.Avoidsendingemailwhileyouare annoyed.Bedirectandhonest.Staycalm,detached andmediate,butonceyou’velistenedtoeveryone thenyoumustmakeadecisionandsticktoit.Itisalso goodtoleteveryonehaveavictoryonceinawhile. Forexample,ifsomeonereallywantstouseacertain templateforthewiki,letthem.

Robert’sbackgroundstory

RoberthasworkedinITsince1995.Mostofhiswork hasbeenwithbackendsystemswithlargesetsofdata beforetheterm“bigdata”becametrendy.Inthattime hehasplayedvariousroles,includingaTechLeadfor anumberofteams.Hismostrecentexperiencewas workingina“frontoffice”roleforafinancialinstitute wherehefindstherolemorereactive.

MappingtheFuture–Jason Dennis

WhatshouldaTechLeadfocus onandwhy?

Iworryaboutthetechnologybeingusedandwhatweshouldbe usingforthefuture:istherea betterwaytodowhatweneed todo?Ialsoworrywhetherthe codebeingproducedbytheteam followsmydesignandcodingguidelines;Iamabit pedanticaboutthatsometimes.

Ifocusonimprovingperformance;Iwantitquicker;I wantGooglespeed,becausecustomerswon’twaitfor thepagetoload.Ialsowanttofocusonimproving theteamskillsanddevelopingskillsthatgetpeople movingthroughthecodeissuesfastersowecanfocus onbiggerissues.

WhathasbeenyourbiggestchallengeasaTech Lead?

Themostrecentwasaplatformupgradewherewe usedanoutsidevendorfortheproject,buttheydidn’t understandourbusinessmodelandsomadeassump-

tionswecouldneversupport.Oneinstancewasthecominglingoftheadminandfront-facingwebsiteinto onesite:Ihadtosplitthembecausemixingtheadmin withthewebsitewouldbringallkindsofproblems, notleastofwhichwerepoordesignchoicesbythe vendor.

Eventhoughtimewasextremelytightandpeoplesaid itcouldn’torshouldn’tbedone,Idecidedtodoit becauseitwasbestforthecompany.Ialsodesigned theentiresolutionsoitfittedbestpractices.

Anytime-managementtips?

Itrytoansweremailsastheycomesopeopledon’t sendmoreemailsaskingwhyIhaven’tanswered them.Ialsotryandcarveoutsetperiodsoftimeto focusonataskifIneedto,butItrytoavoiddoing thisifpossible.

ForprojectsItrymybesttoestimatecorrectlybased ontheassumptionthatIwon’tbeworkingonthe projectallthetimebutwillhaveotherthingstodeal with.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Balanceistrickyandsometimesyoujusthavetogo withtheflowofwhatishappeningatthetimerather thanwhatyouwouldliketobedoing.

Jason’skeyquestion:HowdoIbecomealeader?

Learnandgrow.Youneedtolearnallyoucan,never sitstillbecauseyouhaveenoughtodointhejob;keep onsuckingdownknowledgeaboutnewtechnologies andnewbestpractices.Helpotherstogrowintheir rolesoyoushineasaleader.

Jason’sbackgroundstory

Jasonhasbeendoingthissince1995andhasbeen aroundcomputerssince1982.HehasplayedtheTech Leadroleafewtimesatdifferentorganisationswith bothlocalandremoteteamsoverthecourseofabout nineyears.Hisinterestsarevaried,butwhenwork allowshelikestoworkonremodellinghishouse aswellasreadingandkeepingupwithdifferent technologiesandseeingwhatisoutthereintherealms oftechnology.

FindingBalancewiththe Business–CoryFoy

WhatshouldaTechLeadfocus onandwhy?

Ithinkthemostimportantthing aTechLeadshouldfocusonisthe balancebetweendeliveringcustomervaluerapidly,andmeetingtheneedsofthearchitectural plan.Toooften,customersare askingusforthingstheydon’tknowtheydon’tknow. Theywon’tbeabletogiveusmeaningfulfeedback untilwehavedeliveredsomething,sothelongerwe waitbeforegettingthatfeedback,themorewrongwe couldbe.Butthathastobebalancedwithavisionof thearchitecturetobuildahigh-qualitysystem.The trickistodeliverthatvisionbybuildingsmallslices ofvaluethatarepotentiallyshippable.

WhathasbeenyourbiggestchallengeasaTech Lead?

Peopleandcommunication;IthinkforanyTechLead, thepeoplechallengestrumpjustabouteverysingle technologyone.WhenIworkedatMicrosoft,we weredroppedintoclientsiteswherethesystemswere

downandcompanieswerelosinglotsofmoney.The waytheytrainedusforthatwasbyputtingusthrough athree-week,soft-skillsbootcamp.Forthatreason, IrecommendTechLeadslookingatthesoftskills side,andbookslikeCrucialConversations:Toolsfor TalkingWhenStakesAreHigh,HowtoArgue&Win EveryTime:AtHome,AtWork,InCourt,Everywhere,EverydayandBehindClosedDoors:Secretsof GreatManagement.

Anytime-managementtips?

Makeeverythingvisible:forpersonaluse,thingslike PersonalKanbanareinvaluabletechniques.Visualisingtheworkyouhavetodo,andhowlongitistaking isinvaluable.

Ialsodon’tworryaboutreplyingtoeveryemail immediately.Idon’tdoInboxZero²¹,butIdoleave emailsthatneedtobehandledasunread.Ithengo backwhenIhavefreemomentsandsortbyunread, andstartworkingfromthebottomup.Ittakestime, butIgettothemalleventually!

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

AsaTechLead,myfirstresponsibilityismyteam,not mycode.ThatmeansImightworklongerhoursthan othermemberstokeepupwiththe“same”workload.

²¹http://inboxzero.com

OrImightnotbeabletotakeonasmuchworkas them.Mostofmytimeisfocusedonteachingand understandingthechallengesoftheteamtoensure theyareworkingassmoothlyaspossible.Itisnot alwayseasy-therearecertainlytimeswhenIjust wanttoputonheadphonesandcode,andsoIdo.But thatcannotbeallthetime.

Cory’skeyquestion:HowdoTechLeadsprepare otherstobeTechLeads?

IoftenseeTechLeadsorarchitectswhodonotwant togivetheirpositionuptoothers.Wefocusonmentorshipandgrowth.ThewaythatIprepareothersis bypushingdecisionstothemandlettingthemmake mistakes.

Cory’ssecondquestion:Howdoyoulearn,grow andkeepupwithnewtechnology?

Ithinkoneofthebigideasbehindthecraftsmanship movementisthatyouasanindividualareresponsible foryourgrowth-notyouremployer,notyourleads oryourmanagers.Ifinditisimportanttotaketimeto investinyourself.Dosomereading.Attendorpresent atconferences.Participateinusergroups.Allofthese activitieshelppreventyoubecomingstagnant.

Cory’sbackgroundstory

Coryisatechnologistandchangeagent.Helovessoftwaredevelopmentandispassionateaboutgrowing organisations.Hehasworkedwithsoftwareforthe past15years,workingandspeakingwithteamsall overtheglobe.

ABridgetotheBusiness–RyanKinderman

WhatshouldaTechLeadfocus onandwhy?

Ihaveoftentoldbyprojectmanagersandotherdevelopersthat Iwasthe“acting”TechLead, whichtomeimpliedthatIwas theteammembermosteffective inworkingwithpeopletounblocktheteam,guideustocorrectdecisionsontopicsofsoftwaredesign,andhelpwithareassuchas projectplanningandexpectationsetting.That’swhat aTechLeadhastodo.It’spossibletosharelead responsibilities,orforaleadtorelinquishorspread leadershipresponsibilitiestofocusontechnicaldetails forawhile.

Technicalprojectsarecomplex,andtheprincipalthing thatIfeelImustdoasaTechLeadisactasthe communicationbridgebetweenthenon-technicaland technicalstakeholdersontheproject.AsTechLead,I needtobeabletoexplaintechnicalconceptstonontechnicalstakeholdersinawaythattheyunderstand andfeelcomfortablewith.Imustalsojustifythe

technicaldecisionsbeingmadetobothnon-technical andtechnicalstakeholders,oftencomparingthose decisionswithpossiblymanyavailablealternatives. Imustalsohelpthetechnicalteamunderstandthe contextforthefunctionalitybeingbuiltaccordingto whatI’velearnedbycommunicatingwiththeproject managerand/orclientstakeholders.Tobeabletodo thisrequiresawidevarietyofskills,bothtechnical andinterpersonal.

Onthetechnicalsideoftheproject,otherresponsibilitiesincludeworkingwithothertechnicalteam membersto:

•Decidewhattechnologytouse

•Understandhowtousethetechnologyproperly todeliverthedesiredfunctionality

•Establishanapproachforthedevelopmentthat willbedonetobuildthenecessaryfeatures, including:

•Howthedevelopmenttasksshouldbebrokenup, organised,andprioritised

•Maintainingahighlevelofqualityforwhatis developed

•Protectingdevelopedfunctionalityagainstregressionasbehaviourchangesovertime

•Earntherespectandtrustof,andactasan equalto,thedevelopmentteambyparticipating

incodereviewsand/orpairingondevelopment tasksandfacilitateanopendiscourseondecisionsbeingmade.

GiventhebreadthofskillsandunderstandingrequiredtobeTechLead,ittookmeawhiletonarrow downthecoreresponsibilities.Mostofthetimeit isn’tenoughtocoveronlythosecoreresponsibilities. Sometimesaprojectlacksaprojectmanager,orthe projectmanagerlackstheexperienceorknowledge toapplytherightmanagementprocess.Sometimes thetechnicalteamdoesn’thavetherightskillmix,or thereisadisproportionatenumberofjuniortosenior developersontheteam.Insuchsituations,theTech Lead,iftheprojectisluckyenoughtohaveone,must assumesomeoftheresponsibilitiesoftheseotherroles inorderfortheprojecttobesuccessful.

Whatareyoursecretstomanagingtime?

Whenitcomestomyworkandprofessionallife,I prioritiseobsessively.Itryveryhardtomakesure thatIhavealistofallofthethingsthatneedto,or potentiallyshouldeventually,getdoneacrossprojects, goals,andcontexts.Ireviewthislistregularlyand makesureit’saccuratelyprioritised.Ithenwork throughtheitemsonthelistonebyonewithastrong focus.Itryandpauseatregularintervalstocheck emailorcollaborateinotherways,sometimesasa

resultofitemsinmylist,butusuallytodealwith externalactorsthatarechangingconditionsoutside ofmyfocusthatIneedtostayabreastofandwork intomyownprioritisedlist.

BymakingsurethatIhaveaprioritisedlistofthings thatIneedtodo,IgenerallyknowthatI’mspending mytimeontherightthings,intherightorder.Ifit feelsasthoughI’mnotgoingtobeabletoaccomplish time-sensitiveitemsfromthelist,Iraisethisasaconcerntoothers,andtrytodelegateorupdatepeople’s expectationsofwhenitwillgetdone.

Howdoyoustrikethebalancebetweenwriting codeanddealingwithotherissues?

AsTechLead,Ioftenwritecodetogainanaccurate understandingoftheexperienceofadeveloperon theteamI’mleading,andtocommunicatewiththe developersatanequallevel.Bycodingwiththe developersontheteam,orreviewingandproviding feedbackontheircode,Ilearnabouttheirpersonalitiesanddevelopmentstyles,aswellasstrengths andweaknesses,andtheylearnaboutmine.Itistimeconsumingthough,andIdon’thavealwayshavethat luxury,especiallyinsituationswhereI’mjoininga projectthathasbeenunderwayforawhile.

Ineedtohaveabroad,intimateunderstandingofthe technologiesbeingused,andavisionofthestructure

oftheentitiesinthesystemandinteractionsbetween them.ItusuallyturnsoutbetterifIspendtimealone gettingtheapplicationrunningonmydevelopment machine,tracingthroughtherelevantareasofcode, thinkingaboutdesignimplications,diagrammingout nontrivialbits,writingtestcasestoconfirmassumptionsoranswerquestionsonhowthingsareworking, andsoon.Idon’tconsultanyoneduringthisprocess; Ilearnthingsonmyowntermsandcometomy ownunderstanding.Onlyafterthisprocess,doIcheck myassumptionsandunderstandingwithothers.By followingthispractice,Ilearnthingsatamuchdeeper level,avoidbotheringtheteamwithtediousquestions, andgainrespect.

Inadditiontopairing,development,andanalysisof thesystem,Itryandrevieweverybitofcodethat goesintothesystem.It’softenimpossibletoreview andprovidefeedbackoneverycommit,butatleast byreviewingeverycommit,Icanprovidedeferred feedbackinvariousways.IfInoticesoftwaredesign issuesemerging,Icanconsiderincludingtimeto addressthemwhenscopingfuturework.

Someactivities-productreviewmeetings,high-level scoping,breakingdevelopmenttasksoutforupcomingcycles-taketimefromreviewingorworkingwith thecodegoingintothesystem.SomethingsIneed toparticipatein,butrelativelyinfrequently,usually

onceaquarterorso.Ithinkit’simportanttotryand timethishands-onworktobedoneduringstable orinactiveperiodsfortheproject.Productreview meetingscanusuallybeattendedbyadevelopmentor projectmanager,whowillreportbacktomeandthe team.Breakingdevelopmenttasksoutforupcoming cyclescangenerallybedistributedtothedevelopment teamasdevelopmenttasksthemselves.Thisapproach maynotworkiftheteamisprimarilyjuniororhas issues,buttheprojectshouldberestrictedinsuch casesanyways.Regardless,Iwilltrytotakeonany orparticipateinparticularlytrickyorcriticaldevelopmentbreak-outworkmyself.

Sometimes,iftherearegreaterissuesthatdetractfrom mytimetorevieworwritecode,Iassesswhetherthe teamcanmaintainareasonablelevelofcodequality foraperiodoftime,whileIaddressthoseissues.If thereissomeoneontheteamthatIcanleanonto keepthebarforqualityhigh,Imightdothat.IfIdon’t feelabletoleavetheteamtomaintaincodequality, Ilettheprojectmanagerorclientstakeholderaware ofthisfact,andthecostofcontinuingdevelopment. Bydoingthis,Iaffordthemtheopportunitytoset properexpectations,budgets,orwhateverisnecessary tocorrectthesituation,ordealwiththepotential consequencesI’veidentified.

Ryan’skeyquestion:Whatactivitiesareimportant foraTechLeadtoengageinoutsideofworktostay vitalandrelevantinthefield?

Listedinorderofimportance:

1.MaintainbalancebetweenworkandlifeIbelievealldevelopersincludingTechLeadsshould spendtimelearningandimprovingtheirskills. Sometimeslearninganewlanguageorparadigm absorbslongperiodsoftimethatupsetother partsofyourlife.Itrytokeepahealthybalance betweenprofessionalgrowthandpursuingmy otherinterestsbybreakingbiggertasksinto smallertasksthatcanbecompletedinafew hours.

2.Developadeepunderstandingofgoodsoftware design,goodpracticesanddifferentdevelopment stylesOurindustryisbroadanddeepwithmany specialitiestolearnfrom.Iseektolearnabout conceptsthattranscendanyspecificimplementationorprogramminglanguage.Forexample, thefamousbookDesignPatternsbecamemy biblebecauseyoucanapplytheseconceptsin manycontextsandprogramminglanguage,not justonespecificplatform,toolorproduct.

3.Stayconnectedasmuchaspossibleonhard technicalskillsEventhoughIwillneverknow

everything,it’susefultoreadandsometimes experimentwithawidevarietyoftechnologies. ReadinginvariedareasoftenendsupserendipitouslyrelevanttoaproblemIamworkingon aweekortwolater.Itrytoreadbroadlyacross awidevarietyoftechnologiesandproblemdomains,suchaswritingaLinuxkernelmodule throughtothestructureofanEPUBfile.Ipayfor asubscriptiontoafewprofessionalpublications suchas“LinuxMagazine”and“CommunicationsoftheACM”ontopofthewebsitesand blogsIsubscribeto.Iexperimentwithprojects onasmallVirtualMachine(VM)labathome builtwithLinuxandkvm.UsingVMsallowsme tostartandstopexperimentsquickly.

Ryan’sbackgroundstory

Ryanwasinterestedincomputersfromaroundthe ageof10andknewhewantedtodosomethingwith computerswhenhegrewup.HestudiedComputer ScienceattheUniversityofWisconsin,Oshkoshand aftergraduatingwentontoworkforaUSBankasa softwaredeveloper,wherehelearnedasmuchashe couldaboutusercases,agilemethodologies.

HethenmovedtoThoughtWorks,wherehelearned aboutagileprojectmanagementanddevelopment practices. HehasbeenaTechLeadforaboutfiveyears.

You

WhenIfirstreadtheresponsesinthissection,each personseemedtofocusonhowtheyapproachedthe TechLeadrole.Onepersondescribedtheirapproach changingasthecontextchanged.ManyTechLeads alsoremarkedonbecomingmoreself-aware;especiallyremainingvigilantagainstbeingabottleneck ofinformationordecision-makingabilityintheteam. WhatIespeciallyenjoyeddiscoveringfromthese interviewswasanappreciationofhowyoucanshape theTechLeadroletobestfityourskillsandstillbe successful.

AdaptingtoNewCircumstances

Whenadeveloperencountersanewproblem,oranew libraryorprogramminglanguage,theymustdraw uponnewskills.Likewise,theTechLeadmustdraw upondifferentskillstohandledifferentsituations.The skillsrequiredtobeapartofabusinessplanning cycle,forexample,aresignificantlydifferentfrom thoserequiredtomanagetechnicaldebt.

Changesintheteamalsorequireachangeinfocus fromtheTechLead.Adeveloperleavingtheteammay leaveaknowledgegaporadditionalresponsibilities. TheTechLeadmonitorsforgapsandfindswaysto bridgethem.Incontrast,anewdeveloperjoining theteammayhaveacompletelydifferentcoding orworkingstyleandtheTechLeadmustnowfind waystorealigntheteamintegratingtheapproaches broughtbythenewperson.

ATechLeadhastohandlemanymorevariedsituationsthantheydidasadeveloper,oftenwithlittle practiceinnewskills.Youneedtodevelopabroader skillsettobettercopewiththesenewsituations. Attendtrainingcoursesorreadbooksthatimprove yourcommunicationskillsandawarenessofpeople andteambehaviours.

BecautiouswhenyoudroptheTechLeadroletoplay thefull-timedeveloper.Broaderissuesmayremain unnoticedandescalateunobserveduntiltheyaretoo bigtosolvequickly.

MakingYourselfRedundant

ThenewerTechLead(mistakenly)seestheirroleas apersonwiththedeepesttechnicalskills.Theythink theymusthavethefinalsayontechnicaldecisions,

andmustsolveallofthemostdifficulttechnical problems.

TheseinterviewshighlighthowtheTechLeadisrarely thepersonwiththedeepesttechnicalskills.AneffectiveTechLeadmustbetechnicalenoughtofacilitate meetingswithdevelopers,orfindwaystoresolve disagreementsontechnicalmatters.Howevermany TechLeadswroteabouttryingtoconstantlyfindways todelegateresponsibilitiestotheirteam.

WhenaTechLeaddecidesonallthetoughproblems orkeepsalltheinterestingwork,thefollowingscenarioscouldarise:

•Apersonstartstofeeltheyaredoingallthe“boringwork”anddecidestherearemoreinteresting opportunitieselsewhere

•Apersonfeelsasthoughtheyarenotvaluedfor makingimportantdecisions,andseeksaplace theyaremorevalued

•KeydecisionsstallbecausetheywaitfortheTech Lead,whoisbusywithotherresponsibilities

•AsaTechLead,youfeelstressedbecauseeveryoneisconstantlyaskingforyoutomakea decision

Toresolveadecision-makingbottleneck,theTech Leadfindswaystodelegatethistotheteam.Effective

delegationmeansassigningtherightpersontothe task.ThisrequirestrustbetweentheTechLeadand theirdevelopersandunderstandingwhatskillsand knowledgeeachpersonhas.AneffectiveTechLead constantlyworkstowardsthis.

IfyouaretheTechLeadandthemosttechnically competentperson,youshouldstartgrowingothersso youcandelegatedecisionsinthefuture.Inanything otherthanthesmallestofteams,youcannotdesign andimplementfunctionalityandcovertheotherTech Leadresponsibilitieseffectively.

UsingYourOwnStrengths

Alltheseinterviewshighlighthowpeopleapproach theTechLeadroleinmanydifferentways.Each persondiscoveredtheirownstrengthsandfounda waytoputthemtouse.Theyalsofoundthatsome tasksdidnotplaytotheirstrengthsbutstillneeded doing.UsebookslikeStrengthsFinder2.0tolearn moreaboutyourself.

SomeTechLeadshavestrengthsincommunication. Theydevelopstrongrelationshipswithbusinesspeoplebecausetheyeasilytranslatetechnicalmatterin waysthatnon-technicalpeoplefindsimpletounderstand.Theircommunicationskillshelpthemharmonisetheteamworkingtowardsthesamegoaland

clearlyarticulatewhenthingsgowrong.

OtherTechLeadshavestrengthsinseeingthefuture. Theyarebetteratprojectingthefutureimpactof decisionsandeasilymanageTechnicalDebt.They knowwhentoinvesttimeinburningtechnicalissues, orwhentoshiftinto“gettingstuffdone”mode.

PerhapsaTechLeadisstronginrelationships,both understandingtheconflictsemergingintheteam, closelygettingtoknoweachperson,theirhopesand goalsandfindingwaystoalignindividualandteam objectives.Theyunderstandtheneedtodeveloptheir people,andcreateasafenurturingenvironment.

Spendtimeunderstandingyourself.Thenspendtime findingwaystoapplythosestrengthstotheroleof TechLeadtomakeityourown.

ManagingYourself–Stephen Hardisty

WhatshouldaTechLeadfocus onandwhy?

AsyoumoveuptheTechLeadershipladder,youaregiven moreresponsibilityandadifferentkindofcontrol.Asadeveloper,youareresponsibleforcomingupwithneatsolutionstowelldefinedproblems;asTechLead,youareresponsible forcomingupwithlargesolutionstooftenill-defined problems.Thismeansyouaresettingoutavisionand relyingonotherstowritethecodethatimplements thisvision,whichcanbefrustratingtobeginwith.

Itisimportanttoresistthetemptationtostepin andtakeover.Instead,youhavetoexercisethenew controlyouhaveinherited:tomakethedevelopers aroundyoubetter.Thewillingnessandabilityto makethepeoplearoundyoubetterattheirjobsmakes thedifferencebetweenamid-levelandaseniordeveloper.Thegreatthingaboutmakingpeoplebetterat theirjobisthatithelpsyouunderstandwhoonthe teamismotivatedbyachallengeandself-improve-

mentandwhoiscontentwithbeingadequate.

Thenexthurdleisdefining“better”.Inrawterms,it oftenmeansdeliveringatapredictablerate,rarely screwingup,deliveringsomethingthatpeoplelove touseandhelpingothersachieveallofthese.However,thesearenotparticularlyusefulinstructions. Youneedtoworkoutwhatbehavioursneedtobe encouragedtoachievethesethings,suchasareasoned approachtotesting,empathyforusers,andpushing codefrequentlytoreduceriskandgainrapidfeedback. Aswellasbeingagreatwaytowritecode,pair programmingisanopportunitytodemonstratethese behaviours.Youshouldtakethetimetoeitherlead byexampleorcoupledeveloperstogethersothat theyteacheachothertheskillsyoufeeltheyneedto improve.

OneofthefactorsthatmakesyouaTechLeadisthat youareclever,butthisdoesnotmeanyouarealways right!Whendiscussingsolutionswiththeteam,make sureallpartieslistentoeachotherpolitelyandall solutionsareexplored.

Thebiggersolutionsaddressingasecondaryproblem thatmaycomeupinfutureshouldbetreatedwith caution.Ifthesolutionresultsinyoudoingmorework nowinordertofactorinsomethingthatmaynot happen,thereisastrongchancethatyouareoverengineering.Theonlysortoffuture-proofingthat

reallyworksismeaningfultestsandaslittlecodeas possible.

WhathasbeenyourbiggestchallengeasaTech Lead?

ThemostdifficultsituationIexperiencedhappened afewyearsago.Iplanned,promotedandstarteda projectthatIthoughtwouldrequirefourdevelopers andrunforaboutfivemonths.

Forafewweekswefelteverythingwasgoingsmoothly. Mymanagermusthavethoughtotherwiseand,to mysurprise,addedasecondTechLeadandfive moredeveloperstotheproject.Iwouldn’twantto suggestthattheotherTechLeadwaswrongorthat hewasanythingbutapleasantperson,butweoften disagreedwitheachother’stechnicaldecisions.No matterhowmuchdiscussionhappenedbehindclosed doors;howmanyrespectedopinionsweregarnered; howmuchevidencewasproduced,westucktoourdiametricallyopposingviews.Thedisagreementsoften resultedinconfusionbetweendevelopersandpublic disputesbetweentheotherTechLeadandme.This killedmorale.

Predictably,theprojectwastechnicallycomplex,late, expensive,andnowrequiresaspecialsortofdeveloperformaintenance:adeveloperthatsharesbothmy skillsetandthatoftheotherTechLead.

Althoughthisexperiencewasunpleasant,itgaveme theopportunitytoreflectonhowIshouldbehave publiclyunderdifficultcircumstances.Ittaughtme thatpersonnelandtechnicaldecisionsthatarehard tojustifyshouldberevisitedand,ofcourse,thatthere shouldnotbemorethanoneTechLeadonaconfined project.

Thereisapositivesidetothisstory.Thefrustration ofaprojectthatinitiallyexcitedmebuteventually turnedsourpromptedmetomakeadecisionIhad beenponderingformonths:tofindanotherjob.Ihave neverregrettedthisdecisionandIsuspecttheproject Ileftbehindcontinuedonamuchcalmerandmore focusedpathwithoutme.

Anytime-managementtips?

Thefourmaintimesinksformeare:

•Readingemail

•Attendingmeetings

•Managinganddirectingdevelopers

•Writingcode

Asweallknow,emailcanbeadistraction-nomatter howimportantthecontent.Ihavetwotechniques forprioritisingemail.Forlow-priorityemails,such ascertaintypesofglobalemails,Ihavethemmarked

automaticallyas“read”andonlyglanceatthemifI havetime.Forotheremails,Ihaveadifferentcolour forclientemailsthatcometomedirectly,emails thatcometomyteam,andotheremails.Thishelps medecidequicklyhowlongIshouldreadanemail for-fromthoroughlyunderstandingtojustasimple glance.Fortheemailsthatdeservearesponse,IalwaysrespondasquicklyasIcantoavoidabacklog. Thisnotonlykeepsmefrombeingoverwhelmedbut alsogivesthesendertheimmediateresponsethey hopefullyappreciate.

Asformeetings,Iamluckyenoughtoworkfora companywhereall-handsarealsobroadcastviathe internet.Unlessmyattendanceismandatory,Itreat theselikearadioandlistentothemwhilstdoing otherwork.AtEtsywealsohavewhatwecallthe “Fixlerrule”(namedafteroneofourdirectors,Eric Fixler).Thisruledictatesthatyoumaypolitelyexit whenameetinghasceasedtoyieldvalueforyou.I holddeveloperweeklyone-to-onesandtheylastfor aslongastheyneedto.Theyareimportantandnonnegotiable.Ifyouwantyourdeveloperstouseupless ofyourtime,theone-to-oneistheperfectforumfor listeningtotheirconcernsandhelpingthemplanselfimprovement.

Iwillleavethecodepartbrief:itispart-timeandI useitasbothawaytorelaxandtokeepintouchwith

howtheproductanddevelopersaredeveloping.Ionly everpickverysmall,trivialtasksandneveranything criticalasIcannotguaranteemytime.

Outsidethenine-to-five(oreight-to-eight!),itisimportanttohaveahealthywork/lifebalance.Youshould emotionallydetachfromyourworkinyourspare timeasmuchaspossible.Ifworkbecomesyourmain emotionalinvestment,youriskjudgingyouroverall successasahumanbeingbyyourabilitytodeliver software.Ironically,stressandlonghoursmakeyou lesseffectiveatyourjoband,whetheryoulikeitor not,yousetanexampletoyourcolleagues.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

OvertimeIhavebecomemorecomfortablewithnot coding.Istillwritecodebutit’sgenerallylimitedto non-criticalchangessoIcankeepintouchwithhow thingsaregoingoverallbyworkingontasksthatdo notmakemeadependency.Thereareoccasionswhen somethingunplannedarisesandwhiletheotherdevelopersareheadsdownintheirownwork,Icanshuffle thingsaroundandhaveacrackattheproblem.Ihave learnedthatthesearenotoccasionstodemonstrate that“Istillhavethemagic”,buttoworkoutwhat thingscouldbeimprovedandtorunmyownmini post-mortem.

InitiallyIfeltmynon-codingresponsibilitieswerein additiontowritingcode.Steadily,therealisationhas sunkinthatmyeffortsshouldinsteadbefocused ontryingtomakethepeopleIrelyonaseffective, challengedandmotivatedaspossible.

Stephen’skeyquestion:Whataresomecommon pitfallsandhowcanyouavoidthem?

SinglePointsofFailurearesometimesdifficultto avoid.Somedevelopersloveto“own”theirwork. Althoughtakingresponsibilityisclearlyagoodthing, theperceptionofownershipoftenleadstoonepersonholdingexclusiveknowledgeofsomething.The riskofhavingonedeveloperbetheonlypersonto understandsomethingcomplexisobvious,butyou havetobeincrediblydiligenttoavoidit.Thereare afewwaystopreventSinglePointsofFailurebut mypreferenceistomakesurethedeveloperwith exclusiveknowledgeforagivenareaofcodeisquickly movedontosomethingelsesoanotherpersoncan takeonthechallenge.Alessjarringsolutionispair programming,aslongasbothdeveloperstakefair turnsonthekeyboardandbothunderstandwhatis beingdone.

Anotherpitfallcanbedecisionsdrivenwithoutreason. Gutinstinctisamarvellousthingandknee-jerkreactionsaresometimesyourexperiencesubconsciously poppinguptotellyousomething.However,you

shouldunderstandandbeabletoexplainthatreaction beforeactinguponit.Thenthereistheothertype ofirrationaldecision,andthisisworse:decisions drivenbyego.Itisimportanttocreateanatmosphere whereitisoktobewrong.Ablamelesscultureisan enormousassettosensibledecision-making.

Stephen’sbackgroundstory

Stephenhasbeenasoftwareengineerinsomecapacityfor15years.HestartedworkingatLogica inBristol,UK,whenhewas18,helpingtowrite real-timebillingsystems.Sincethenhehasworked forMessageLabs(nowpartofSymantec);foraUK start-upwritinganti-spamsoftware;asaTechLead forrealestate.com.auinMelbourne,Australia,andis currentlyanengineeringmanageratEtsyinNew York.Hehasbeenbuildingandmanagingteamsfor aboutsevenyearsandhasrealisedthatheprefersto workwithsmallteamsonhighlyfocusedgoals.

Scouting–Geoffrey Giesemann

WhatshouldaTechLeadfocusonandwhy?TheTechLead rolecanvarywidely,depending onthecompositionoftheteam andtheorganisationalcontext theteamisin.Iliketothinkof aTechLeadasthescoutfora team.They’rethepersonyoucan sendaheadofthemainbodyofworktosurveythe landscape,spotobstacles,comebackandreporton wheretheteamshouldheadnext.

Tome,thekeyresponsibilityofaTechLeadlies alongthisscoutingmetaphor.Foranygivenproject you’llneedtomakeabunchoftechnicaldecisions andtheinformationyouneedtomakethosedecisions isscattered.Someofitmayevenbeoutsidethe company,intheheadsofyourcustomersorpeersin othercompanies.AsaTechLeadyouneedtoferret outthisinformationandmakeitavailabletoyour team.

Ifyou’reinalargeorganisation,thesameresponsibilityworksinreverse.Ifyourteamisdoingwork,

oddsaretheworkwillimpactonanumberofother developmentteamsintheorganisation.AsaTech Leadyoushouldbemakingotherteamsawareofall thesignificantchangesyourteamismakingsothat theycantakethemintoaccountwhenthey’redoing theirwork.

WhathasbeenyourbiggestchallengeasaTech Lead?

TheprojectIamcurrentlyonisquitelarge(about12 months)andwe’reengagedwithmultiplestakeholdersfromdifferentpartsofthebusiness.Theclassic problemwithmultiplestakeholdersisthattheyall wantdifferentthingsanditisuptoustojugglethem, alongwithourownpriorities,aswedoourwork.

Inthisspecificcasetherearetwooutcomes:oneisto replacealegacysystemwithanewer,sparkly,betterperformingone;theotheristomakeourcustomers happierbyprovidingthemwithbettertoolingand makepartofoursystemmoretransparent.Although bothoutcomesarerelated(workingonthesamesystem),they’recompletelyorthogonalandcouldberun astwoseparateprojects.

Asaresult,wehavetoperiodicallytackbetweenthe outcomestoappeasethedifferentparties,andthe inefficienciesanddelaysthiscausesdrivemenuts.

IcannotsayI’vehandleditwell,butattheendofthe

dayyourprojectstakeholdersarehumanbeingstoo, anditisimportantyoudon’tletdiscontentwiththeir worldviewbreedintohate.AparticularbugbearInotice,iswhenITpeoplewavetheirhandsdismissively whentheyrefertothenon-ITpartofthecompanyas ‘thebusiness’.Weallworkforthesamecompany;we all(intheory)wantthesamething,soitisimportant tokeepthatinperspectiveandnotletanus-and-them mentalitydevelop.

Anytime-managementtips?

Twosimplethingstofocusonaredelegationand eliminatinguselessmeetings.

Delegationissimple:doyouneedtodothiswork orcanyouhanditovertosomeoneelse?(orignore itcompletelyifitisnotimportant).Sometimesthis meanshandingoverworktosomeonewhomaynot doitaswellormaytakelongerthanyouwouldhave. ThesearecostsyouneedtobearandIrecommend tryingtomakeitanopportunityforthedelegateto learnorupskillintheprocess.

Intermsofmeetings(IamechoingRandshereabit), ameetingisusuallycalledbecauseabunchofpeople needtomakeadecisionortodisseminateinformation. Ifthepurposeofthemeetingisn’tmadeclear,orthe rightmixofpeoplearen’tatthemeeting,Itendto avoidthemeetingorfindanexcusetooptout.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Istillreallylikewritingcode-sometimesItakemyself offforhalfadaysoIcanwhileawayatthekeyboard inprivate.Itisgoingtotakeafairbitofefforttodrag mefurtherupthemanagementchain.

IfImissoutonwritingcodeforanextendedperiodof time,Igetgrumpyandstarttakingitoutontheteam, whichisnotgood.Itrytoboxouttimeatleastonce aweeksoIcandocodingonstuffIwanttoworkon. Thiskeepsmehappy,andahappyTechLeadmakes forahappierteam:)

Geoffrey’skeyquestion:Whydidyoudecideto becomeaTechLead?

Amyriadofreasons.IthinkIreachedapointwhere Iunderstoodthatnotallproblemscanbesolvedby writingcode(andquiteafewproblemsarecausedby it)andthatitisincrediblyimportantforlargegroups ofdevelopersworkinginthesamedomaintowork andthinkinthesamedirection.Iftheydon’t,chaos ensuesquickly.

Iamalsoreasonablygoodatprogrammingthingsand IfiguredIcoulduseachallenge.

Geoffrey’sotherquestion:Whenisadeveloper readytobecomeaTechLead?

Inshort,whentheyrealisethere’snosuchthingasa badprogram.

Iwasinvolvedwithaprojectatworkthatrequiredmigratingeverybitofsoftwareeverwrittenatmycompanytoanotherdatacentre.Thisinvolvedreadinga lotofcode,andmodifyingittomakepreviouslyhardcodedvaluesconfigurable.Duringthis,Imigrateda copyofourmainwebapplicationthatwasforkedat anearlierstageandusedtodeliverourcontentviaan alternatechannel.Althoughthecodewascustomised bysomeinexperienceddevelopers,thefactthatithad notundergoneanyproductdevelopmentorrefactoringfor18monthsmeantthatitwasactuallyquite simpleandapleasuretoworkwith.Igotitrunning inaboutfourhours.

ThisreallyopenedmyeyesinthatIsuddenlyunderstoodwhysoftwareatthatcompanywasthewayit wasandhowitgotthere.Itwasbotheuphoricand somewhatdepressingatthesametime.

Geoffrey’sbackgroundstory

GeoffreyhasplayedtheTechLeadroleforjustover twoyears,leadingthreedifferentteams.Hehasworked asaprogrammerforslightlyoversevenyears,andis nowemployedbyRealEstateAustraliainMelbourne. Whennotfoundinsideprogramming,Geoffreyenjoys thegreatoutdoors.

LeadfromBehind–JoelTosi

WhatshouldaTechLeadfocus onandwhy?

UltimatelyasaTechLead,you determinetheleaderyouwillbe. ItiseasytoidentifywhatIworry aboutasaTechLead:Idon’twant tobecomeadependencyoratitle. Thisconcernhasactuallymade meconsiderturningdownleadershiprolesbefore. WhenIwasfirstaskedtoleadthesolutionarchitects atRedHat,Inearlyturneditdown.Ifeltthattheteam wasworkingfinetogetherandtherewasn’tanyneed fordelineationamongstus.Istruggledtoseewhat voidaTechLeadwouldfilland,moreimportantly, howitwouldmaketheteambetter.

Inhindsight,Irealisethatwasmoreofareflectionof methanthetitleortheposition.ThetitleofTechLead iswhatyoumakeit(unlessyourmanagerusesitasa micro-managementtool,whichIhaveseen).

SothemostimportantthingaTechLeadshouldfocus onisnotleading.Theword“lead”impliesthatother peoplearesubservientandfollowing.Iprefertofocus onfacilitatingenvironments,wherewecanalllearn

fromeachotherandeveryonecandotheirbestwork. WhetherIamhelpingmyteammemberstoreview codeorarchitecturesorsimplylisteningtothemvent, Ineverwanttocomeacrossasauthoritative,butseek tounderstandtheirposition.Forexample,ifsomeone ischoosingtouseacertainalgorithmthatImightnot agreewith,Idomybesttounderstandtheirthought processinreachingthatdecision,asopposedtosaying, “Wellyouknow,thatisO(n^2)andIthinkyoucando itinO(n).”Thatisnonsense.

WhathasbeenyourbiggestchallengeasaTech Lead?

WhenIwasfirstleadingateam,wefacedaridiculous projectdeadline.Iknowthathappenseverywhere,but imagineifyouwould,aprojectwhere,atinception youestimateitwillbeayearofwork,butthereality isyouaretogoliveinfourmonths.Thesolution youareofferedistobringinmoredevelopers.SoI wentfrombeingamemberofasmall,four-person teamtoleadinga10-personteam(sixconsultants). Ofcourse,asthelead,Ihadtomakesurethenew consultantswereimmediatelyproductive,theexisting teamunderstoodwhattodo,finishmyowncode,and designthenextphases.

Inbrief:wefailedmiserably.Wewenttoproduction ontime,afterworkinganaverageof80hoursaweek (oneweek,wemaxedoutat102hours)andafterbeing

inproductionforabouteighthours,theprojectwas rolledback.Thenthepost-mortemsstarted,moredeveloperswerethrownattheproblem,anditcontinued tospiral.Eventually,afterabouttwomoremonthsof scrambling,wegotmanagementtounderstandthat weneededtoslowdownandfocusonthequalityof ourcode,integration,andenvironments.

HowdidIhandlethesituation?Well,basedonthe projectoutcome,prettypoorly.Werancodereviews; Itriedtogettheteamtounderstandtestinganddependencies,etc.Itriedtoimposequalityandlearningnew frameworks(RESTbackthen,Mavenbuild,aswellas firstrevisionofJQuery,nottomentionmessagingto peoplewhohadneverworkedwithaNotifiermodel before)anditblewup.

Ontheupside:noonequit.Wehadastrongteamthat bondedthroughitall.Wehaveallmovedon,andI stillspeakwiththemajorityofthatteam.SomaybeI didn’tdoasbadlyasIthinkIdid.

Anytime-managementtips?

ItdependsontheorganisationandroleIamin.When Ifirstbecamealead,Ithoughtthatbeingbusyin meetingsmeantIwasprotectingmyteam,aswellas doingtheimportant,busywork.

Later,Istartedblockingouttimeonmycalendarfor teamtime.Andevenlater,Istartedblockingoutsome

timefor‘me’time.

Thesedays,Isetmyselfremindersforteaminteractions.Ijustrampedupanewmemberofateam -aprocessthatlastsupwardsofeightweeks.Even thoughthathasended,Ihavesetaremindertomyself tocheckinonhimevery2weeks,justtoseehowhe isdoing.Itcanbeaboutcode,architecture,certainly, butfirstandforemostitisabouthimandhowheis doing.Ifyoudon’tworkwithyourpeersaspeople, thenyouhavealreadylost.

SoIhavepersonalreminderstointeractnotonly withinmyteam,butalsooutsideofmyteam.Imay nothitthemallthetime,andit’snotasthoughIam callingpeopleeveryotherweekatacertaintime-ad hocismorenatural.Istillblockouttimeformyselfas well;youhavetostaysane.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Earlyon,Ithoughttheonlyissueswerecodeissues. Overtheyears,Ihaverealisedthatthemajorityof ourissuesarecommunicationissues.SoItrytobeas effectivealisteneraspossiblefirst,andsecondlyas effectiveacommunicatoraspossible.

Honesty,transparency,andhumilitywillalwaysserve youwell.

Joel’skeyquestion:Whydoyouwanttobea leader?

IwanttoseeothersbecomegreaterthanmeandI wanttoseetheteambecomeevenbetterstill.

Joel’ssecondkeyquestion:Whatreadingwould yourecommendtootherTechLeads?

AnythingbyWeinbergisamazing,butifIhadto chooseone,itwouldbeGeneralPrinciplesofSystem Design(althoughBecomingaTechnicalLeadermay alsobefittinginthiscontext).

SystemDesignandThinkinghasshaped,andcontinuestoshape,notonlyhowIseemyinteractionswith systems,butalsomypeersandmyteam.Ithelpsme elevatemyteamandassistthemwithquestioning andlearningwhat’sbeyondtheirinitialconception. GeneralPrincipalsofSystemDesignisabookthat youcanreadandunderstand,thensometimelater -formeitwasaboutamonth-youjustgethit.It islikeseeingthematrix.Ihopeothershaveasimilar experience.

Joel’sbackgroundstory

JoelcurrentworksastheTechLeadforSolutions ArchitectsforJBossNorthAmerica.Hehaspreviously spenttimeasanagileconsultantandXPcoachfor VersionOneandasaTechLead,managerandarchitect

attheChicagoMercantileExchange.

Joel’sapproachasaTechLeadhasevolvedfrom “leadingbyexample”to“leadingfrombehind”.His currentapproachinvolvesmoreobservingandaiding threatening,challengingorquestioningandfeelshis approachmakeshimmoreawareasaTechLead.

UnderstandYourself–Daniel

Worthington-Bodart

WhatshouldaTechLeadfocus on?

Ithinkitisimportanttoplay toyourstrengthsinwhatever youdo.Beruthlessandunrelentinginthepursuitofthatgoal, butchooseyourfights.Formyself,Ipursuetechnicalexcellence aboveallelse,butthisisnottosayyoushouldtoo. Makesureyouleaveroomforyourteammatesto excelintheirstrengthstoo.

AnothertaskfortheTechLeadistounblockyour team.Sometimesyouwillbethehero,butneverforget youmayalsoneedtobethejanitor.

WhathasbeenyourbiggestchallengeasaTech Lead?

Thebiggestchallengesareoftentheslowestorlongest toachieve:Ihavebeenworkingforthreeyearsto decoupleanumberofbusinesscriticalsystems.Ithas beenalonghardslog.Asusual,thechallengesare bothsocialandtechnical.Thegreatestchallengeisnot

losingsightofthegoalandconstantlyputtingonefoot infrontoftheother.

Ifindthattechnicalchallengescomehardandfast, butthedeliveryandorganisationalchallengesthatare inevitablyentwinedmakethedifferencebetweena long-termsolutionandashort-termfad.Donotgive up!

Anytime-managementtips?

ThebestthingIhavefoundistohaveakid;nowI hardlyneedtosleep!

Onamoreseriousnote,ifyouareasdisorganisedas me,thendonotforgettoaskforhelp.Askingforhelp notonlyhelpsyou,butalsoallowsotherpeopletostep upandsharetheresponsibility.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Ithinkweoftentryandforcecodeoutbysitting infrontofthekeyboardandwritingcode.Often thebreakswetakeawayfromthekeyboardallow oursubconscioustosolvetheproblemforus.Pair programmingalsohelpsenormouslyas,whenyouare away,yourpaircancontinuewiththedirectapproach totheproblem,whileyouwillcomebackwithfresh eyesandprobablyanewsolution.

IdonotthinkIhavefoundbalance,asIamconstantly

thinkingaboutcodeorcoding.Forme,theproblemis actuallystopping.

Dan’skeyquestion:AsaTechLead,howmuch doyouthinkyourroleisactuallyabouttechnical leadershipcomparedwithpeopleleadership?Or, Howdoyoumaketechnicalleadershipdecisions stickinthelong-term?

Ithinktheanswerisinthequestion.Wecanshow peoplegreattechnicalleadershipandvision,butit takestimeforpeopletogainadeepunderstandingof problems.Weoftenhavetoallowpeopletofail(ina safemanner)sotheycanfeelthetensionofforcesone hastobalanceincraftingasolution.

Dan’sbackgroundstory

DanhasbeeninITfornearly18years,workingin alldimensions,fromsupport,networksandinfrastructure,qualityassurance,technicalsales,consultancy andsoftwaredevelopmentthatspansover50different clientsindifferentindustries.

HehasplayedtheTechLeadrolemostrecentlyin thelastsevenyearsforabouttendifferentteams.He lovesfindingthesimpleinthecomplex.WhenDanis notwritingcode,heenjoysmusic,filmsandbooksin additiontoalittlebitofrockclimbing.

FindingBalance–Laura Paterson

WhatshouldaTechLeadfocus onandwhy?

Ithinkthisisareallyinteresting question,andIdon’tthinkthere isasimpleorsingleanswertoit. OftheteamsIhaveled,notwo havebeensimilar;eachhasasked differentthingsofmeasaTech Lead.Tomethemostimportantqualityrequiredofa TechLeadistheabilitytostandbackandseethebig pictureandthentheabilitytoadapttofixthemost pressingchallenge,whetherit’sarchitecturalconsiderations,lookingatcodequality,managingtechnical stakeholders,teambalance,slimmingdownprocess, teamhappinessoridentifyingpotentialissues.

InmyfirstTechLeadrole,wewereinitiallydevelopingaresearchanddevelopmentsystemthathad manypotentialbusinessstakeholders.Thetechnology stackwaswellknown,theteamwasmatureand usedtoworkingtogether,sothekeychallengesI hadwereidentifyingwhichfeaturesweregoingtobe mostusefulandwhatarchitecturewouldensurethe

requiredflexibility.

Amorerecentgigwaskickingoffagreen-fieldmedia project.Theclientknewwhattheywantedandhad spentalotoftimewithadesignagencyestablishingwhatfeaturestheywanted,andwehadwell definedcross-functionalrequirements.Onthisproject mymainrolewasguidingthearchitecturalchoices, liaisingwithtechnicalstakeholders,andhelpingthe onshoreandoffshoreteamsestablishgoodworking practices.

IbelievetheroleofaTechLeadisnottodictate,butto helptheteamdeliver.Theworldshouldn’tfallapart iftheTechLeadgoesonholiday,andtheteamshould feelempoweredtomakeitsownchoices.Themore juniortheteam,themoretheTechLeadmayneed todotoguidetechnicaldecisionsanddevelopment practices.Akeyskilliscommunicatingeffectivelybothinwardsandoutwards.

WhathasbeenyourbiggestchallengeasaTech Lead?

Ijoinedalargeprojectasadeveloperandwasquickly askedtobecomeTechLeadduetosomeoneleaving. Theteamwaslarge:sixorsevendeveloperpairs,the largecodebasewasayearoldand,duetoaheavy initialpushfordelivery,fairlymonolithic.Theteam waslethargicfromworkinginasprawlingcodebase

forsolong,andthelargeteamsizehadreduced ownershipofcodeandmadeitdifficulttocreate consistencyincodepatternsandquality.Inaddition,therewereconcernsaboutmeetingsomecrossfunctionalrequirements(CFRs).Despiteblockingout pairingdaysandtryingtocomeuptospeedwith Scala,whichwasnewtome,Ifoundmyselfwithlittle timetospendonthecode,soIhadtofindalternative waystolookattheissuesIcouldsee.LuckilyIwas workingwithsomegreatleaddevelopers,whoknew thecodebasewell;beingabletotrustthemgaveme confidencetolookatsomeoftheteam-wideissues. Wewereabletosplittheteamupintothreebusiness areasfairlyquickly,whichimprovedcodeownership andteamenthusiasm.

Iranaseriesofworkshopswiththebusinessandthe teamtoidentifyexactlywhatwasrequiredinterms ofCFRs,andhowfarwewerefromachievingthemin thecurrentsolution,essentiallyexposingthehidden technicaldebtinthesystem.Welookedat‘softer’ CFRssuchastestabilityandmaintainabilityaswell asmoreeasilymeasurableonessuchasperformance. Fromthiswewereabletocreateatechnologybacklog, withitemsmarkedforimpactandefforttochange.By identifyingimpactonbusiness,wewereabletoget thelistprioritised,andsecurecapacitytofixourmost significanttechnicaldebt.

Anytime-managementtips?

I’vetriedmanythings!Stickynotes,thePomodoro Technique,mindmaps,blockingouttimeinmydiary togivemetimeawayfromtheBAU,andidentifying pairingdays.Whatcurrentlyworksformeischecking mycalendarandreadingmyemailbeforeIleave thehouseinthemorning.Thisbringsmeuptodate withanythingthatmayhavehappenedovernight oranythingthatIneedtodointheday.Iletthis percolateonthejourneytoworksothatbythetime IgettoworkIhaveaprettygoodideainmyhead ofwhatIwanttoachieveintheday.ThenIwriteit down!Sometimesonstickies,sometimesinEvernote. WheneverIdoanything,IwriteitupinEvernote.This letsmemoveontothenextgoalonmylist.Ihavea shockingmemory,soeverythinggetswrittendown. Icanaddtomylistintheday,asthingscomeup, butbyhavingalist,Icanseewhatgetsbumpedoff thebottomandmakesureithappensthenextday.If somethinggetsbumpedtoooften,Imakeacallon whetherIneedtodoitorcansomeoneelsedoit, orcanIbinit.Sometimestheimportanthastotake precedenceovertheurgent;writingitdownhelpsme understandhowtocreatethatbalance.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

ThisissomethingI’vebattledwithsincemyfirst TechLeadroleeightyearsago.Itiseasyonasmall team,butgetsharderasmoredevelopersorpolitical factorscomeintoplay.OnmorecomplexteamsI finditdifficulttoretainabroaderperspectiveif immersedinastory.Ithink,atbest,thisisanarea thatcanonlybemitigated.Todothiseffectively,I askmyself,onthisproject,whatarethebenefitsI hopetogetfrompairing,andwhatisthebestwayto realisethem.Someusualbenefitsare:understanding thecodebase,developingskillsinjuniordevelopers, aligningdevelopmentwitharchitecturalvision,tofeel painfirsthand.Pairingmaybethebestwaytoreap thesebenefits,butifthisisnotpossible,whatother toolscanbeutilised?Reviewingcodechangestokeep currentwiththecodebase.Weeklytechreviews,and dailytechhuddlesgiveanopportunityforpairsto sharetheirachievementsandconcernswiththeteam. Infact,thisgoesbacktomypreviousanswerabout whatisimportanttoaTechLead.Thekeythingfor meistomaintainaclearoverallvisionoftheproject andnottolosesightofthatwhenrespondingtothe dailyebbandflowofaproject.

Laura’skeyquestion:Whatwouldyouhavedone differentlythefirsttimeyousteppedintotheTech Leadrole?

IwishI’daskedformorehelp.Inthefirstcoupleof projectsIled,Itriedtodoeverythingmyself:writing code,organisingateststrategyaswehadnoseparate QAs,andvalidatingrequirementsasitwasthegood oldwaterfalldays.Luckilytheteamwassmalland wellformed,sowewereabletodeliver.ButIwas exhausted,anditwasnotanenjoyableexperiencefor meortheteam.

Itwasadesiretolearntheartofdelegationinthe secondofthesegigsthatstartedmeonmyjourneyin agile.

Laura’sbackgroundstory

Laurahasarichandvariedhistorywithabackground inEnglishLiteratureandEconomicsbeforetransitioningintoIT.ShehasplayedtheTechLeadrolefor abouteightteamssincetheninavarietyofindustries includingmedia,publishing,telecommunications,defence,banking,andcharities.

Shehasastronginterestinusingagilepracticesto unlockthepotentialintheteamssheworkswith.

Conclusions

WhenIstartedthisbookproject,Iwasn’tsurewhat sortofresponsespeoplewouldgive,norwasIsureif therewouldbeanyinterestinthistopic.AsIshared theideawithdevelopersandpotentialinterviewcandidates,thequestionsIposedpuzzledthembecause theycouldnotnamemanybooksthattackledthese importantissues.

Manypeoplecouldreeloffbooksandresourcesthat describedhowtowritebettercodeorhowtodesign andbuildrobustapplications.Otherpeopleknewof booksandresourcesthattaughtgeneralleadership, communication,andmanagementtheory,butdevelopersandTechLeadsexpressedfrustrationabout theirgenerality,lackofcontext,andnotnecessarily beingentirelyrelevanttotheTechLeadrole.

Afterreadingthroughtheresponsesinonesitting, Iwasfascinatedbyhowfrequentlycertainthemes emergedandhowpeoplewouldreturntothesame topicstimeandtimeagain.Inthissection,Isummarisethoserecurrentthemesandhowtheyshed lightondifferentaspectstotheTechLeadrole.

LessonsLearnedby First-TimeTechLeads

Thetransitionfromarolewhereyouexclusivelywrite codetoonewherewritingcodeisonlyasmallpartis whatoftentakespeoplebysurprise.Herearelessons theFirst-TimeTechLeadstouchedupon:

•Havingabroaderoutlook-Movingbeyondthe thoughtsofasinglefeature,orcodeandseeing thewholebreadthoftheteamandbusiness.

•Sensinggreaterresponsibility-Theauthority thatcomeswiththetitlerequiresgreateraccountability;youareaccountablenotonlyfor yourdecisions,butthedecisionsandactionsof eachpersonontheteam.

•Guidingthetechnicalvision-Thecombinationofmoreresponsibilityandabroaderoutlook givesrisetoconcernswhenindividualsmove indifferentdirections.Youspendmoretime providingdirectionfromatechnicalpointof view.

•Copingwithlesstimewritingcode-Youhave toredefinehowyoubringvaluetotheteam.You havetolookathowyouenableotherstocontributequalitycodethatrequireslittlerework

Conclusions 246

anddeliverstobusinessneedsratherthanthe amountofcodeorfeaturesyoudeliver.

•Jugglingmorecontextswitches-TheTech Leadrolechallengesyourtimeandtask-managementcapabilitiesasmorepeoplewillinterrupt youforclarification,guidance,andadvice.Burningissuesdrawyouawayfromcode-writing, soyouneedtobewareofcontributingtothe criticalpathorholdinguniqueknowledgefrom theteam.

•Allowingpeopletofail-Youcannotbeeverywhereatonceand,asmuchasyouwanttotell peoplethetrapstoavoid,youhavetoacceptthat sometimespeoplelearnbestbyfailing.Instead youensurefailurehasasmallimpactbyimprovingthespeedoffeedbackloops.

•Realisingpeopleaspectsarehard-Asadeveloper,youdealwithcomputersformostofthe time.Youcanactgrumpilyandthecomputer doesn’treact.Yourealisethateveryoneisunique andsoreactsdifferentlytoyourinteractions. Suddenlyyouareresponsibleforresolvingconflictswhen,before,youcouldsilentlyslipaway.

LessonsLearnedby PractisingTechLeads

TheseasonedTechLeadhasworkedwithseveral teams,possiblyacrossdifferentorganisations.Their commentaryoftenrepresentswisdomgainedfrom makingmistakesandlearningfromthem,havinghad achancetoapplythoselessonsinanewcontext. ThelessonslearnedfromPractisingTechLeadsare summarisedbelow.

People

•Remainingtechnicallygrounded-Otherdevelopersrespectyoumoreifyoustillwritecode withtheteam.Yourunderstandingoftheissues alsoimprovesifyouhavecontactwiththecode.

•Findinganddevelopinggoodpeople-Asa TechLeadyouareresponsibleforhiringagreat team.Youcannotrelyonhiringpeopleinan ever-changingmarketandsoyouneedtodevelopthepeopleinyourteamandcreatean environmentthatencourageslearning.

•Listeningtotheteam-Asadeveloper,you probablyspendmostofyourtimegivingopinions.YourTechLeadrolerequiresyoutonow

Conclusions 248 listentoalltheopinionsandfindthebestsolutionwithinthiscacophony.

•Appreciatingindividualstrengths-Youwill appreciateandsometimesbefrustratedbythe waypeoplebehavedifferently.Youstarttorecognisedifferentstrengthsandfindwaysandsituationswherepeople’sthesearebestapplied.

The“Tech”ofaTechLead

•Guidingthetechnicalsolution-ATechLead isresponsibleforeveryonesharingthesame technicalvision.Youusearchitecturediagrams andwhiteboardsessionstohelpbuildashared understandingwithintheteamtohelpalign people.

•Harmonisingteamdirection-Nothingismore destructiveinadevelopmentteamthanconflictthatresolvesitselfthroughthesourcecontrolsystem,withdifferentopinionsexpressed throughsnidecommitmessages,orbyoverwritingsomeoneelse’sstyle.ATechLeaddetects conflictsanddifferencesindirectionandfacilitatestheteamtogetbackontrack.

•Managingtechnicalrisks-Softwarehasso manypotentialtrapsandsomeonemustensure theydon’tgetforgotten.YourroleasaTech Leadistofindwaystocreatevisibilityand

Conclusions 249 sharedunderstandingoftechnicalrisksandto findwaysasagrouptoaddressthem.

•Takingalonger-termview-Developersare morelikelytofocusonaverynarrowviewof theirfeatureorcontribution.TechLeadsworry moreabouthowthechoicesoftodaywillturn intotheproblemareasoftomorrow.

BridgingtheBusinesswithTech

•Buildingtrust-Asadeveloper,youspendmost ofyourtimeinthedetails,interactingwithpeoplefromotherpartsofthebusinessjustenough toworkoutwhatyouneedtobuildtheright feature.AsyoumoveintotheTechLeadrole, youspendmoretimebuildingrelationshipswith keybusinessstakeholders;becomingthe“go-to” personfromthetechnicalteam.

•Findingtimefortechnology-Bowingtothe pressuresfromthebusinesstoaddmorefeatures iseasy.Ensuringthatitisdoneinasustainable wayisonekeychallengethattheTechLead balances.Havingastrongtrustwiththebusiness makesthispossibleandtranslatingthebenefits ofinvestingintechnologyhelpsbuildbetter understanding.

•Makingtechnologysolutionseasytounderstand-Softwareiscomplexinmanyways,filled

Conclusions 250 withterminology,constantlychangingbrands andideas.AsanexperiencedTechLead,you knowhowtosimplifythetechnicalsolutionand canfindanalogiesorstoriestohelpnon-technicalpeopleunderstandthetechnicallandscape enoughtohelpthemmakebetterdecisions.

•Influencingplanning-Whenyouhavebuilt strongtrustandskillinsimplifyingtechnical ideas,youwillinevitablybedrawnintomore future-focusedsessionsthatmightinvolvebudgetingorprojectplanning,becausepeoplesee yoursasanimportantcomponent.Youbalance thiscarefullybecausemoretimeawayfromthe teamreducesthefreshnessofyourowninformation.

•Championingbusinessneeds-Sometimestechnologyteamsdriftawayfromunderstanding endusersandthebusinessmodelsthatserve them.TechLeadsbringthatbiggerpictureback totheteam,clarifyhowtechnicalsolutionsimpactendusers,andwhatthebusinessgoalsare. Theteammakesmuchbettersoftwaredesign choiceswiththisknowledge.

You

•Adaptingtonewcircumstances-Fromthe responsesinthisbook,youcanseehowmanydi-

Conclusions 251

versesituationsTechLeadmayfindthemselves inandtherichnessofskillsneededtodealwith them.Youmustfindwaystobuildskillsyoumay neverhavehadachancetodevelopbefore.

•Makingyourselfredundant-Althoughyou mayfinditeasytoplaythe“HeroTechLead” whodoeseverythingontheirown,itisnot sustainableoverthelongterm,nordoesitscale toabiggerteam.Youfocusondevelopingpeople andfindingwaystodelegatetaskssothatyou canspendmoretime“justbeingadeveloper”.

•Usingyourownstrengths-Everyonehastheir ownapproachtobeingaTechLead,andwhen thrustintothisrole,youspendmoretimeintrospectingaboutwhatyoucanofferandapplyit generously.

FinalWords

Ihopethatyouhaveenjoyedreadingthestoriesfrom thepeopleinmybookasmuchasIenjoyedgathering andreflectingonthem.Somepeople’sstoriesmay haveresonatedmorestronglythanothers,andif youfindyourselfindifferentcircumstances,Iwould encourageyoutoreadthestoriesafreshasyoumay findthatsomeoneelse’sstoriesresonatemorethan theydidpreviously.

Ihopemybookhashelpedtogiveyouaclearer understandingofwhataTechLeadroledoes.The TechLeadroleisverydifferentfromthatofadeveloper.Yousuddenlyhavetobalancedepthoftechnical understandingwiththepeoplesideandfindtimeto buildrelationshipswiththebusiness.Youfacenew challengesbuildingthesenewskills.Yousuddenly findyourselfresponsibleformorepeoplethanjust yourselfandyoudiscoverthatthereisrarelyany “right”answerwhenitcomestopeople.

Fortunately,youarenotthefirsttoembarkontaking onthisroleand,withthiscollectionofstoriesand lessonsinhand,youwillbebetterpreparedforit.

Appendix UsefulBooks

Allen,David:GettingThingsDone:TheArtofStressFreeProductivity,PenguinBooks,2002.

Ayres,Ian:CarrotsandSticks:UnlockthePowerof IncentivestoGetThingsDone,Bantam,2010.

Beck,KentandMartinFowler:PlanningExtreme Programming,Addison-WesleyProfessional,2000.

Beck,Kent:TestDrivenDevelopment:ByExample, Addison-WesleyProfessional,2002.

Benson,JimandTonianneDeMariaBarry:Personal Kanban:MappingWork|NavigatingLife,CreateSpaceIndependentPublishingPlatform,2011.

Brooks,Jr.,FrederickP.:TheMythicalMan-Month: EssaysonSoftwareEngineering,AnniversaryEdition, Addison-WesleyProfessional,1995.

Brown,Simon:SoftwareArchitectureforDevelopers²² , ²²https://leanpub.com/software-architecture-for-developers

Appendix 254 Leanpub,2012.

Cohn,Mike:AgileEstimatingandPlanning,Prentice Hall,2005.

Derby,EstherandJohannaRothman:BehindClosed Doors:SecretsofGreatManagement,PragmaticBookshelf,2005.

Ellnestam,OlaandDanielBrolund:TheMikadoMethod, ManningPublications,2013.

Evans,Eric:Domain-DrivenDesign:TacklingComplexityintheHeartofSoftware,Addison-WesleyProfessional,2003.

Foote,BrianandJosephYoder:ABigBallofMud, FourthConferenceonPatternsLanguagesofPrograms (PLoP‘97/EuroPLoP‘97),Monticello,Illinois,September1997.

Gamma,Erich,RichardHelm,RalphJohnsonand JohnVlissides:DesignPatterns:ElementsofReusable Object-OrientedSoftware,Addison-WesleyProfessional, 1994.

Gladwell,Malcolm:Blink:ThePowerofThinking WithoutThinking,BackBayBooks,2007.

Gray,Dave,SunniBrownandJamesMacanufo:Gamestorming:APlaybookforInnovators,Rulebreakers,and

Changemakers,O’ReillyMedia,2010.

Lopp,Michael:ManagingHumans:BitingandHumorousTalesofaSoftwareEngineeringManager,Apress, 2012.

Osherove,Roy:NotestoaSoftwareTeamLeader, TeamAgilePublishing,2013.

Osherove,Roy:TheArtofUnitTesting:WithExamplesin.NET,ManningPublications,2013.

Patterson,Kerry,JosephGrenny,RonMcMillanand AlSwitzler:CrucialConversations:ToolsforTalking WhenStakesAreHigh,SecondEdition,McGraw-Hill, 2011.

Pink,Dan:Drive:TheSurprisingTruthAboutWhat MotivatesUs,RiverheadBooks,2011.

Rath,Tom:StrengthsFinder2.0,GallupPress,2007.

Reynolds,Garr:PresentationZen:SimpleIdeason PresentationDesignandDelivery,NewRiders,2011. Rosenberg,MarshallB.andArunGandhi:Nonviolent Communication:ALanguageofLife,Puddledancer Press,2003.

Spence,Gerry:HowtoArgue&WinEveryTime:At Home,AtWork,InCourt,Everywhere,Everyday,St. Martin’sGriffin,1996.

Weinberg,GeraldM.:BecomingaTechnicalLeader,

Appendix 256

DorsetHousePublishing,1986.

Weinberg,GeraldMandDanielaWeinberg:General PrinciplesofSystemDesign,DorsetHousePublishing, 1988.

Wilde,GeraldJ.S.:TargetRisk2:ANewPsychologyof SafetyandHealth,PdePubns,2001.

UsefulWebsites

²³http://www.personalkanban.com

²⁴http://inboxzero.com

²⁵http://gettingthingsdone.com

²⁶http://randsinrepose.com

OtherReferences

Foote,BrianandJosephYoder:ABigBallofMud, FourthConferenceonPatternsLanguagesofPrograms (PLoP‘97/EuroPLoP‘97)Monticello,Illinois,September1997. LinuxMagazine²⁷

CommunicationsoftheACM²⁸

²⁷http://www.linux-magazine.com

²⁸http://cacm.acm.org

AbouttheAuthor

Whenthisbookwasbeingput together,IwasworkingasaPrincipalConsultantforThoughtWorks,whereyouwouldfindme leadingteamsandstrivingtocreategreatenvironmentswheredeveloperscouldthrive,alwaysfocusedondeliveringvaluetoend users.Ihaveagreatinterestinbalancingthepeople sidetosoftwaredevelopment,aswellasthechallenge andenjoymentofsolvinghardtechnicalproblems. Andyes,Istillwritecodetooandloveit. Iampassionateaboutimprovingteamsthroughthe useofRetrospectives²⁹andgrowingindividuals.I havecoachedanumberofdevelopersintotheroleof beingaTechLeadandIhopethisbookhelpsyougrow yourmasteryasaTechLeadorbetterpreparesyoufor thestartofyourjourneyasaTechLead.

²⁹http://leanpub.com/the-retrospective-handbook

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.