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
ByJimWebber,ChiefScientist,Neo4j
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