talking with tech leads_ from n - patrick kua.pdf

141

Upload: croitoriu-mihaela

Post on 04-Jan-2016

238 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 2: Talking with Tech Leads_ From N - Patrick Kua.pdf

TalkingwithTechLeads

FromNovicestoPractitioners

PatrickKua

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

Thisversionwaspublishedon2014-12-05

*****

ThisisaLeanpubbook.LeanpubempowersauthorsandpublisherswiththeLeanPublishingprocess.LeanPublishingistheactofpublishinganin-progressebookusinglightweighttoolsandmanyiterationstogetreaderfeedback,pivotuntilyouhavetherightbookandbuildtractiononceyoudo.

*****

©2013-2014PatrickKua

Page 3: Talking with Tech Leads_ From N - Patrick Kua.pdf

TableofContents

Foreword

PrefaceWhyIwrotethisbookWhatyou’llfindinthisbook

Acknowledgements

Testimonials

IntroductionIntheBeginningFromTechLeadstoTechLeadsFromNovicestoPractitioners

NovicesADifferentPerspective–CameronSwordsChangeofFocus–AnneSimmonsNeedsforaWiderSkillSet–EbonyPierceJugglingAct–SiebertLubbeTheExternalFace–LizDouglassChaosandCluelessness–RoyOsheroveMoreThanJustTech–PriyankGuptaTheBiggerPicture–SuchitPuriLessCoding,MoreResponsibility–David‘Bucky’SchwarzLeanonCommunicationSkills–StefanMarev

Practitioners

PeopleTeamFocus–AlisonRosewarneTeamoverSelf–HumphreyEltonDelegate,Delegate,Delegate–JasonSelbyFacilitating,thenLeading–DanAbelHelpingtheTeam–AdamEsterlineInwardsandOutwards–RachelLaycockSoftSkills–JonPitherEnablingPeople–IsabellaDegenIt’sNotAbouttheCode–PatricFornasierPeopleFocus–SarahTaraporewallaEngagingtheTeam–GlenFord

TheTechofaTechLeadTeamsandArchitecture–SimonBrown

Page 4: Talking with Tech Leads_ From N - Patrick Kua.pdf

EnablementandSolutionDesign–MartenGustafsonManageTechDebt–MarkCrossfieldAnArchitectToo?–TomiVanekChampionQuality–PeterMoranDon’tForgetCross-FunctionalRequirements–ChristyAllmonPrioritisingTechTasks–ChrisClose

BridgingtheBusinesswithTechTheBigPicture–LucaGrullaAlignTechnologywithBusiness–RobertAnnettMappingtheFuture–JasonDennisFindingBalancewiththeBusiness–CoryFoyABridgetotheBusiness–RyanKinderman

YouManagingYourself–StephenHardistyScouting–GeoffreyGiesemannLeadfromBehind–JoelTosiUnderstandYourself–DanielWorthington-BodartFindingBalance–LauraPaterson

ConclusionsLessonsLearnedbyFirst-TimeTechLeadsLessonsLearnedbyPractisingTechLeadsFinalWords

AppendixUsefulBooksUsefulWebsitesOtherReferences

AbouttheAuthor

Page 5: Talking with Tech Leads_ From N - Patrick Kua.pdf

Foreword

ByJimWebber,ChiefScientist,Neo4jhttp://jimwebber.org@jimwebber

WhenPatrickapproachedmetowritethisforeword,Iwasalittlehesitant.I’mnotespeciallyrenowned–notevenasaTechLead!ButafterIreadthebook,IbegantounderstandwhyPatrickbelievedI’dfindthebookworthyofasmallcontribution.

Thisisanimportantbookanditmakesasubstantialcontributiontothesoftsideofsoftware:namelyonethatbeginsapathtowardsempiricalreflectiononwhatitmeanstobeaseniorsoftwareengineer.Moreover,in“TalkingwithTechLeads”Patrickhascapturedawidevarietyofexperiences,opinions,andreflectionsonwhatitmeanstobeartheresponsibilitiesofaTechLead,farbeyond“merely”beingcompetentatsoftwaredelivery.

Page 6: Talking with Tech Leads_ From N - Patrick Kua.pdf

Uncoveringthepractices,emotions,andambitionsofTechLeadsaswellastheirdoubts,uncertaintiesandtribulationsisavaluablefirststeptowardsempiricallyqualifyingthenatureandexpectationsoftherole.Intakingthatstep,itenablesthenewTechLeadtomanagetheirownexpectations(andnerves)andtheseasonedTechLeadtogrowthroughunderstandinghowtheirpeershavesolved(orfailedtosolve)thechallengesthatbesetothers.

Thisisnotacareerguidancebook,orevenaself-helpbook,thoughbothIthinkaresuitablyaddressedasaside-effectofreadingandinternalisingtheinterviews.Thisisabookthatyoucanturntowhenyou’refeelingunsureaboutmovinginto,orexpandingyourroleasaTechLead.Itprovidesanimmediatesenseofcommunity,globalanddiverse,bythenatureoftheinterviewees.Theirstoriesresonatepreciselybecausethey’rehonestaccountsfromrepresentativetechnologists,muchlikeyou,thereader.Allarewellcataloguedandcuratedtobeengagingandprovideanoverarchingnarrativethatmapsconvenientlytoatypicalcareerarc.

Page 7: Talking with Tech Leads_ From N - Patrick Kua.pdf

Iexpect,likemostsoftwarepeople,ordinarilyIreadtechnicalworksmuchmorethanIreadexperiencereports.“TalkingwithTechLeads”hashelpedmeredresssomeofthatbalanceandthinkthroughwhatitmeanstoleadsoftwareteamsintheearly21stcentury.ForthatIamgratefultoPatrickandIhopeyou’llfeelthatthebookwillhelpyoutoreflectupon,andaddress,yourchallengesandaspirationsaroundtechnicalleadershiptoo.

Page 8: Talking with Tech Leads_ From N - Patrick Kua.pdf

Preface

WhyIwrotethisbookIhaveplayedtheTechLeadrolecountlesstimes,inmyroleasasoftwaredevelopmentconsultantatThoughtWorks.InoveradecadeofworkinginIT,IhaveseenhowdifferentTechLeadsoperateandgrapplewiththeirdifficultproblems.Ihavealsotrained,coachedandsuccessfullydevelopedotherTechLeads–bothwithinThoughtWorksandfortheclientsweworkwith.InoticedthatthetransitionforadevelopertoaTechLeadisnevereasy.EvenexperiencedTechLeadsstrugglewhentheyfirstchangeteamsororganisations.

Whenyou,thedeveloper,becomeaTechLead,yousuddenlyrealisehowlonelytheroleis.Youwillnolongerbe“justadeveloper,”andyouwillnolongerbetreatedassuch.Whenyoulookforsupportandadvice,youfindthatnoonecanunderstandyouruniqueposition,teamandcontext.Ifyouworkforalargerorganisation,youareinluck–youhaveotherTechLeadsaroundyou.Buteventhen,youcannoteasilyseehowtheyruntheirteamsandevenlesslikely,howtheythinkthroughtheproblemstheyface.

IstartedthisbookprojectbecauseIsawhowdevelopersstruggledtoadapttothedifferentskillsandresponsibilitiesthatcomewiththeTechLeadtitle.Theexperienceyougainasadeveloperdoesnotprepareyoufortheresponsibilitiesoftherole.Unlikethebountifulnumberofbooksonprogramming,therearefewresourcesthathelpdevelopersprepareforthisrole,orhelpTechLeadsdevelopthemselvesfurther.

ThisbookhelpsyouonyourjourneytobecomingabetterTechLead.

Whatyou’llfindinthisbookThisbookoffersyoutheexperiencesfromreal-lifeTechLeads.IwantedthisbooktorepresentawidespectrumofexperiencesandfoundTechLeadswhoworkallovertheworldindifferentcircumstances.

SomeTechLeadworksforverylargeorganisations,whilstothersworkforverysmallgroups.Theirteamswritesoftwareinindustriessuchastravel,finance,realestate,media,andconsulting.SomeTechLeadsguideateamofveryexperienceddevelopers,whilstothersleadateamwithamixofexperience,includingdevelopersrelativelynewtotheindustry.Withthisspectrum,Ihopetherearepeopleyoucanrelateto,andalsonewcircumstancestobeawareofintheroleofaTechLead.

TheTechLeadssharetheirviewstheirroleandhowtheysolveproblemsthroughaseriesofcuratedinterviews.Thestructureoftheinterviewswasintentionallysimilar,inordertoseehowdifferentTechLeadsresponded.

Youwillfindthatthereisnosinglebestwaytoleaddevelopmentteams.Instead,youwilldiscoverdifferentapproachestodealingwithdifferentaspectsoftheTechLeadrole.

Page 9: Talking with Tech Leads_ From N - Patrick Kua.pdf

Acknowledgements

Firstofall,Iwouldliketothankallthecontributors.Iknowhowtime-consumingtheTechLeadroleisandittooksignificantnumberofhoursforeachpersontothinkaboutandwritedowntheirthoughtsabouttherole.Sharingstoriesabouttoughtimesrequireshumilityandeveryoneofferedtheirexperiencestoshareandlearnfrom.

I’dliketogivespecialthankstocontributorsintheNovicesectionofthebook.Notonlyweretheyhardtosource,becausebeingaTechLeadforthefirsttimehappensonlyonceofcourse,buttheywerealsocourageousinsharingtheirexperienceswiththeworld.

Thankstootothecountlesspeoplewhohelpedputmeintouchwiththepeopleincludedinthebook.Withouttheirrecommendationsandpeopletheyintroducedmeto,Iwouldnothavebeenabletopassonsuchawidevarietyofexperiencesandbackgrounds.

IrecognisethatthecontentsmaybealittlebiasedwithmanypeoplehavingsomeconnectionwithThoughtWorks.Thisisdowntomybackgroundandnetwork.Iworkedconscientiouslytocastmynetfurtherafield,attemptingtocaptureTechLeadsworkinginadiversesetofcompanies,industries,andwithabroadrangeofexperiences.Ihopethatasareaderyoubenefitfromthis.

I’dalsoliketothanktheeditorIcollaboratedwith,AngelaJamesonPottsofVirtualEditor.Itwasagreatpleasuretoworkwithheragain,andIgreatlyappreciatedherflexibleapproachtoworkingwithverynon-traditionalbookformattingtools.

Finally,Iwanttoacknowledgeyou,thereader:thankyouforselectingthisbook.Ihopeyoulearnmuchfromit.

Page 10: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 11: Talking with Tech Leads_ From N - Patrick Kua.pdf

Testimonials

“IwishIhadreadthisbookfiveyearsago.ItchangedthewayIworkedthedayafterIreadit.IwouldrecommendittoanyneworaspiringTechLead.”

–DavidMorgantini,TechLead,UKGovernmentDigitalService

“Reading‘TalkingwithTechLeads’islikegoingtoaconferenceandwatchingagreatpaneldiscussiononleadingteams.”

“ThisbookhasmademerethinkmypositionandthewayIworkwithmydirectreports.”

–NickMalnick,TechLead,DRWTradingGroup

“Iliketheevolutionofadvice,commentsandinterviewsandincreasingdepthandcomplexitygeneratedbythebookstructure.”

–HugoCorbucci,TechLead,ThoughtWorks

Page 12: Talking with Tech Leads_ From N - Patrick Kua.pdf

Introduction

IntheBeginningTechnicalLeaders–TechLeadsforshort–almostallstartoutinthesameway:aprogrammerorsoftwaredeveloper,eitherbycircumstanceorthroughthepassingoftime,whoisaskedtotakeontheTechLeadrole.Thestoryoftengoessomethinglikethis:

MeetBrian.BrianworksasadeveloperforZalana,acompanysellingasoftware-as-a-serviceproducttopeoplewhoworkinHumanResources.BrianhasbeenwithZalanasinceitsstart,threeyearsago.

Overtheyears,thedevelopmentteamhasgrownfromjustBriantothreeotherdevelopers.TheotherdevelopersreallyrespectBrianforhisabilitytodesign,testandwriterobustcodethatisalsoeasytounderstand.Sheryl,theProductManager,drivestheproductdirectionandalmostalwaysapproachesBrianwhenshehasquestionsbecauseshefindshecommunicateswellwithher.Heisparticularlygoodatexplainingtechnicalsolutionsorconstraintstoher.

Oneday,thefounderofZalana,BobinvitedBrianoutforbreakfast.BrianthoughtthisalittleunusualbecauseheknewBobneveratebreakfastandpreferredtospendtimelateintotheeveningswithinvestorsandpotentialcustomers.Intriguedandslightlyconcerned,BrianagreedtomeetBobatacosyFrenchrestaurant.Brianarrives,seesBobonhissmartphone,readingandrespondingtoemails,andsitsdownopposite.

BobseesBrianapproachandputsdownhissmartphone.Bobsmiles,waitingforBriantositbeforeannouncing,“Brian,Ihavesomeexcitingnews.Ourbusinessisdoingwell.Wehavejustsignedthreebigcustomers.Iknowthedevelopmentteamhasbeenworkinghard.Wecanreallyseetheresults,butweneedtogrowtheteam;doubleortripleitifneedbe.”BobpausestoscanBrian’sface.“WewantyoutotaketheTechLeadrole.”

Page 13: Talking with Tech Leads_ From N - Patrick Kua.pdf

Brian’smindisreelingattheprospectofthreenewcustomersandthefreshstreamofdemandsonthedevelopmentteam,aswellastheofferofanewrole.Questionsracethroughhishead:Whyme?Whatwillinvestorsandtherestofthebusinessexpectofme?Howwilltheotherdevelopersseeme?WillIstillgettowritecode?

BrianknowsBob’simpatientbutgoodnatureandanswers,“OK,I’llgiveitago.”But,asBobordersanothercoffee,Brianlooksathismenuandthinks,“Nowwhat?”

Althoughthisispurefiction,itillustratesthelessonunderlyingmanyoftheinterviewsinthisbook.TheTechLeadroleisquitedistinctfromthedeveloperrole,eventhoughtheyoverlaptosomedegree.However,thosewhomoveintotherolearealwayssurprisedatwhatthedifferencesare.LikeBrian,manyfindthemselvesthrustintotheroleofaTechLeadbychanceoropportunity,anditwasonlywhentheyfoundthemselvesintheTechRolethattheyrealisedthedifferentresponsibilitiesrequiredmanyskillsthatyoudon’tdevelopintheroleofaprogrammer.

Thetimeyouspendhoningyourdevelopmentskills,suchasseeingpatternsincode,refactoringcodetobeeasiertomaintainorextend,andwritingtestsdoeslittletoprepareskillsinresolvingconflict,establishingateamculture,orcommunicatingtechnologyinwaysthatnon-technicalpeoplecanunderstand.

TechLeadsalmostalwaysfindthemselvesworkingsoloandthequestion“AmIdoingtherightthingsasaTechLead?”isoftendifficulttoanswer.Mostdevelopershaveotherdeveloperstoaskfortheiropiniononwhichtoolorframeworktouse,ortogetfeedbackonthedesignortestabilityoftheircode.ATechLeadrarelyhasotherTechLeadsaroundtoshareideasonapproachingpeopleproblems,orwaystomoreeffectivelycommunicatepressingtechnicalmatterstothebusiness.

Thiscollectionofinterviewsprovidesthatmissinglink:howothersapproachtherole,thechallengestheyhaveandthedifferentexperiencesdemonstratethewayspeoplesucceedindifferentwaysasaTechLead.

FromTechLeadstoTechLeadsForthepurposesofthisbook,IdefineaTechLeadas:

Aleader,responsibleforadevelopmentteam,whospendsatleast30percentoftheirtimewritingcodewiththeteam.

Ifeelthatwritingsomecodeisanimportantaspectoftechnicalleadership.Havingatechnicalbackgroundisnotusuallyenoughtohelpfacilitatediscussionsormitigatetechnicalrisk.SomeorganisationshaveroleslikeTechnicalManager,DevelopmentManagerorTeamLeadandpeopleintheserolesdonotwriteanycode.Thisbookdoesnotattempttodescribetheirresponsibilitiesorchallenges.

Thisbookfocusessolelyongivingadvicetosoftwaredeveloperswhosuddenlyfindthemselvesdealingwithsignificantly,butnotexclusivelynon-technicaltasks.Suddenly,whengiventheTechLeadrole,adeveloperisrequiredtobalancenewnon-technicaltasks

Page 14: Talking with Tech Leads_ From N - Patrick Kua.pdf

withtheirfamiliarworldofdetaileddesign,solvingsoftwareproblems(notpeopleproblems!)andcuttingcode.AlthoughmanypeoplecouldhavegivenresponsestowhattheyfeelaTechLeaddoesorshoulddo,IwantedtocollectlessonsandexperiencesfromrealTechLeads.ThecontributorsIhaveincludedinthisbookmatchtwosimplecriteria:

1. Theyareresponsibleforateamofmorethanthreedevelopers;2. Theywritecodewiththeteam.

ThesetwofactorsexcludedmanywhowouldtypicallybeartitlessuchasSoftwareArchitect,TeamManager,DevelopmentManager,HeadofDevelopment,orAgileCoach.ThepeopleplayingtheserolesmayhaveverygoodideasandopinionsbutIwantedtoavoidtheoldadage:

DoasIsay,notasIdo.

Ratherthangivingyouideasthatmaynothavebeentriedandtested,Iofferyoustoriesandlessonslearnedfrompeoplewithrealworldexperience,peoplewhowereplayingtheTechLeadroleatthetimeoftheirinterview.

FromNovicestoPractitionersThepeopleinthisbookrepresenttwoperspectivesthatprovidethebestinsightintotheTechLeadrole.

Novices-YouwillnotbethefirstdevelopertotransitionintotheTechLeadrole.ThepeopleinterviewedintheNovicessectionsharehowtheydealwiththetransitionfromwritingcodeallday,tosuddenlybeingresponsibleandaccountableforawholenewsetofunfamiliartasks.Eachpersoninthissectiondescribedthemselvesasa“first-timeTechLead”atthetimeoftheinterviews.Practitioners-First-timeTechLeadsquicklytransitionintoexperiencedTechLeadsinthecourseoftime.WhiletheTechLeadcontinuestoencounteruniquesituationstheydidnotexperienceasadeveloper,theycandrawonothersituationstheyhavedealtwithpreviouslyasaTechLead.ThepeopleinthissectionhaveoftenplayedTechLeadforseveralteams,orhaveplayedtheTechLeadforseveralyears.Theysharetheirwisdomandinsightstheygleanedwhilegainingmoreexperienceinthisrole.

FindingseasonedTechLeadsprovedsignificantlyeasierthanfirst-timeTechLeads,andtheunevenweightingbetweenthetwosectionsreflectsthat.WithsignificantlymoreresponsesfromseasonedTechLeads,IfoundseveralstrongerthemesemergedandIgroupedtheresponsesinto:

1. People–FocusesonthesofterskillsrequiredbytheroleofTechLead.2. TheTechofaTechLead–Outlinesdifferenttechnicalresponsibilities,which

distinguishtheTechLeadfromsimplybeingatechnicalmanager.

Page 15: Talking with Tech Leads_ From N - Patrick Kua.pdf

3. BridgingBusinesswithTech–Highlightsadifferentperspectiveandmoreoutward-lookingfocus.

4. You–Containsresponsesthatrelatetoyou,asanindividual,intheroleofaTechLead.

Ihaveattemptedtobreakdowntheresponsesintothesedifferentthemes,addinginsomeofmyownexperiencesandobservationsaboutwhatemergedintheresponses.IhopethethemesenableyoutogetunderstandandnavigatethevariousdimensionsoftheTechLeadroleandhopefullytheywillmakeiteasierforyoutoreferbacktointhefuture.

Thenextpageshowsawordcloudbasedontheresponsesinthisbook.Thewordcloudcontainskeywordsthatrecurfrequentlyandhighlightsfurtherthemesthatemergedfromtheinterviews.Youmaynoticethatsomeofthewordsinlargetypecorrespondwiththeoverallthemesthatemerged,includingfrequentuseoftheword“people”aswellasthinkingabout“code”.

Page 16: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 17: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 18: Talking with Tech Leads_ From N - Patrick Kua.pdf

Novices

“Inthebeginner’smindtherearemanypossibilities;intheexpert’smindtherearefew.”–ShunryuSuzukiZenMind,Beginner’sMind

ThestoriesinthissectiondemonstratethemostsignificantdifferencesthatdevelopersdiscoverwhentheymoveintotheroleofTechLead.Theirviewsareimportantbecausetheyhighlightthechallengesthatdevelopersfaceandhowtheymustadaptandfindtheskillsrequiredfortheirnewrole.

Withabetterunderstandingofthekeycontrastareas,organisationsandmanagementcanprovidemoresupporttopeopletransitioningtotheserolesthroughtargetedtrainingandcoaching.

AWiderOutlookDevelopersdealwiththesmalldetailsallthetime.Theymustbesurenottoforgetthatsemi-colon,thatextracomma,orsomeotherspecialsymbolthatwillmakethedifferencebetweensomethingworkingandfailing.Implementingfeaturescorrectlymeansfocusingondetailinthepresent.Gooddevelopersthinkaboutdesigningtheirfeatureandhowitfitsintothebroadercontext;TechLeadsspendmuchoftheirtimethinkingaboutthebroadercontext.

Differencesinperspective

ATechLeadspendsmuchmoretimethinkingaboutthefuturestateofthesystem,andtheimpactthataddingafeaturetodaywillhaveonaddingfeaturestomorrow.A‘good

Page 19: Talking with Tech Leads_ From N - Patrick Kua.pdf

enough’designandimplementationisnotonewheretheoriginaldeveloperistheonlypersonabletounderstandandmaintainit.ItisthejoboftheTechLeadtoconsiderwhetherornottheentiredevelopmentgroupwillbeabletounderstandandshapeit.

Aspeopleinthischapterobserve,theTechLeadhastospendmoretimeseeingthebiggerpicture;thinkingaboutthefutureconsequencesoftoday’sdecisions.Thechoiceofanewprogramminglanguagetotackleaproblemmightbetheeasiestandmostappropriatetoonedeveloperontheteam,forexample,buttheTechLeadisawareofthepotentialchallengesitcouldthrowupinthedeploymentenvironment,suchashavingthenewprogramminglanguageavailableonallmachines;makingsuretheentireteamcanunderstandandmaintainthesamecodebase;thetimethatmayhavetobespentondevelopingnewskills.

Choicesarenolongerevaluatedintermsof‘thisworksforme’,butthebroaderecosystem.TheTechLeadevaluatesadecisionintermsoftheconsequencesitwillhaveforotherparties.Theyspendmoretimeconsideringquestionssuchas:

Doesthischoicelimitwhatwecandoforthebusinessorproductmanager?Canothermembersoftheteamunderstandandchangeorextendthedesign?Willmakingthischoicethreatentheperformanceoruser-experienceforend-users?Doesthischoicesimplyshiftworktootherpartiesinourorganisationandisthatbeneficialforthebusiness?Willthisdesigncreatemoreworkinthelongrun?

SensingGreaterResponsibility

“Withgreatpowercomesgreatresponsibility”-UncleBenfromSpiderman

OrganisationsoftendesignateTechLeadsasapointofauthority.OtherpartsoftheorganisationtrusttheTechLeadtoleadtheirteamtosuccessandthisbringswithitaccountabilitytotherestoftheorganisation.

AProductManagermayasktheTechLeadtoworkwiththerestoftheteamtofindthesolutiontoaproblem,forexample,butultimately,itistheTechLeadwhowillbecalledupontoexplainwhyitisthebestsolutionorwhattheconsequencesofachoicemightbe.

WhentheymoveintotheroleofTechLead,developersfindthemselvesclosertotherestofthebusiness.Theybecomemoreawareofthetime-sensitiveaspectofmakingdecisions,becausethetimingmaydirectlyaffecttheabilityofthebusinesstomakemoneyandthesehavetoalign.

GuidingtheTechnicalVisionTheTechLeadattemptstobringteammembersclosertogether,sotheyseethingsinthesamelight.TheTechLeadappreciateshoweveryoneapproachesproblemsdifferently.TheyinvesttimeinhelpingtheteamunderstandtheTechnicalVisionsotheentireteamispullingtogetherinthesamedirection.TheTechLeadrealisestheyareultimatelyresponsibleforsteeringthegroup.

Page 20: Talking with Tech Leads_ From N - Patrick Kua.pdf

Overtime,theTechLeadstartstorecognisehowdifferentlypeoplecaninterpretthesamemessageandhastofindalternativewaysofcommunicatingthesameideatoavoidmisunderstandings.Somepeoplemayunderstandanideaaftertalkingaboutit;someneedtimetoabsorbtheideaandrespond,andyetothersfindadiagramonawhiteboardeasiertoreadbecausetheydependonvisualisation.

Asoneintervieweesuccinctlysaid:

“Communicationtakestime.”

LessTimeforWritingCodeAsIdefinedintheintroductiontothisbook,IwouldexpectTechLeadstospendatleast30percentoftheirtimecoding.Iwouldn’texpectthemtobewritingcodeallthetimebecausetheyhaveconsiderablymoreresponsibilities.TheTechLeadspendslesstimewritingcodebecauseoftheeffortrequiredtozoomoutfromthefinedetailtothebiggerpictureandtothinkabouttheimpactthattoday’sdecisionhasonthefuture.

Timenotspentcodingmaybespenthelpingotherdevelopersonproblem-solving,perhapsconnectingthemwithotherdevelopersintheteambecauseadifferentskillsetorapproachisneeded,orhelpingconnectthemwithpeopleoutsideoftheteam.TechLeadsoften(butnotalways!)havemoreexperiencethansomeofthedevelopersandsonaturally,someoftheirtimewillbespentteaching.TheTechLeadalsospendstimelookingnotjustatcodesmells,butalsoobservingteaminteractionsandenvironmentalconstraintsthathindertheteam.

TechLeadshavelesstimetospendonwritingcodebecausetheyareexpectedtointeractwithotherrolesintheorganisation.BuildingrelationshipswithotherpeopleintheorganisationtakestimeanditusuallymeanstheTechLeadneedstoattendmanymoremeetingsthantherestoftheteam.

ManynovicesIinterviewedstruggledwiththetransitionintotheTechLeadrolebecausetheyhadlesstimetowritecode.Asadeveloper,youperceivethevalueyouaddintermsofthefunctionalityyouenablethroughthecodethatyouwrite.WhenyoutakeontheTechLeadrole,thisvalueisthreatenedbecauseothertasksdrawyouawayfromwritingcode.

ItoostruggledwiththisuntilIrealisedthatthewaytheTechLeadbringsvalueiscompletelydifferent.TheTechLeadbringsvaluebyenablingeveryoneontheteamtocontributecodeasmuchaspossible;byavoidingrewritesduetopeopleworkingindifferentways;bymanagingtechnicaldebttomakeiteasiertoaddcode,andbypromotingrelationshipsbetweenthedevelopmentgroupandbusinesscolleaguestoensurethecodeaddressesbusinessgoalsanddeliverstruevalue.Asaleader,youenableotherstodotheirwork;youharmoniseandtherebymaximisetheeffortsoftheentiregroup,notjustanindividual.

JugglingMoreContextSwitches

Page 21: Talking with Tech Leads_ From N - Patrick Kua.pdf

Thepeopleinthissectiontalkaboutpickingupnewresponsibilitiesinadditiontobuildingatechnicalsolution.Theyfoundthemselvesinmoremeetings,needingtorisetoabstractlevels,orhelpingpeoplesolvedifferentproblemsinacompletelydifferentpartofthesystem.

TheroleofaTechLeadoftenrequiresmorecontextswitching,whichcancertainlybefrustratingwhenyoufirststepintotherole.Learningbettertime-managementandtask-managementtechniquesaswellasdelegationskillswillhelpyoutocope.

AllowingPeopletoFail

“Learningisthebottleneckinsoftwaredevelopment”Anonymous

BythetimeyoumoveintotheTechLeadroleyouwillhavespentsometimeintheindustryworkingasadeveloper.Youwillhavemadesomemistakes,learnedfromthemand,hopefully,beabletoguardyourselfagainstpracticestoavoid.Whenotherpeopleareabouttomakemistakes,youwillwanttojumpinbecauseyouwanttohelpavoidthem.Youmayconvincethemtouseadifferentsolution,butunfortunately,thenexttimeasimilarproblemarises,theymaynotremembertotakethatcourseofaction.

AhardlessonfortheTechLeadisallowingpeopletofail,allowingthemtomakemistakes.Failureisanaturalpartofthelearningprocess;itforcesyoutoevaluatecircumstancesandtryagain.Directingpeopletoasolutionavoidsfailurealtogether.Somepeopleareabletolearnifyouarticulatethealternativesandthethoughtprocessbehindthesolution,butinmyexperience,notmanypeoplecanlearnthisway.

Createsafetybyreducingthetimeforfeedback.Perhapsatthestartofanewtask,youcheckinwithapersondailytoseehowtheyareapproachingtheproblemandtoaskquestionstogetthemtoseetrade-offsintheirsolution.Allowthemtotrytheirownapproaches,butifyousenseitisheadinginthewrongdirection,findwaystoletthemseethatforthemselves.

Askingtherightquestions,decidingwhentocheck-in–nottoooftenandnotfortoolong–areskillsthattaketimetodevelop.

PeopleAspectsareHardPeopleIinterviewedinthissectionwroteaboutthesurprisinglydifficultsidetopeoplemanagement.Asadeveloper,youseethepeopleyouworkwithascolleagues,asindividuals.WhenyoubecomeaTechLead,harmonisingtheteamrequiresyoutospendtimeunderstandingindividualsandfocusonimprovinginteractionsbetweentheindividuals.

Workingwithacomputerisacompletecontrasttoworkingwithpeople.Computersdonottalkbackandarenot(usually)temperamental.Youcanworkwithacomputerinstantly,whereasittakestimetobuildtrustwithpeople.Computerscontinuetodotheirworkuntiltheybreak,whilepeoplehavelivesoutsideofworkthatmayaffecttheirmoodsandhowwelltheydotheirjob.

Page 22: Talking with Tech Leads_ From N - Patrick Kua.pdf

Youareapersontoo,andasaTechLeadyoumustbeawareofyourownmoodandemotions.Theteamwillwatch,observe,andjudgeeverywordyouutterandeveryactionyoumake,whetherornotyoulikeitorwantit.Youneedtoconsideryourchoiceofwordsandactionscarefullyaspeoplecanquicklymisreadandmisinterpretwhatyouintend.

Page 23: Talking with Tech Leads_ From N - Patrick Kua.pdf

ADifferentPerspective–CameronSwordsDescribewhatresponsibilitiestheTechLeadhas

Fromatechnicalperspective,myroleincluded:

Settingoutatechnicalvisionthatalignedwiththebusinessvision(althoughthiswasprettymuchdone)Helpingcommunicatetechnicalissues,problems,andsolutionstostakeholdersManagingreleases-determiningwhatwe’rereleasing,when,andwhat’spossible

Fromaleadershipperspective,myroleincluded:

Ensuringeveryonemovedinthesamedirection;towardsthesamevisionUnderstandingeachdeveloper’sgoals,interests,andstrengthsSupportingpeoplebychallengingtheminawayappropriatetotheirskills

DoestheroleofTechLeadholdanysurprises?

TheTechLeadrolegavemetheopportunitytoviewtheteamfromtheperspectiveofan“outsider”.Workingonandwithteamsasan“insider”,Iwouldoftenbequitecriticalofpeopleandthedecisionsmade;itaffectedhowIfeltaboutoursuccessasateam.

HavinganoutsideperspectivemeantIcouldunderstandhowotherpeoplemeasuretheteam’ssuccess.Itwasverydifferentfrommyown.

Theprosandcons

Idefinitelyhadmoreinfluenceonboththetechnicalvisionandthewaytheteamwasrun.Holdingthe“authoritystick”meansthereislesschanceofsomeoneelseusingthe“authoritystick”onyou.Thatgavememoreopportunitytoempowerpeopleinthetrenches.

Ispentlesstimecoding.I’dliketothinkIwouldcodemoreifIworkedwithamoreseniorteam.Ialsofoundthatmanagingpeopleisnotwhatmakesmehappy.Buildingsolutionsthatenablepeopleiswhatmakesmehappy.SotherearepartsoftheTechLeadrolethatyoujust“have”todo.

Anypreparationadvice?

IfeellikeIspentalotoftime“preparing”.Atsomepoint,IthinkyoujustneedtojumpinandplaytheroleofTechLead.

Idonoticesomedevelopers(someveryjunior)saytheywouldliketobeaTechLead.Iwouldliketofindawaytogivethemabetterunderstandingofwhattheroleis,sotheycanmakeamoreinformedjudgmentabouttheircareer.

Wheredoyougoforsupport?

Page 24: Talking with Tech Leads_ From N - Patrick Kua.pdf

TheformerTechLead(thisbook’seditor)wasonmyprojectandmentoredme.Myteamwasverysupportiveofme,particularlywhenIfirststarted.IalsofoundtheTechLeadlunchesuseful.

WhatisaTechLeadlunch?

WeheldlunchesinvitingeitherexistingTechLeadsorpeopleinterestinginbeingaTechLead.Inthisinformalsetting,wediscussedchallengingsituations,askedeachotherquestionsaboutconcernsasaTechLeadandofferedeachotherdifferentwaystoapproachproblems.

Hasyourperspectivechanged?

Asadeveloper,Ikeepmyheadupalotmorenowtotryandsupporttheleadersintheteam.

Cameron’skeyquestion:I’venoideawhatthequestionis!HereiswhatIwanttoanswer.

TakingoneofthemostexperiencedprogrammersoutoftheteamtobetheTechLeadisabrokenmodel.Iampassionateaboutfixingit.Givenmoretimeandopportunityintherole,thisiswhatI’llbetryingtodo.

Cameron’sbackgroundstory

CameronstudiedComputerScienceattheUniversityofSydneyandjoinedThoughtWorksasagraduatesevenyearsago.HemostrecentlyspenttwomonthsplayingtheTechLeadrolewithateamofabout12developers.

Page 25: Talking with Tech Leads_ From N - Patrick Kua.pdf

ChangeofFocus–AnneSimmonsDoestheroleofTechLeadholdanysurprises?

Thebiggestdifferenceformesofaristhechangeinfocus,asyouneedtofocusmoreontheoverallvision.Youstillhavetofocusonsmalltaskssuchasdevelopingfeaturesandmaintainingquality.Atthesametime,youhavetoquicklyswitchfromthatmicroviewtoamoremacroviewoftheproject.

Youneedtoconsiderafeature’simpactontheoverallsystemarchitecture,spendmoretimeguidingthedirectionoffeaturesandgivinginputintoupcomingwork.Ihavefoundthatyouneedtoswitchcontextsfairlyfrequently,andoftenswiftly,aspeoplecometoyouforhelporquestions.

Theprosandcons

Ienjoythesenseofresponsibility.Ienjoybeinginapositiontohelppeopleuntangleproblems,andfiguringouthowtogetthebestoutofeveryone.Ialsoenjoybeingpartoftheplanningprocessforfutureworkandtheincreasedengagementwithotherroles.

WhatIfoundhardwasknowingwhattoworryabout,andwhatnotto.Istillfinditdifficulttoworkoutwhich‘smells’tofocusonintheshortterm,andwhichonesareokaytodeferworryingabout.Ithinkalotofthiscomeswithexperience.Ihavecometorealisethatyoucan’ttackleorworryabouteverythingatonceanditisachallengeformetoletgoenoughforthingstosortthemselvesout,whichtheyoftendo.Ifinditiseasytogetoverwhelmedwithallthedifferentaspectsoftherole.

Anypreparationadvice?

Onmypreviousteam,weintroducedtheroleofFeatureLead.AFeatureLeadtakesresponsibilityforthedirectionandcompletionofawholefeature.Theytakepartintheanalysis,domainmodellingandarchitecture,aswellaspartofthedevelopment.IthinkthisisagreatwaytogetexposuretosomeoftheTechLeadresponsibilitieswithoutactuallybeingtheTechLead.

Wheredoyougoforsupport?

ItrytogetthemostoutofthegreatTechLeadsonmyteam.Iasktoattendsomeoftheactivitiestheyrun,andaskthemtoexplainthethoughtprocessesbehindwhyandhowtheyprioritiseandmakedecisions.

ItwouldbegreatifthereweresomekindofmagicaltrainingcourseorbookthattoldyouhowtobeagreatTechLead;atthemoment,youseemtojustgetthrownintotheroleandhavetofigureitoutalongtheway.

Hasyourperspectivechanged?

AfterplayingtheroleofTechLeadroleonce,Itrytomakesurethat,asadeveloper,IunderstandhowtheelementIamworkingonfitsintothebiggerpictureoftheapplication.

Page 26: Talking with Tech Leads_ From N - Patrick Kua.pdf

Ithinkmoreabouthowitcontributestothewiderstrategyandpurpose.

IalsotrymoretogetinvolvedwithadjacentteamsandplanningofstoriessothatitisnotalluptotheTechLead.

Anne’skeyquestion:WhatdoyoufeelthattheroleofaTechLeadentails?

IthinkeveryonehasdifferentexpectationsofaTechLead.Somepeoplewantacommand-and-controlstyle.Theywantatechnicalpersonwhowilltellthemhowtodoeverything.Otherswantsomeonewhowillleadtheteamandhelpthembecomeabetterworkingunit.AlltypesofpeoplecanmakegreatTechLeads,aslongastheyaresurroundedbypeoplewithcomplementarystrengths.But,ifyouareonetypeofleadandpeopleareexpecting,orwanting,anothertypeofTechLead,fulfillingtherolecanbehard.

Anne’sbackgroundstory

AnnegraduatedfromQueen’sUniversity(Belfast)andjoinedThoughtWorksasagraduate,workinginCanada,allovertheUSandintheUK.Sheiscurrentlyaseniordeveloper,workingaspartofamixed-disciplinedevelopmentteam.Shehas,morerecently,startedtotakemoreofaleadroleinthedevelopmentteam,leadingthedesigninfeatureareasorfillinginfortheTechLeadwhentheyareaway.

Shefeelsliketheroleisanaturalprogressionassheenjoysmentoring,coachingothersandbuildingbondswithinandbetweenteams.

BeforejoiningIT,shemoonlightedasaskiinstructor!

Page 27: Talking with Tech Leads_ From N - Patrick Kua.pdf

NeedsforaWiderSkillSet–EbonyPierceDoestheroleofTechLeadholdanysurprises?

TheprimarydifferencebetweenmyroleasdeveloperandmyroleasTechLeadisthefocusofprojects.Asadeveloper,Iwasresponsibleformyroleandmydesignatedprojectdeadlines.Myconcernwasalwaysteamoriented,makingsurethateveryoneworkingontheprojectwasabletomeettheprojectdeadline,butmyfocuswasprimarilyonprojectsthatIwasworkingon.

AsaTechLead,Ihavetobenotonlygoal-oriented,butalsopeople-oriented.WhereIusedtoberesponsibleforonlymywork,Isuddenlybecameresponsiblefortheworkofseveraldevelopersandmultipleprojects:ensuringthatdeadlinesarenotslipping;motivatingdeveloperstopressforwardbutcheckingtheyarenotstretchedtoothinly;ensuringthatmoralisnotslipping;watchingmytoneandconsideringthewayinformationiscommunicated;ensuringdevelopershavetheresourcestogettheirprojectscompleted,andthatresourcesaremanagedappropriately.

AfewofthechallengesthatIhaveinclude:goingfrommanagingmyownworktotheworkofothers;goingfromworkingalongsidedevelopersforyearstomanagingthem;monitoringhowIspeaktoindividualstominimisemisunderstandings;drawingadistinctlinebetweenprofessionalandpersonal,andhavingtoreframeconversationsandsituationssoasnottooffendanyone.Thehardestpart,inmymind,istheshiftfromworkingalongsidepeopletomanagingthem.Itissometimesdifficulttoseparatethetwo,becauseasateamplayer,youcoverforaco-workerifyouknowtheyarelacking,butasalead,youareresponsibleforgettingthingsdoneandyoureallyhavetochangethewayyoulookatthings.

Theprosandcons

OneofthethingsthatIlikeabouttheTechLeadroleisthatIhavetheopportunitytoseethewholepicture.Iseehowtheday-to-dayworkinteractswiththecontractandcompany,andhowmycontributionsandthecontributionsofthedevelopersdirectlyaffectthesuccessoftheentirecompany.

Honestly,thethingIdislikemostabouttheroleisdealingwithpeople.Foralongtime,Ihaveworkedwithcomputers:youtellthemexactlywhatyouwantandtheycompleteatask.Itisdifficulttotransitionintoarolewhereyoumanagepeople,becausepeopledonotworklikecomputers.Ifyoutellapersonsomethingtheyarenotreceptiveto,severalthingscouldresult:theymaydowhatisrequested;theymaysaythey’lldowhatisrequested,thenunderperformortakeapassive-aggressiveapproach;theymaysimplynotdowhatisrequested.Itisdifficulttoadaptyourapproachforeachindividualbasedonpersonalityandtemperament,whereasforacomputer,thelanguageisalwaysthesame;theydonotreadintotoneorbodylanguage:aslongasyourdirectionsarespecific,thetaskiscompleted.

Page 28: Talking with Tech Leads_ From N - Patrick Kua.pdf

Anypreparationadvice?

Ithinkthatthebestthingtoprepareforthisrolewouldhavebeenadegreeinpsychology,withafocusonbodylanguagereadingandnon-verbalcommunication,andasolidpokerface.AsIdon’thavethat,Ithinkavariedexperienceisimportant.ThebestcharacteristicsofaTechLeadincludeadaptability,agility,competence,character,reliability,trustworthiness,anddefinitelyathickskin.Noneofthesearetechnicalskillsthatcanbetaught;theycanonlybedevelopedwithpracticeandfromexposuretodifferentexperiencesandsituations.TechLeadshavetopushthemselvesintochallengesanddifficultsituations,takestretchassignmentsoutsidetheircomfortzone,andpractiseleadingmeetingsandpresentations.TechLeadshavetolearntokeepemotionsoutoftheequationandmaintainobjectivity.

Wheredoyougoforsupport?

Idrawsupportfromdifferentmentors,mostofwhomaremen.Iusethemassoundboardsforideas,toprovideamaleperspectiveofmymethodsandapproachandtohelpmetounderstandhowmaleco-workersmightperceivemyactions.Ialsodrawsupportfrommyfamilyandfriends:focusandobjective.Ihaveseveralfemalementorstoturntoforadviceandinspiration.Iamlearningtofindanappropriatework-lifebalance,andtomaintainthisItakeregularvacationswhereIfocusonme.Theseprovideopportunityformetorenewand“storeup”self-supportforalaterdate.

Hasyourperspectivechanged?

Asadeveloper,I’vealwaystriedtohaveacompleteunderstandingofthesystemthatIwasworkingonandI’vetriedtobepromptasfarasdeadlinesareconcerned.Iwouldnothavedoneanythingdifferently.ForotherdevelopersconsideringthetransitiontoTechLeadatsomepoint,mysuggestionwouldbetoaskwhy.Ittakesaboutfivewhystogettotherootcauseofanissue;toidentifywhatneedstobeimprovedandtogainabetterunderstandingofwhatneedstobedone.

Developerswhoarelookingtobranchoutneedto:

BecuriousBethoroughReadeverythingMaintainobjectivityUnderstandthebigpicture.

Ebony’skeyquestion:Howdoyoumaintainthedrivetocontinuewithsuchanarduousjob?

Imaintainthedrivefromthesecureknowledgethatmycontributionmattersandthatotherpeoplearedirectlyaffectedbymycontribution.Itsoundslame,butit’strue.

Ebony’sbackgroundstory

EbonystartedinITasaSoftwareDeveloperbuildingawebsiteusingclassicASP,JavaScript,CSSandHTML.Atthetimeofthisinterview,shewasworkingonateamofninepeopleandgraduatedintotheroleofaTechLeadafterworkingwithherteamfor

Page 29: Talking with Tech Leads_ From N - Patrick Kua.pdf

severalyears.Althoughshedidn’thaveabackgroundin.Nettechnologies,shewonherteamoverwiththreemonthsoffocusedself-studyandresearch.

Page 30: Talking with Tech Leads_ From N - Patrick Kua.pdf

JugglingAct–SiebertLubbeMyviewoftheTechLeadrole

Ithinkit’smyresponsibilityasTechLeadtoleadtheteamingoodsoftwaredesignandarchitecture.Wemakemostdesigndecisionstogetherasateam,butitismyresponsibilitytofacilitatethedesignsessionsandensurethatwhatweproduceisofhighqualityandalignedwiththeorganisation’stechnicalvision.

MentoringtheteamandteammembersingoodsoftwareengineeringisalsopartofwhatItakeon.Ispendtimewithindividualsandtheteamasawholetodiscusscodequality,bestpracticesanddesigndecisions.Oursoftwareinfrastructureisincreasinglycomplex,soItrytobeavailabletonewteammemberstointroducethedifferentaspectsofoursystems.

Weoperateinacontinuousdeliverymodel.Itakeownershipofourbuildanddeploymentpipelinesandensurethatthesepartsofourdevelopmentprocesssupportourdeliveryrequirements.Wearealsokeenadoptersofagilepractices,soIensurethatwestaytruetothiswayofworkingduringthedevelopmentprocess.

Communicatingtakesupabigpartofmyday.Iliaiseconstantlywiththebusinessanalystanditerationmanagertoensurethatourteamisalignedwiththeproductvisionandbroaderbusinessdirection.Ialsospendsignificanttimecommunicatingourtechnicaldirectionwithexternalstakeholders.Ourdevelopmentteamisoneofmanyinourorganisationthatworkconstantlyonthesameinfrastructureandcodebases;itispartofmyresponsibilitytomaintaincommunicationwiththesedevelopmentteamsandtheirTechLeadstoco-ordinatedevelopmentefforts,releaseactivitiesanddesigndecisions.

Iamstillaprogrammeratheart.IlovewritingcodeandImakeitapriority.Ibelievethatstayinghands-onisthebestwaytounderstandourfullstackandenablemetoleadourteamtechnically.

DoestheroleofTechLeadholdanysurprises?

Asadeveloper,Iwasusuallyabletofocusononetaskatatime;asTechLeadIoftenhaveafewthingsgoingonatthesametime.ThenumberofinterruptionsIhavetodealwithonanyparticulardayhasincreasedsignificantly.Thiscallsforfrequentcontextswitches.Isometimesfinditdifficulttomeasuremyownefficiencyandprogress.Learninghowbesttomanagemypersonaltimeisanongoingjourney.

Theprosandcons

Ireallyenjoyseeingthebiggerpictureacrossallaspects,includingproduct,businessandtechnology,andbeinginvolvedinshapingthebiggerpicture.ItisveryrewardingtobeinapositionwhereIcaninfluencetechnologydecisionstobestachievebusinessrequirements.

Page 31: Talking with Tech Leads_ From N - Patrick Kua.pdf

Ialsogetgreatsatisfactionfromleadingateamtowardsacommontechnicalvision.FacilitatingtechnicaldiscussionsandmotivatingtheteamtotechnicalexcellenceissomethingIenjoyalot.

Beingverymuchadeveloperatheart,Ihavefoundithardtogetusedtotherealityofwritinglesscode.Ontheflipside,however,theexperiencehasopenedmyeyestoanumberofnewareasandchallengesinsoftwaredevelopmentthatIfindveryexciting.

Anypreparationadvice?

IfeelthatIhavehadexperienceinmostoftheareaswhereIrequireskills:leadingateam,understandingourorganisation’ssystemsinfrastructure,timemanagement,softwarearchitectureskills,andagilemethodologies.However,moreexperiencewouldalwayshavebeenbetter,andImighthavefocusedabitmoreontheseareashadIknownwhatwasgoingtoberequiredofmelater.

Ithinkitisimportanttohaveamentorfromthebeginning.Ihavesupportnow,butIdidn’ttostartwith.IwouldrecommendanyonemovingintotheTechLeadroletoseekmentorshipfromanindividualthattheyrespectandtrust.

Wheredoyougoforsupport?

MylinemanagerhasbeenhelpfulindefiningtheexpectationsformyroleandsettingobjectivestoaddressmyskillgapsasIwassettlingintothenewrole.Thishasbeenagreatsourceofsupport.IhavefoundthatdiscussionswithmylinemanageraremostconstructivewhenIamhonestandclearaboutwhichareasIwouldliketoimprovemyskillsetin.

Discussingmyroleandcurrentchallengeswithcolleaguesoutsideofmyimmediateteamisalsohelpful.Thiscouldmeanasimpleadhocchatoveracoffeeorbookingafortnightlymeeting.Inmycase,therehavebeentwoindividualsthatIrespectalot:oneapeerwithalittlemoreexperiencethanI;theotheraseniorwithquiteafewyearsofexperienceandawealthofknowledge.

Hasyourperspectivechanged?

Iammoreawareofthebiggerpicturenowandofhowwhatwedocontributestotheorganisation.Myperspectivehaschangedaboutwhatisavaluableinvestmentoftimeandefforttowardstechnicalandultimatelybusinessvision.Ihavealwaysvaluedcleverengineeringsolutions,butIamincreasinglyawarethatgoodsoftwaredesigndecisionsleadtomorefuture-proof,easy-to-maintainsystems,andmustbewellalignedwithbusinessrequirements.

Siebert’sbackgroundstory

SiebertstudiedComputerEngineeringattheUniversityofPretoria,SouthAfricaandhasbeenworkinginITforthelast10years.Hegetsexcitedaboutallthingsrelatedtosoftwaredevelopmentalthoughhehasaparticularlykeeninterestinsoftwaresecurity.

HecurrentlyholdstheTechLeadroleforadevelopmentteamatrealestate.com.auinMelbourne,Australia.

Page 32: Talking with Tech Leads_ From N - Patrick Kua.pdf

TheExternalFace–LizDouglassDoestheroleofTechLeadholdanysurprises?

Theexternal-facingaspectofmyroleisnoticeablydifferentfromwhatI’vedonebefore.Aswellaskeepinganeyeonwhat’shappeningwitheachdeveloperandtryingtoanticipatewhat’scomingupwithintheteam,I’vefoundthatIneedtokeeparegulardialoguegoingwiththeteamsthatwepartnerwith.ThisincludesbothITgroupssuchasinfrastructure,BAU(businessasusual),architecture,aswellasnon-ITgroupssuchasSalesandMarketing.Establishingandmaintaininggoodrelationshipsoutsidetheteamhasbeenreallyimportantforus.

Theprosandcons

Overall,Ireallyenjoytherole.Ilikebeingabletoshareideaswithmorepeopleandworkthroughhowwecanachievethebiggestandfastest.Ienjoygrabbingawhiteboardmarkerandfacilitatingdiscussionsaboutwhatwe’redoingandhowwemightprogress.

Thatsaid,Idon’tthinkI’veyetmasteredtheabilitytodelegateandIoftenfindmyselfwithtoomuchonmyplate.Ireallydislikeleavingmypairwhenwe’reankle-deepinastory.IalsothinkplayingtworoleshasanegativeimpactontheteambecauseI’mnotaroundallthetime.

Anypreparationadvice?

IamnotsurethatIcouldhavebeenbetterprepared.Youneverknowinadvancewhatyou’regettinginto,andthat’soneofthebestpartsofwhatwedoasconsultants.InyearsgonebyIhavebeenconcernedaboutneedingto‘knoweverything’inordertobeaTechLead,which,ofcourse,isafallacy.Surroundingyourselfwithpeoplewhohavedifferentexperiencesandideasisthekeytobeingabletocopewithanythingthatcomesup.

Wheredoyougoforsupport?

IthinkI’vebeenquitefortunatetohavealwayshadanamazingsupportnetworkaroundme.Onthisprojectwehaveaterrificteam,includingaprojectmanagerwhoexpertlymanagestheexternalstakeholders.Wealsohaveanexcellentbusinessanalyst,whoisreallyinvestedintheclientandisagreatfacilitatorandnegotiator.

IalsohavethesupportofScottShaw,aseniortechnologist,whocomesonedaypermonthtovisittheteamandgivesusadviceonarchitectureandtechnologies.

Hasyourperspectivechanged?

Iamprobablymoreattunednowtothebroadercontextoftheteamandtheclientorganisation.Iamnowevenmoreofanadvocateofgettingoutofyourchairandspeakingtoothers-itcansavealotoftimeanditalwaysleadstobetteroutcomesforeveryone.

Liz’sbackgroundstory

Page 33: Talking with Tech Leads_ From N - Patrick Kua.pdf

Lizstartedhercareerwitharadicallydifferentbackground,firstlygraduatingfromUniversityasanaerospaceengineerfromtheRoyalMelbourneInstituteofTechnology.Sheworkedforacoupleofdifferentaerospacecompanieswhichfirstbroughtherintocontactwithsoftwareengineersandshelearnedaboutbuildscripts,unittestsandothersoftwaredevelopmentpractices.

ShejoinedThoughtWorksasadeveloperandhasworkedinseveralcountrieswithdifferentteamsandroles.Inhercurrentrole(atthetimeofthisinterview)sheplaysboththeroleofTechLeadandClientPrincipalinbuildingareplacementandrefreshofaclient’sonlinepresence.

Editor’snote:TheClientPrincipalisresponsibleforbuildingandmaintainingrelationshipswithcustomers.

Page 34: Talking with Tech Leads_ From N - Patrick Kua.pdf

ChaosandCluelessness–RoyOsheroveDoestheroleofTechLeadholdanysurprises?

OnmyfirstTechLeadrole,whatsurprisedmethemostwasjusthowlittleeveryoneelsearoundmeknew:aslittleasme.WhateverquestionsI’vehad,I’vereceivedeitherincompleteorjusthorribleanswersfrompeoplewhomIlookeduptoinotherleadershiproles.

Forexample:‘Whatarewesupposedtodowiththecustomermeeting?’and‘Howdoweworkouttherequirements?’.ItseemedthateveryonearoundmewaswingingitasmuchasIwas.

Theprosandcons

Thefactthattherewaschaosandcluelessnessaroundmewasactuallyagoodthing.Itallowedsomeonelikeme,withalittledeterminationandalittleaudacity,todowhatIneeded,wanted,andfeltwasbestformyteam.Peoplewouldaskme,‘Arewethereyet?’oraskmetofinishthingsinhalfthetimeactuallyneededtoaccomplishthem,butultimatelyIwastheonedictatingtheprogressandqualityoftheproject.Thisisgreatifyouwantthechancetoexperimentwithdifferenttechniquesinarelativelyrisk-freeenvironment.Thatparticularprojectwasheadingforfailureanyway,soItriedtoatleastdoitwithsometest-drivendevelopmentbuiltin,eventhoughthattakestimetolearn.

Anypreparationadvice?

Iwouldhavelovedsomeonetotellmehowtorespondwhenaskedforunreasonablethings.Myusualreactionwas,‘Well…we’lltry.’Idon’tdothatanymore,butsomeoneshouldhavetoldmeitwasmyjobtodomyjobandnotrolloverandacceptunacceptablerequests.

Wheredoyougoforsupport?

IreadTheMythicalManMonthandTestDrivenDevelopmentbyExample.Ikeptreadingmoreandmorebooksandrealisedeveryonehasadifferentopinion,andnobodyreallyknowswhat’sreallygoingon.Yearslater,afriendtoldme,‘Therearenoexperts,thereisonlyus.’Hewasright.

Roy’sbackgroundstory

RoywasbornandraisedinIsraeli.HeistheauthorofTheArtofUnitTestingandNotestoaSoftwareTeamLeaderandhasworkedwithtechnologyformorethan15years.

Heiscurrentlyaseniordeveloper/coach/architectinateamworkingonagovernmentprojectinNorway.

Page 35: Talking with Tech Leads_ From N - Patrick Kua.pdf

MoreThanJustTech–PriyankGuptaMyviewoftheTechLeadrole

IbelievetheTechLeadisresponsiblefor:

TheArchitectureandTechnicalSolution-Weworkedforasmallcompanythatwasonamissiontoreducepaperandwespearheadedtheideaofdigitalfilingcabinets.Theappetiteforinternalhostingandinfrastructurewaslowandtheneedtoinnovatewaspressing.Aspartofthatwecameupwithadigitalecosysteminthecloudtohelpendcustomersaccessdocumentsubiquitouslyandsecurelyonallsortsofplatformsanddevices.Fromtheoutset,myrolewastocollaborate,guide,andsuggestasuitabletechnicalarchitectureforthesystem.Itinvolvedreasoningandresearchtofindasuitabletechnologytoprovidebalancebetweenspeedofdevelopmentandscalability.Theanticipatednumberofendusersinthefirstyearoflaunchwasinthehundredsofthousands.

Inaddition,IfocusedondesigningtheAPI,thewebplatformdesignandinfrastructure,andthedeploymentprocess.

Representingtheoffshorepresence-AsIwasonshore,closertotheclient,oneofmymainresponsibilitieswastoliaisewith,andonbehalfof,theoffshoreteam.Ivoicedtheirconcernsandissuestothetechnicalfolkonshoreandensuredthateveryonewasonsamepage.Irelayedanyimportantoccurrencesbacktotheoffshorecontingent;anychangesinpriorityandthetechnicalimpactsbackandforth.Ididthisforacombinedperiodofaboutsixmonthsontheproject.Coordinatingacrossteamroles-Wewereoneofthecoreteamsworkingontheproductandhadseveralotherteamsworkingalongsideus:desktopAPIconsumers;mobileappdevelopers;e-commerceplatformteam,etc.Myday-to-dayjobentailedinteractingwiththemtotroubleshootAPIissues,lookingatdesignproblemsfromconsumerperspectives,andco-ordinatingdevelopmentofAPIandfeaturesthatconsumersreliedon.Thisgavemetheopportunitytoanalysealltherelevantstories,sincetechknow-howwasrequiredtodetailthemout.Mediatingdecisions-Beinginanopinionatedteamisagreatlearningopportunity,butitcanmeanthatdeveloperhuddlesgoonforever,duetodividedopinions.OneoftherolesIassumedwastocollatetheideasandbringeveryonetoanagreement,eitherbyforcingdecisionsorweighingupbusinesscontext,needs,andtrade-offs.So,whileweworkedinafairlyrationalanddemocraticway,Iwasrequiredtotakeastandandagreeonanapproach.Developing-Formostofthetime,Iwasadeveloperontheteamandthiswasmyfavouritepart.Idevelopeduserstories,butIrarelydrovethemtocompletion,relyingonmypairforthat.Irotatedfrequentlytoswitchcontextandgainanoverallideaof

Page 36: Talking with Tech Leads_ From N - Patrick Kua.pdf

theapproachourteamwastakingondifferentaspects.Thishelpedmetoconnectthedotsindifferentdiscussionswiththeotherdevelopers.

DoestheroleofTechLeadholdanysurprises?

Acoupleofsurprisesstandoutforme;thebiggestwasthatmostoftheissuesIhadtodealwithwerelessabouttechnologyandmoreaboutpeople.Ihadtobalancetheneedsandaspirationsoftheteamwithbusinessneeds,tomaketechnicalrecommendationsorpushbackoncertaintechnologychoices.Beingexposedtoconcernsfromboththebusinessanddevelopersshiftedmyperspectivefrombeingfocusedsolelyontechnologytoconsideringthebusinessimpactaswell.Bytheendoftheproject,businessdrivershadbecomethecentralconsiderationinmakingdecisions.

Anothersurprisewastheneedtolearnhowwellmotivatedmyteamwas.Ididthisbytalkingtotheteamregularly,buildingrapportwithindividuals,andfindingoutabouttheirindividualstrengthsandaspirations.Ithinkthismademeabetterteamplayerandusabetterteam.WhileIhavealwaysacknowledgedtheimportanceofacloselyknitteam,thisgavemefirst-handexperienceofwhatgoesintoproactivelybuildingone.Thegreatpartwasthat,althoughweweredistributed,co-sourced(ThoughtWorksandtheclient’sdevelopers),andmostofushadneverworkedwithanyoneelsebefore,thespecificthingsweorganisedtobuildrapportworkedreallywell.ThisturnedouttobemyfavouriteteamofmylastfouryearsatThoughtWorks.

Onthedownside,Ihatedmyinabilitytoformanopiniononcertainmatters.Asadeveloper,IhadhadtheluxuryofnottakingpartinadiscussionifIdidnothaveanopinion.AsTechLead,peoplelookedtometodrive,mediate,andfacilitatediscussion,andthiswasmuchharderifIdidn’thaveanopinion.Itsurprisedmehow,suddenly,itwasveryimportanttohaveanopinion:todefendorargueagainstcrucialbitsthatwouldshapetheprojectarchitecture.Ispentconsiderabletimeonthis:buildingknowledgetohelpmeformaninformedopinion;questioningandreasoninginothersubjectareas,wheredepthofknowledgewasn’ttherootcause.

Theprosandcons

Ilovecoding.Ilovebeingimmersedinapieceofcodeandtakingittocompletion.ButasTechLeadIhadtogetsomecontextonalmostallpartsofthecodesothatIcouldparticipateinavarietyofdiscussionswithoutgettinglost.ThismeantIhadtorotatefrequently,whichtookmeawayfromcomponentsIwouldhavelovedtospendtimeworkingon.

AnotherkeyresponsibilityoftheTechLeadisto‘unblock’people.IwouldlovetosaythatIworkedonthis,butintruth,ourteamwasfullofextremelycompetentdevelopersandweneverranoutofideas.So,whileIcouldhavedonemoreinthisregard,itwasn’treallynecessary.

OneaspectoftherolethatIreallyhatedwascarryingoutexercisestoprovidethebusinesssidewithasenseofprogress.ExercisessuchasCrystalBall(astatisticalrepresentationwherewetalkedaboutstorycompletionintermsofdays);velocityrationalisationwhenwewereunderachievingourtargetvelocity.Wesoonrealisedtheperilsofthese

Page 37: Talking with Tech Leads_ From N - Patrick Kua.pdf

discussionsandtriedtofocusonthelong-termimportanceofafeaturecompletioninsteadofmetrics,butitwastrickytothebusinessonside.

Ontheotherhand,therewerethingsthatIloved:Ilearnedthatunderstandingeachperson’stechnicalaspirationshelpsyoumanageteamdynamics.Apersonmaycraveopportunitiesbutmayhesitatetoproactivelytakethemon.Tobeabletodothiswell,Ihadregularone-on-onetalkstogetfeedbackandeachperson’sperspective.WhileIamnotsurehowsuccessfulIwasinmyinitialintent,itdefinitelymademeconnectbettertothewholeteam.IalsofeltconfidentofourcollectiveabilitiesbecauseIhadabettersenseofindividualstrengthsinthegroup.

Anypreparationadvice?

Foradistributedteam,oneofthebiggestchallengesisovercomingthelackoffacetimewiththecustomerandtheteamontheothershore.Therapportandleveloftrustbuildsquickerandbetterwhenateamisco-located.ThereareacoupleofinstancesthatIcanrecall,whereIwouldhavebeenmoresuccessfuliftheteamhadbeenco-locatedtostartwith.I’lltrytosubstantiatewithmymemoryoftheexperience.

Ihadtheopportunitytoworkwiththeclientintheirofficeforthefirsttwomonthsoftheproject.Thiswasgreat:Iwasabletobuildrapport;Ihadthetrustoftheonshoreteam,andItookthatbacktooffshore.Werotatedwitheveryonetopropagatethistrustacrosstheteamanditworkedwell.Afewmonthsintotheproject,theclientstartedasmallstreamofdevelopment,staffedentirelybyonshorepeople.Noneofushadworkedwithanyonefromthatstreambefore.Wesharedasinglecodebase.Sinceweinteractedonlyoverthephone,itwashardertopushbackortalkatlengthtoensurewewereonthesamepageregardingthearchitecture.

Becausewehadseparatestand-ups,thelackofday-to-dayinteractionpushedusintosilos.Weeventuallystartedtomakeconflictingdecisions.IhadanotheropportunitytoworkonshoreagainandIhadfacetimewiththeotherteam.DailyinteractionsmadeusgelbetterandhadapositiveimpactonourrelationshipsothatwhenIworkedremotelyagain,wehadasharedunderstandingandbetterrapport.Wewereabletostreamlineourdiscussionsbetter,andwebetterunderstoodeachother’sconcerns.

Bytheendoftheproject,thekeylessonIhadlearnedwastoensurethatacoreteamworkstogetherforajumpstartperiodbeforesplittingintosmaller,distributedsub-teams.Spendingtimetogetherinthesamelocationbuildsmutualtrustandconfidence.Trustandconfidence,inturn,makesdiscussionsmoreproductive,whetherfacetofaceoroverthephone.Ifwehaddonethisearlier,wecouldhaveavoidedalotofpain.

Wheredoyougoforsupport?

Idrawsupportfromdifferentplaces,dependingonwhatsortofchallengeIhavetoface.

Withtechnicalchallenges,suchasvalidatingsolutionsthattheteamproposesormoreindustry-wideacceptedsolutions,Iseekhelpfromthefollowingplaces:

Meet-upsanddiscussionsinmylocalcommunity.Attendingspecificeventsrelatedtothetechnicalchallengeisagoodplacetostart.

Page 38: Talking with Tech Leads_ From N - Patrick Kua.pdf

Iaskforopinionsandsuggestionsfromexternaltoolortechnologycommunitiesaswellasinternal,software-relateddiscussionforums.

Itrytowidenmyperspectiveontechnologyby:

Reading20minutesofaggregatedcontentatthestartofthedaysuchasHackerNews;RubyWeekly;Zite,orFlipboard.ImarkinterestingbitsforreadinglaterusingPocketandIsiftthroughthecontentwhenIhavemoretimeduringtheweek.Iemailthemostinterestingarticlestotheteam,markingthemas“DeveloperSpam”.Ioftenreceivecounter-argumentsanddifferentperspectivesonthearticlesIsendout.IreadbooksandarticlesonsubjectswhereIwanttodevelopadeeperunderstanding.

AsaTechLead,yousometimeshavetodeliverbadnewsorpushbackatnon-technicalpeoplewhoputpressureontheteam.Intheoffshoresetting,consultingwiththeclientisrestrictedbythemodesofcommunicationavailable.Whilevideocallsareagreatwaytodiscussandthrashoutissues,theyarenotalwayspossible.OnekeyareawhereIfallshortisinpushingbackwhenIdon’tagreewithsomething(usuallytechnicalaspects).Iavoidemailstostartthediscussion,becausebattingthingsbackandforthtendstoleavethecrucialdiscussioninlimbo.Duringaphonediscussion,IfindIdon’tgetchancetoemphasisemypoint.WhenIcan’tdiscussmypointwiththeintendedparties,Iapproachonshoreteammemberstoconveymyopinionandtheyhelpedrelayittothecustomerdevelopercommunity.MysupportnetworkinthisareaislimitedandIreachedoutonlytopeopleIknowdothiswellor,specifically,mysponsor.

Hasyourperspectivechanged?

Giventhatthereisnogoldenscrollhandeddownfromgenerationtogeneration,spellingouttheresponsibilitiesofTechLead,thenotionsIhadaboutmyresponsibilitiesweregleanedfromobservationsofotherTechLeads.Oneofthesewasthatitwasuptometoensurethatwewrotequalitycodeasateam.AndwhenIsetouttoachievethat,Ifellflatonmyfaceduetothesheeroverwhelmingnatureofthetask.Ididlearnafewthingsasaresult.

Atthestartofeveryday,Ispent30minutesbrowsingthroughthegitcommitsofthewholeteam,lookingforareasofimprovement.Itstartedwell,butaswegearedupdeveloperpairsandranfullthrottle,itbecamealmostimpossibletoretainallcontextandcontributetoeverythingobjectively.However,oneofthewaysIstartedwastocommentonagitcommitonaspecificpieceofcodetogetbetterinsights.Thissoonbecamethenormforeveryoneontheproject:everyonelookedthroughcommitseveryday,askedquestionsandsuggestedimprovements.Thisbehaviourbecameviralandwemanagedtomaintainit,evenwhenpeoplerolledofforrolledon,anditautomaticallyimprovedtheoverallquality.Asimilarlearningprocessdevelopedin“LunchandLearn”sessions,whichhelpedustoimproveonpiecesofcodeandtechnologiesthatwedidn’tallknowwell.

Page 39: Talking with Tech Leads_ From N - Patrick Kua.pdf

“LunchandLearn”sessionsaresometimescalled“BrownBag”sessions,wheretheteamhaslunchwithadiscussionaroundafocusedtopic,orpresentation.Thesesessionsenablerapidlearningorexplorationinarelativelycasualatmosphere.

BytheendIhadexperiencedhowtheroleofaTechLeadwasmoreaboutfacilitatingtheteamandeverythingelsefellintoplaceasasideeffect.IfIhadappreciatedthattostartwith,Iwouldhavefocusedontherightbits.

Also,asIsaidearlier,thesheerquantityofnon-technicalworkandtheprioritythatbusinesshastotakeineverydecisionchangedmyperspectiveoftheroleofTechLead.

Priyank’skeyquestion:WhatisrequiredfromtheTechLeadofadistributedteam?

Iamstilllearninghowtodealwithbeingdistributed,butIthinkthekeyfactorsarecommunicationandbuildingrapport.Alotoftechnicalcapabilitiesaren’tseenorperceivedacrosstheshoreifyouworkinisolationordon’tcommunicatewell.Tomaintaineffectivecommunications,Ihavehadtostepupandtakeownershipofactionablethingsthatweren’tpartofmyday-to-dayworkorplannediteration,purelytoshowwillingnesstoconnectandcontribute.Thisgetstherelationshipbetweentheinternalandexternalteamoffontherightfootandgoesalongwaytobeingsuccessful,despitethedistances.

Priyank’sbackgroundstory

Priyankstartedintheindustryin2004aftergraduatingwithanEngineeringdegreemajoringinInformationTechnology.Hehasmostlyworkedinanoffshorecontextwithmostofhisteamsworkinginadistributedmanner.Hehasworkedforclientsinawiderangeofindustriesincludingretail,warranty,andtravelandenjoyslearningaboutdifferentdomains.

HerecentlyplayedtheTechLeadroleforthefirsttimeforateamofapproximately20peopledistributedacrosstheUSandIndia.

Page 40: Talking with Tech Leads_ From N - Patrick Kua.pdf

TheBiggerPicture–SuchitPuriDoestheroleofTechLeadholdanysurprises?

Asadeveloper,Ifoundmostofmyfocuswasoncompletingafeatureinthebestpossibleway.Iwasconcernedwiththerightdesignandmaintaininganappropriatelevelofautomatedtestcoverage.

AsIgainedmoreexperience,myfocusshiftedtotheoveralldesignofanapplication;nowIhavetoconsiderhowtheapplicationfitsintothewholeecosystemofapplications.

AsaTechLeadyouhavemorechancetoparticipateinactivitiesbeyonddevelopmentsuchasaprojectinitiation,meetingstotalkaboutupcomingbusinesspriorities,andearlieropportunitiestochampionatechnicalsolution.

IfeelaTechLeadhastobalanceinteractionswiththebusinesswithmaintainingaconsistenttechnicaldirectionintheteam.Maintainingthisbalanceisevenmoreimportantinanoffshoreprojectbecausecommunicationchannelsarelimitedwhenpeoplearedistributed.

Theprosandcons

ThethingthatIlikemostabouttheTechLeadroleisthatyougetthechancetodesigncomplexsystems,solveinterestingbusinessproblems,andstilldevelopwell-designedcode.IfeelwritingcodeisanessentialpartofbeingaTechLeadbecausetherearecertainlessonsyoulearnonlywhenyouareworkingwiththeteamonacodebase.

Anothergreatthingaboutthisroleisyougetmoreopportunitytointeractwiththeclient.Ifindhavingmoreinteractionwiththeclientcreatesbetterinsightsforsolvingandimprovingbusinessandtechnicalproblems.Inanoffshoreprojectitcanbechallengingtocommunicatetechnicalandbusinesssolutions,butitiscriticaltosuccess.

TheonlythingIdon’tlikeabouttheTechLeadroleisspendinglotsoftimesinmeetings.Comingfromapurelytechnicalbackground,ittookawhileformetoadjusttothat,becausetimemanagementisnotaskillyoupracticemuchasadeveloper.

Anypreparationadvice?

Iamnotsurethereisanythingyoucandotopreparereally,astheopportunitiesinThoughtWorksaredynamicandextremelycontextual.TheonlyskillIlearnedonthejobwastofocusenergiesontherightareasofmyproject.

Icouldhavespentmoretimelearningaboutarchitectingsystemsendtoend.

Wheredoyougoforsupport?

Discussionsintechforums,officegroups,andtechmeet-upsgavemealotofconfidence.Casualmeet-upsaroundtechnologytaughtmealot.Imetmanyexperienceddevelopers,andIfoundtheirexperienceswithtechnologyespeciallyinformativeandexciting.

Page 41: Talking with Tech Leads_ From N - Patrick Kua.pdf

Hasyourperspectivechanged?

IthinkthereisalotofmoreresponsibilityonyourshoulderswhenyoustepintotheTechLeadrole.Youfeelmoreaccountablefortheoveralldesign,codequality,testability,andotheraspectsoftheproject.

Icertainlythinkmoreaboutthefuturenow,particularlydesigningsolutionsaimedattheendgoalinsteadofsomeintermediateone.

Iamconstantlylookingfornewtechnology,approachesandideastomakeyourlifeandyourteam’slifeeasier.

Suchit’skeyquestion:HowmuchprojectmanagementknowledgeshouldaTechLeadhave?

Withourcurrenthiringrate,Ifindmyselfwithalotofgraduatedevelopersandbusinessanalysts.Ifindmyselfinmanysituationswheretheclientasksmanyquestionsaboutstorypoints,velocity,andprogress.Insituationslikethis,Ifeelunderstandingprojectmanagementconceptsarecriticaltobuildingastrongrelationshipwiththeclient.

Suchit’sbackgroundstory

Suchithasworkedasanapplicationdeveloperforaboutfiveyears,startingwithatelecommunicationscompanybuildinganapplicationtoroutecallsforcall-centreagents.Sincethen,hehasworkedwithaproductcompanyandcurrentlyworksasaconsultantforThoughtWorks.Hismostrecentteamismadeupof12people,ofwhomeightaredevelopersandhehasplayedtheTechLeadforthisteamforalmostayear.

Page 42: Talking with Tech Leads_ From N - Patrick Kua.pdf

LessCoding,MoreResponsibility–David‘Bucky’SchwarzDoestheroleofTechLeadholdanysurprises?

ThethingthatsurprisedmemostwashowmuchlesscodeIwrite,evenassomeonetransitioningintoaTechLeadrole.I’mspendingalotmoretimehelpingotherpeoplewiththeirproblems,planning,andhelpingwiththeoveralldesignofsoftware.Oneday,adeveloperthatIrespectaskedmetohelphimwiththebackenddesignofanewfeature.Itcameasahugesurprisetorealisethatseniordevelopersmightlooktomefortechnicalhelp.Ithadn’treallysunkinuntilthatmomentthatIwasultimatelymakingthefinaldecisions.

Theprosandcons

Ilikehavingadirectinfluenceonthedevelopmentstyle,tasks,anddirectionofaparticularproject.Ienjoymentoringjuniorteammembers,andprovideknowledgeandhelpwhenneeded;itisgoodtobeabletoshareknowledgegainedthroughexperienceanddumbmistakesI’vemadeinthepast.Ilikethatmyteammatescandependonmetotakecareofthingstheyneedtakencareof.IlikethatIcanfilteranddistildownmanydisparateremarksandideasintotheessentialpiecesneeded.

WhatIdislikeisthatmyinfluenceoverthedirectionoftheprojectisnolongerexpressedthroughthecodeIwrite.IspendmoretimeinmeetingsthanIwouldlike,oftenlisteningtopeoplesaythesamethingsoverandoveragain.IsometimesfinditdifficulttowatchajuniormemberstruggleandfailatataskthatIcouldfinishinafractionofthetime,butIcan’tintervenebecausetheyneedtolearnfromtheirmistakes.

Anypreparationadvice?

Ithinkthatspendingmoretimementoringjuniormemberswouldhavebetterpreparedmefortherole.Ifeelthatthereisavastdifferencebetweenthemostprolificcoderonmyteamandtheleast.Dealingwiththemostprolificissimpleandenjoyable,whiledealingwiththeleastprolificrequiresmuchpatienceandcoaching.

Iwouldalsohavelikedmorepracticeatsayingnotopeople.It’shardwhensomeoneispassionateabouttheirjobanddependingonyoutodeliverwhattheywant,butreal-worldconstraintsforceyoutotellthemno.

Wheredoyougoforsupport?

Mymanagerhasbeenagoodsourceofsupportandinspiration.He’soneofthebestmanagersI’veeverworkedfor,andhe’sbeencoachingmealongtheway.IenjoyreadingRandsinReposeasawaytoconsolidatemythoughts,andasasourceofnewideasandnewwaysoflookingatissues.Mymanagerhasrecommendedafewbooksonmanagingsoftwaredevelopers.Theseinclude:

ManagingHumans:BitingandHumorousTalesofaSoftwareEngineeringManagerCarrotsandSticks:UnlockthePowerofIncentivestoGetThingsDone

Page 43: Talking with Tech Leads_ From N - Patrick Kua.pdf

TargetRisk2:ANewPsychologyofSafetyandHealthAgileEstimatingandPlanningPlanningExtremeProgrammingBlink:ThePowerofThinkingwithoutThinking

Ialwaystrytostoreawaysituationsthatdeeplyaffectedme,bothpositivelyandnegatively.

Hasyourperspectivechanged?

MyfatherhasbeencoachingmeintheperspectiveofmanagerssinceIstartedwork.IfeelthatI’veunderstoodthatthereisalotmoregoingonthanmymanagerletson,butIneverunderstoodjusthowmuchuntilImovedintoagreaterleadershiprole.I’velearnedthatmostpeopledon’tcommunicateaswellastheythinktheydo.Inowunderstandwhymanagerswillswingbyandaskwhat’sgoingon,andhow(usually)itshouldn’tberegardedasantagonistic.Myviewofhowcomplexanorganisationishaschangeddramatically.Ineverfullyappreciatedhowdifficultitistobalancedozensofpeople’scompetingrequests,muchlesshundreds.

Bucky’skeyquestion:AreyouhappybeingaTechLeadorwouldyoupreferadifferentrole?

Yes,I’mhappybeingaTechLead.Ienjoybeinginaleadershippositioneventhoughitwastiring,stressfulandnerve-wrackingtostartwith.

Bucky’sbackgroundstory

Buckystartedplayingaroundwithwebsites(Flash!)whenhewas17yearsold,learningashewent.HegraduatedcollegewithadegreeinComputerScienceandhasbeenprogrammingprofessionallyforaboutsevenyears.HeisaSoftwareEngineeronateamoftenthatbuildsemail-marketingsoftwareforEtsyinternaluseandistransitioningintotheTechLeadposition.

Page 44: Talking with Tech Leads_ From N - Patrick Kua.pdf

LeanonCommunicationSkills–StefanMarevHowdoyouseeyourrole?

Ioftenfindmyselfcommunicatingtheproductvisiontotheteams,becauseIhavebeenwiththecompanyforalongtime,haveextensivedomainknowledge,andspendalotoftimewithproductmanagersanddirectors.Asaresult,Ialsoattendmanyofthedomain-modellingsessionsourteamconductsatawhiteboard-techniquesborrowedfromDomain-DrivenDesign:TacklingComplexityintheHeartofSoftware.

Ialsosteerthetechnicalvisionfortheprojectsandleadanynecessaryarchitecturechanges,suchastryingtobreaka‘bigballofmud’domainmodelintosmallerpartsthatarebetterdistributed.Highqualityiskeytothesuccessoftheseprojects,soIchampioneffortsaroundautomatedtestingandotherpracticesthatenablecontinuousdelivery.

Editor’snote:Abigballofmudisasoftwaresystemhaphazardlystructured,sprawling,sloppy,duct-tapeandbailingwire,spaghetticodejungle.Seethepaper,“ABigBallofMud”byBrianFooteandJosephYoder(1997)

DoestheroleofTechLeadholdanysurprises?

Theroleismorepeople-orientedthanIexpected;whatsurprisedmemostwasprobablyhowsmallaparttechnicalskillsplay.Iunderestimatedthedifficultiesofworkingwithadistributedteamtoo.Whenyouareadeveloperitisaloteasierforyoutodeterminehowsuccessfulyouareonaday-to-daybasis;itiseasiertogetfeedbackbecausetheresultsofyourworkaremoretangible.

Theothersurprisingthingformewastheimportanceofchemistry-howpeoplefittogetherinateam-againtechnicalskillsarenottheonlyfactor.Keepingteammoralehighatalltimescanbequitechallengingand,moreimportantly,youareresponsibleforfindingthedriversofeachindividualteammemberandlookingaftertheircareeraspirations.

Tobeginwith,Ihadtofocusalotmoreonmentoring,successfullycommunicatingideasandmakingthemostofeachteammember.ItookalotforgrantedwhileworkingwithpeoplefromThoughtWorks.Forexample,Ihadtomaketheteamcareaboutunittestingandmentortest-drivendevelopment(TDD)skills-somethingI’dneverthoughtcouldtakesomucheffort.IsupposeIthoughtthateverydeveloperwasmoreorlessthesame,butmyviewonthatwasone-sidedandlimitedtomyself!

Theprosandcons

WhatIlikemostabouttheroleisthatitischallenging,butinadifferentwayfromthedeveloperrole.Itrequiresmetolearnandpracticedifferentskills.Mentoringand

Page 45: Talking with Tech Leads_ From N - Patrick Kua.pdf

leadershiprequiregoodcommunicationskills.Ilearnedalotabouttheimportanceoflisteningandbeingpatient,skillsthatareevenmorerequisitewhenworkingwithateamoflessexperiencedpeople.Igainalotofsatisfactionfromseeingtheteambecomeself-organisingundermyleadership.Ialsoenjoythetechnicalchallengesoftheroleaswell,suchasnurturingandcommunicatingideas,whichIoftenborrowfromreadingandfollowinggreattechnicalmindsonlineandgoingtotechnicalmeet-upsandtalks.Thetrainingorganisation,SkillsMatterhostsmanyofthese.

WhatIdislikeabouttheroleishavinglesstimefordevelopment.Ioftenstartdevelopingandpairingwithotherteammembers,butIcan’tseethingsthroughandhavetoleavethemtotheteamtofinish.Iamnaturallypulledintomoremeetingsandhavetocommunicatebacktohigh-levelmanagers,whichleavesmelesstimeforcoding.ImissthetimewhereIcancodefordaysuninterrupted.

TheotheraspectoftheroleIdon’tlikeisprotectingtheteamfromorganisationalandpoliticalissueswithinthecompany.Forexample,havingargumentswithivory-towerarchitects,havingtopersuadethemofthebenefitsofpairprogrammingandexplainthatitisnotawasteoftime.Anotherfrustrationistimespentconvincingmanagersthatenterprise-readytechnologiesarenotalwaysthebestsolution.IdounderstandhowimportantthispartoftheTechLeadroleis,however,andteammoralestayshighasaresult.

Anypreparationadvice?

IwouldhavebeenbetterpreparedfortheroleifIhadtakenmoreinitiativeasadeveloper.Ispentmostofmytimecodingandfocusingonthequalityofthecode;IthinkIshouldhaveexercisedmycommunicationskills.Icouldhaveaskedtoleadretrospectivesorfacilitatediscussionsandwhiteboardsessions,forexample,insteadofjusttakingpartandconcentratingonlyonthingsthatwerepartofthestoriesandfeaturesthatIwasworkingon.

On-boardingnewteammembersmighthavehelpedmedevelopasaTechLeadaswell.WhenIwasadeveloper,Isawthattaskasboringandrepetitive,butnowIrealiseitdevelopsbettercommunicationskills.EventhoughIfoundmyselfexplainingthesamedetailsoverandoveragain,Icouldhavetakenthetaskmoreseriouslyandasanopportunityandchallengetoimprovecommunicatingalldimensionsoftheproject.

Inthisrespect,pairprogrammingisthepracticethatmosthelpedmetoprepareforbeingaTechLead.IfounditagreathelpwhenpreparingtobeaTechLeadtohavesomeonebesidemetochallengeorconfirmideasandgiveinstantfeedback.

Wheredoyougoforsupport?

IlikedthewaythatmyThoughtWorksteammateshadsponsorsforeveryrole.ThecompanyIworkforisnotatechnologycompanyandapplicationdevelopmentisarelativelysmallpartofIT,sowedon’thavethesamekindofsetup;therearenotechnicalpeopleIcanlookuptosoIdrawsupportfrommypersonalcontactsinstead.Ishareideasandproblemswiththemtogetearlyfeedbackandhelptoresolveissues.

Page 46: Talking with Tech Leads_ From N - Patrick Kua.pdf

Atthesametime,Ihaveearnedthetrustofhigh-levelmanagementinmyworkplaceandtheygivemethetimeandsupporttoimplementnewideas,tryoutnewdeveloperpracticesandeventallowedmetobuildmyownteam.Iliketothinkthatwe’vecreatedandworkasasmallstart-upwithinanenterprise.

TheInternetandsocialnetworkingplayanimportantjobforme.IfindTwitteranamazingtoolforlearningfromthegreatestmindsinourindustry.

Ibelieveincontinuousimprovementandstrivetogetfeedbackfromasmanysourcesaspossible.IoftenaskvariouspeopleIworkwithbothwithinandoutsidetheteamforfeedback.

Anypreparationadvice?

Irecommendyoutakemoreinitiative,andmakethemostofeverysituationandnotfocusonlyoncoding.Iwouldtrytoparticipateinasmanydiversetasksaspossibletodevelopdifferentskills.WhenIwasadeveloper,forexample,Ireallyfocusedoncodingtests,featuresandatinybitofbuild-scripting.Irealisenowthathavingmoreexposuretopath-to-productionandoperationstaskswouldhavehelpedtoo.

Stefan’skeyquestion:Howdoyoubalanceyourtimeandensureyoustayhands-on?

Thiswillvaryfromcompanytocompany,butinatraditionalITdepartmentliketheoneinmycompany,Icantellyouitisnotaneasyjob.Idoitthroughprioritisation.Iprioritisetimeforcodingandtimespentwiththeteamabovegoingtomeetingsorwritingreports,etc.evenfortheChiefInformationOfficer(CIO).

Itrytoavoidbecomingthesinglepointofcontactfortechnicalconcernsontheproject.Icreatechampionswithintheteamsandaskthemtocommunicatesolutionsbothwithinandoutsidetheteam.Idon’tknowhowsuccessfulIamatthis,butIkeeptrying!I’dliketofindmoresourcesforadviceonthis.Ihavefoundalotofgoodadviceoncommunicatinggoalswithintheteam,butlessoncommunicatingtechnicalideaseffectivelytotherestoftheorganisation.

Stefan’sbackgroundstory

Stefanhasworkedintechnologysince2005andhasworkedwithwebtechnologiessinceattheUniversityofWestminsterandReedBusinessInformation(RBI)intheUnitedKingdom.HejoinedGroupMwherehehelpsbuildweb-basedsystemsformediaplanningandbuying.

StefanhasalwayshadapassionforagilemethodologiesandengineeringpracticesandwasinfluencedgreatlybyworkingwithateamofconsultantsfromThoughtWorks.Heiscurrentlyleadingthreesmallteams,twoofwhicharenear-shorewhereheworkscloselywithasecondTechLeadtoprovidecontinuitywhenherotatestoadifferentteam.

Page 47: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 48: Talking with Tech Leads_ From N - Patrick Kua.pdf

Practitioners

“Wisdomcomesfromexperience.Experienceisoftenaresultoflackofwisdom.”-TerryPratchett

ForthissectionIinterviewedTechLeadswhohaveworkedintheroleforanumberofyearsoracrossanumberofteams.Iaskedthemtosharetheirownstories,thechallengestheyfaced,andthewisdomtheyfoundovertime.Theysharetheirexperiencesacrossawiderangeofindustries,awiderangeofteamsizesand,asaresult,awiderangeoflessonslearned.

Witharolesplitacrossseveraldimensions,effectivetime-managementbecomesevenmoreimportant,soIaskedeachpersontosharetheirownapproach.Theydescribewheretofindtime,howtoidentifytasks,strategiesfordelegationand,mostimportantly,howtomaintainthedelicatebalanceofheads-downtimeincodeandjugglingtheirotherresponsibilities.Igroupedtheirresponsesintofourthemes:

1. People2. TheTechofaTechLead3. BridgingBusinesswithTech4. You

IfeelthesefourthemesrepresentdifferentfacetsoftheTechLeadrole,andresonatestronglywiththeresponsesfromdifferentpeople.Iprovideabriefcommentaryforeachofthesethemes,summarisingpeople’sresponsesandaddingobservationsfrommyownexperienceasaTechLead.

Page 49: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 50: Talking with Tech Leads_ From N - Patrick Kua.pdf

People

Peopleandteamsareinextricablylinked.Ateamdoesnotexistwithoutpeople,andittakesefforttoturnasetofpeopleintoateam.

“Asetofpeopledoesnotmakeateam.Itonlyexistsasagroup.Ateamisasetofpeopleworkingtowardsacommongoal.Aneffectiveleaderalignspeopletowardsthatgoal.”-Anonymous

RemainingTechnicallyGroundedWhenadeveloperfirstmovesintotheroleofTechLead,theirfocuswillbealmostexclusivelyonthetechnicalaspects.SomedevelopersinterprettheTechLeadroleasbeingthefinaldecisionmakerondifficulttechnicalchoicesorasfocusingonthemosttechnicallydifficultproblem.

Theseinterviewsrevealaverydifferenttake.Yes,aTechLeadmustbetechnicallycompetent,sincethishelpsbuildrespectandrapportwithpeople,howevertheTechLeaddoesnotnecessarilyneedtobethebesttechnicallyand,inmanycases,doesnotnecessarilyhavethedeepesttechnicalskillsontheteam.

FindingandDevelopingGoodPeopleNoonesetsouttofindmediocrepeoplefortheirteam.EveryTechLeadwillsaytheyhiregoodpeople.TechLeadsarenaturallypartoftheinterviewprocess,lookingforculturalfit,aptitude,andapositiveattitudetolearning.However,findingtheidealcandidateinatimelyfashionisdifficultintoday’sdynamiclabourmarket.

Inadditiontofindinggoodpeople,theeffectiveTechLeadfocusesequallyongrowingdevelopersintheirteam.Acommonpracticeistomeetone-on-onewitheachdevelopertofindoutwhattheirinterestsare,whatmotivatesthemandwhattheyconsidertheirstrengthstobe.Withthisinformation,theTechLeadconstantlyseekswaystomatchinterestsandopportunitiesacrosstheteam.Oneintervieweeinthissectiontalksaboutappreciatingthemixofskillsandexperienceasateamstrength.

Forexample,ataskmaybeperceivedtrivialbyonepersonbecausetheyhaveworkedonmanysimilarproblemsinthepast.Foranotherperson,thissametaskcouldbeextremelyinterestingbecauseitisanewtypeofproblemforthemtosolve.

Keepingtrackofwhatpeoplefindinterestingevolvesovertimeaspeoplegrow,andlearn.TheonlywayaTechLeadcankeepupwiththesechangesistoaskpeoplefrequentlyenough.

ATechLeadgrowsdevelopersbyencouragingthemtostepoutsideof“justprogramming”andworkcloselywithotherpeopleinthesoftwaredevelopmentprocess.Developersworkingmorecloselywithtestersbuildabetterunderstandingofwhatittakes

Page 51: Talking with Tech Leads_ From N - Patrick Kua.pdf

tomakemorerobustcode.Developersworkingmorecloselywithend-usersandbusinessstakeholdersbetterunderstandwhatacceptabletrade-offsmaybemadeandtherealproblemthatneedssolving.

ListeningtotheTeamTheTechLeadfindsopportunitiestolistentothepeopleontheirteam.OneTechLeadasks:“Ismyteamsetupaswellasitcanbe?”Whenstartingwithanewteam,Iaskmyself,“Doeseveryonefeelcomfortableexpressingtheiropinion?”TechLeadsneedtoestablishsafety.

Onceyoucreatesafetyyoumustthencultivatemotivationforfullteameffectiveness.Differentthingsmotivatedifferentpeopleandittakestimetofindoutwhateachpersonwantstodoandfindopportunitiestodothem.Listeningisthekeytothis.

TechLeadsspendlesstimeincode,sotheyrelymoreheavilyoninformationfromtheteam.Drawingfactualinformationoutofdeveloperscanbedifficultbecausedevelopershabituallypresentsolutionstoproblemsandopinionsratherthanfacts.Youdrawupongoodquestioningskillstodrawouttheinformationyouneedtomakebetterdecisions.

AppreciatingIndividualStrengthsATechLeadappreciatesthedifferentstrengthsthateachpersonbringstotheteam.Overtimeyouwillrecognisethesedifferentstrengths.Forexample,somedevelopersarebetterthinkinginmoreabstractterms,whilstothersaremoredetail-oriented.Somedeveloperswillbebetterthinkingvisually,whilstothersmustcommunicatebestthroughcode.

Differencesinstrengthsbringopportunitiesforlearningandbetterproblemsolvingbuttheyalsocreateanopportunityforconflict.TheTechLeadpaysattentiontoheateddiscussionsintheteamandhelpstheteammoveforwardwhentoomuchconflictthreatenstopermanentlydamageteamrelationships.TechLeadsshouldnotbeafraidtofacilitatetechnicaldiscussions(particularlyheatedones!)inordertomoveforward.VeryrarelywillaTechLeadstepintooverrideadecisionasthisdisempowersteammembersandgeneratesresentment.

Page 52: Talking with Tech Leads_ From N - Patrick Kua.pdf

TeamFocus–AlisonRosewarneWhatshouldaTechLeadfocusonandwhy?

Teamfocus:itisimportantthattheteamcanactuallyfocusandknowswhatisimportant.Thisenablesgooddecision-makingandensuresgoodresults.Differentteamshavedifferentneedsanddifferentobstaclestoovercometoachievefocus.

Iworryaboutteamengagementandwanteveryonetobechallengedwiththeworkthattheydo.Spendingtimeon1-to-1sisgenerallythebestwaytogaugeinterestandenthusiasm.

WhathasbeenyourbiggestchallengeasaTechLead?

WorkingwithanoffshoredevelopmentteaminanagilemannerhasbeenthemostchallengingsituationI’veexperiencedasaTechLead.Itiseasytotakecorridorconversationsforgranted;itiseasiertoabsorbincidentalcontextwheneveryoneisco-located,workinginthesameenvironment.

Handlingadistributedteamrequiresconstantawarenessofthesituation.Moretimeisneededtoensuretheremoteteamiskeptuptospeedwithdecisionsmadelocallyandyouneedtousewhatevertechnologyisavailabletodecreasethedistanceandimprovecommunicationbandwidth.AdhoccommunicationtoolssuchasSkypearebetterthanemailorafter-the-factdocumentation.

Anytime-managementtips?

Iamadedicatedlistmaker.EachweekIreviewtheprioritiesandplanatleastthreethingsthatIwanttoachieveeachday.Itisimportanttounderstandcompetingprioritiessoanyinterruptionscanbemanaged.Someworkhastobedone(deferringplannedtasks),whileotherworkcanbedeferred.Ikeeptrackofunexpectedworkforlaterreview.Occasionallybookingtimeinmycalendarorworkingfromhomeisnecessarytoensuretasksrequiringfocuscanbecompletedwithoutinterruption.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Idon’twriteasmuchcodeasIwouldliketo;thesplitbetweenwritingcodemyselfanddoingotherthingsisabout20/80.Thiscanchangedependingonwhatstageaprojectisat.Ihavehadtoacceptthatitismoreproductivetopairwithteammembersandprovideguidanceaboutthecodetheyproduceratherthanwritingallthecodemyself.

Alison’skeyquestion:Whatskillhelpsmostwithtechleadership?

Theabilitytodelegateandgoodcommunicationskillsareessentialtotechnicalleadership.Ofthesetwo,Iwouldsaygoodcommunicationskillsarethemosthelpful.AsaTechLeadyouneedtotailoryourcommunicationforbothtechnicalandnon-technicalaudiences.

Page 53: Talking with Tech Leads_ From N - Patrick Kua.pdf

Fortechnicalaudiencesyouneedtoknowwhatyouaretalkingabout;youcannotfakeit,aspeoplecantell.Itisimportanttosummarisedetailandachieveconsensusamongstthegroup.Fornon-technicalaudiencesyouneedtotranslatetheeffortinvolvedindifferentapproachesandtrade-offstogainsupportforarchitecturalchoicesandspendingtimeontechnicalactivitiessuchaseffortinreducingtechnicaldebt.

Alison’sbackgroundstory

AlisonhasworkedasTechLeadfortheCommercialteamatREAGroupfortwoyears.ShestartedworkingintheITindustryaftergraduatingfromRMITUniversityinMelbourne,Australia.Forthelasttenyearsshehasworkedacrossmanyindustriessuchasgaming,superannuation,defence,andinsurance.

Shehasleadtechnicalteamsonandoffoverthelastsixyearsdependingontheconsultingengagement.HercoredevelopmentexperienceswereinJava/J2EEandmorerecentlyshehasbeendevelopingwithRubyandassociatedwebframeworks.

Page 54: Talking with Tech Leads_ From N - Patrick Kua.pdf

TeamoverSelf–HumphreyEltonWhatshouldaTechLeadshouldfocusonandwhy?

Iexpecttoleadpeoplewhoareprofessionalwithoutpretensions.Idonotexpecttooverseeallcode.Ido,however,expectteamstoworktogether.Forme,adeveloper’sskillswithpersonalrelationshipsandcommunicationareasimportantascodewriting,possiblymoreso.Amixofabilitiesintheteammeansthatthegunshavetohelpjuniordevelopersandgivethemspacetolearnthemselves.Ihavefewerissueswithsimplistic,andeveninefficientcode.

Inmyareaofsoftwaredevelopment,memoryischeap,CPUischeapandcomplexcodeistoocostlytomaintain,sodonotaskmetowriteadisksubsystem!

Itrytokeepanearoutforthenoisecomingfromanyteam.Atoneextreme,toomuchtalkingmightindicatepeoplebeingtoounproductiveandthattheteamarenotmakingdecisions,ortheymightbehavingjusttoogoodatime.Attheotherextreme,tooquietmightmeaneveryoneisheadingintheirowndirectionandthecodewillnotcombinewell,orthattherearepersonalityissuesbrewing.

Discussionisgoodbutunproductiveandfrustratingforallunlessitsfocusischoosinganoutcome.

WhathasbeenyourmostchallengingsituationasaTechLeadandhowdidyouhandleit?

Mymostchallengingsituationwasmanagingamixedteamofsometechnicallyverygooddevelopersandsomejuniors.Thatteamhadalotofissues,ofwhichhavingtwodifferentmanagerswastheveryleast.Theteammemberswerecompletelyatoddswitheachother.Partsoftheteamhadsignificantlydifferentcodestyles,becausesomewereJavadevelopers,butalotofJavascriptwasrequiredandtherewasnoconsistentapproachtoimplementingnewfeatures.The“gurus”wouldalsowritecode,leavingthe“unittests”tothejuniors.

Weheldameeting,inwhichIwasinvolvedonlybecauseonemanagerwasaway.Weputallknownissuesonthetableandallowedthemeetinggettoafragile,butsweetpoint,whereIstoppedit.Wethengavetheteamacoupleofminutestoresolveeachproblem,andiftheycouldn’treachadecision,Iwouldstepintomakeone.Ionlyhadtodoacouple;theteamworkedtherestout.

Iensuredthateveryoneintheteamhadasaysomewhere.Thereisnoonelessproductivethanajuniorwhosegoodideagetsignored,orwhosecodegetsrefactoredwithinaweek.Ionlyinsistedononeitem:ifitworks,thenleaveitandmoveon.

Whatareyoursecretstomanagingtime?

AsaTechLeadyouwantyourteamtobeproductive.

Page 55: Talking with Tech Leads_ From N - Patrick Kua.pdf

Yourtimeisonlyoneperson’sworth.Yourteam’sisntimesthat.Yourfocusshouldbeontheirproductivity.

Trytofindthebalanceofgoodteamtime,whilelettingeachhavetheirownbesttime.Iammostproductivelateintheafternoon.IfpeopleinterruptmethenItrytogetthemtoorganiseatimethenextmorning.

IhaveWednesdayafternoonsoffbecauseofmykids.Managementhatesit,butitgivestheteamtimetobeself-responsible.SometimesIpickupthekids,thenloginremotelyandfinishstuff,othertimesnot.

Youwillprobablyfindyoucannotchooseallthetasksthatmatchyourskills,becauseinterruptionsmeanyoucan’tguaranteetheywillbecompletedontime.Youjusthavetobemorecarefulaboutwhatyoutakeon.

Howdoyoufindthebalancewritingcodeanddealingwithotherissues?

Balancingwritingcodeanddealingwithotherissuesisaconstantconflict,andalwayswillbe.Interruptionsmustbedealtwithsoonerratherthanlater.Ifyoudonotaddressthem,theywillstackupandswampyou.IhavenaughtydayswhenIreallyjustwanttocode,butIpayforitlater.Indulgeyourselfoccasionally!

Itrytodealwithalotoftheissuesmyself,butifIcandelegateproblemsordecisionstosomeoneintheteam,thenIwill.IcannotrememberwhenIlastoverrodewhattheydecided.TheirdecisionmaynotbetheonethatIwouldhavemade,butitisalmostalwaysgoodenough.Donotdoitall;butdonotdelegateitalleither.ItrynottohavetoomanyrulesaboutwhatIdoversuswhatIdelegate.Itrythings,makeafewmistakes,andlearnfromthem.

DecidingtobeaTechLeadisastepawayfromcoding,unlessyouarewillingtodolongerhoursoritisreallyclearthatyouhavenolinemanagement.Ihaveneverworkedthatwayanddonotthinkthatitispossible.

TheroleinvolvesdealingmorewithpeoplethanIrealised.Ifyoudonotwanttohavetodealwithpeopleordonotthinkitisimportant,thentheTechLeadrolemaynotbeforyou.Youneedtoactivelybuildrelationshipsandhaveoneyeontherelationshipswithintheteam.

Idonotgettoexplore,ortrydifferentthingsincodethatIusedtodomuchmoreasadeveloper.

Humphrey’skeyquestion:Isitasensibleroleinanorganisation?

Probablynot!Youareunproductiveforyourskills.Whatyoucandeliverbywhenisunpredictable.Theroleisonestepawayfromcoding.Wheneveryougetreallyfocused,someonewillcomealongandinterruptit.Youwillinevitablygetstalerinyourfavouritelanguage,buthopefullyyouwillhavethematuritytoappreciatethatmostoftheissuesarenotreallylanguagespecific.

Youhavetostartreadingallmanagementemailsmorecarefully;maybeevenstartdoingitforonce!Youhavetolearntohaveoneearontheroom,whileyouaretryingtoconcentrate.Youalsohavetodecidewhentostickyournoseintoanything.Atthesametime,youmustgiveyourteamspaceandrememberhowoftenproblemsgotsolved

Page 56: Talking with Tech Leads_ From N - Patrick Kua.pdf

withoutaTechLeadorsomeoneelsegettinginvolved.Youbecomehalfmanagement,halfgrunt.Itisnoteasyasyouareinevitablyonbothsides,yetinneithercampcompletely.

Iimaginethisroleislikethatofacorporalorsergeantinthearmy.Peopleobeyauthority,ofteninthefaceofcompleteincompetency,andyoumustlearnwhentouseit.Findthestyleofyourinnertinpottyrant.Useitwisely.

Inevitablyyouaremanagingtheteam.Youneedtodecidewhattheteamshoulddecideforthemselves.ItwouldbeanunderstatememttosayIreallyhatecodestylediscussions,forexample,soIlettheteamchoose!Theyhavetoliveinitmorethanyou,butonlygivethemtwominutestodiscussit!Itcangoonformuchlonger,butyoualwayshaveveto!

Humphrey’sbackgroundstory

Humphreyconsidershimselflessofa“technical”TechLeadthanmostdespiteworkingindevelopmentfor20yearsanddealingwithtechnologiessuchasFortran,OpenVMS-TPU(VirtualMemorySystem-TextProcessingUtility).HehasmorerecentlyworkedwithJava,Flex,PHPandPython.

Page 57: Talking with Tech Leads_ From N - Patrick Kua.pdf

Delegate,Delegate,Delegate–JasonSelbyWhatshouldaTechLeadfocusonandwhy?

Teamdynamics.Onceyoustopfocusingonbeinganindividualcontributor,thehealthoftheteamcultureisthemostvaluableareathattheTechLeadcangreatlyinfluenceanddirectlyaffectsteamperformance.TherearemanythingstheTechLeadcandotoimpactcultureanddynamics.Youcanidentifyandaddressinternalandexternalconflictsearly,coachindividualsontechnicalandbehaviouralimprovements,andclearroadblockstokeeptheteamfromspinningonexternalconstraints.

WhathasbeenyourbiggestchallengeasaTechLead?

Oneofmyguidingprinciplesisforkeydecisionstobedelegatedtotheteamasfrequentlyaspossible.Thisisoftenimpossiblewhendealingwithpersonnelissues,butotherwiseitworkswell.Lettingtheteamowndecisionsensuresbuy-in,bothonapproachandownershipofoutcomesatateamlevel,especiallywhenthingsdon’tgoexactlyasplanned.

Althoughtheprincipleissound,itisn’talwayseasytoadheretoinpractice.

WhenIwasleadingateamatalargeconsumerelectronicsretailer,forexample,wewerediscussingthedesignofaserviceendpoint.Thisparticularservicewouldnotbecalledeverytimeawebpagewasrendered,butourtrafficmodelprojectedthattheendpointwouldseetrafficabout50%ofthetime.Attheretailer’soperatingscale,thiswasstillasubstantialquantityoftraffic.

Ofthetwoleadingdesigns,onewasamorecompute-intensivesolutionwithlessdevelopmenttimeandonewasquiteabitmoredevelopmentwork,butwouldrequirealmostnocomputationatrequesttime.Ifavouredthesolutionthattookmoredevelopmenttimebutguaranteedproductionperformance.Anumberofseniormembersoftheteamwantedtoproceedwiththesolutionthatoptimisedfordevelopmenttime;theywerewillingtotaketheperformanceriskinordertohavemoretimetofocusonotherdevelopmentworkthatwasalsocriticaltobecompletedpriortotherushofholidaytraffic.

Aftersomedebate,weputittoavoteandbasedonaslightmajority,wentwiththecompute-intensivesolution.Itwashardformetoacceptthatmyargumentsweren’tpersuasiveenough.Itwasdifficulttoresistthetemptationtooverruletheteamandimposemysolutionbyfiat.Theholidaycameandwentandtheteamdecisionprovedright;thecompute-intensivesolutionhadbeenaconcernthroughtheholidayperiod,butitdidn’tcauseanyproblems,andhavingadditionaltimetofocusonotherdevelopmentprioritiesmeantthatweaddressedotherperformanceconcernsandsoprobablypreventedotherperformanceproblems.

Anytime-managementtips?

Page 58: Talking with Tech Leads_ From N - Patrick Kua.pdf

Igetinearlyeachday,usuallyanhourbeforetherestoftheteam.Thisallowsmetimetocatchuponadministrativetasksandemail.Withthosechoresoutoftheway,I’mmorefocusedwhentheteamstartstricklingintotheoffice.

Anothermajortime-consumerisansweringquestionsfromotherteams.TheteamsI’veledhavebeenagileteamswithastrongemphasisonlow-ceremonycollaboration.Thismeansweencourageotherteamsweworkwithtocometoourdevelopmentlabwhentheyhavequestionsorneeds.Theproblemwasthat,sinceIwastheTechLeadandtherecognisablefaceoftheteam,Iwasinterruptedmanytimesadaytoanswerquestionsorhelpdraftrequestsfornewfeatures.Isolvedthisbyintroducingarotatingroleof“Concierge”toourteam,whowasdedicatedtoansweringdrop-inrequestsonagivenday.Myteamishappytogetgetbetteracquaintedwithourlargercommunityandtheinterruptionsaretolerablesincethey’respreadacrossallmembersoftheteamoverafewweeks.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Iworkhardtokeepmeetingsscheduledincontiguousblocksandonlyoncertaindays.Thisallowsmetohavetimetobefocusedandworkwiththedevelopmentteam.Makingtimetobearoundtheteamandpresentiskeytoeffectiveandauthenticleadership.

I’malsomercilessaboutoptingoutoflow-valuemeetingsorthosethatlackacrispagenda.Thisisn’tpossibleinallcontexts,butmycurrentemployerhasameeting-heavycultureandifIdidn’trejectalotofmeetings,Iwouldhavelittletimeforanythingelse.Thisdoesn’tmakemeverypopular,butItrytobekindwhendeclining.Stayingfocusedallowsmyteamandmetodeliver.

Therearealwaysenoughnon-developmenttaskstofilleverysingleday.Determiningwhichmeetingsandtasksareoptionaltakestimeandabitofdelicateexperimentation.IusuallyattendallmeetingsandfollowthroughonalltasksatthestartofaprojectandasIgetafeelforthosethatarenotaddingvalue,Istarttodeclinethemoneatatimeandwatchtoseeifthereareanyconsequences.IfImisjudgetheimportance,IsayIoverlookedthemeetingortaskwithoutsubstantialimpacttomyrelationships.

Jason’skeyquestion:WhatwasthehardestchangeforyouwhentransitionedfromdevelopertoTechLead?

IwasusedtobeingoneofthestrongesttechnicalcontributorsonteamspriortobecomingaTechLead.OnceItookonleadershipresponsibilities,Iwasnolongerpresentforallteamconversationsnorabletobeinvolvedintheimplementationdetailsofeveryfeature.Theteamoftenlookedtometohelparbitrateandbreakcontentiousdeadlocks.Istruggledtoletgoofbeinginvolvedintheimplementationofeveryfeatureanddrivingparticularimplementationapproaches.HadIcontinuedtobeoutspoken,Iwouldhavecompromisedmyabilitytoarbitrateandtie-break.

Jason’sbackgroundstory

Jasonconsidershimselffirstasasoftwaredeveloper,eventhoughhehasbeenleadingteamsforthepastsixyears.Hiscareerhasfocusedmostlyonhigh-scale,high-availabilitysystemsinbusinessdomainssuchasbanking,insurance,utilitiesandretail.

Page 59: Talking with Tech Leads_ From N - Patrick Kua.pdf

Facilitating,thenLeading–DanAbelWhatshouldaTechLeadfocusonandwhy?

Peoplecanbethebiggestchallengetoco-ordinateandinspire,butarethemostpowerfulforcetothrowatanyproblem.Toknowyourteamandforthemtoknowyouallowsyoutoworkasaleader,afacilitator,andcoachtoguidethegrouptopowerfulactions.

Myguidingruleistoleadwheretheycannotandtofacilitatewheretheycan.Thatmeansgettingoutoftheirwaywheretheycanshine,puttingjustenoughstructurearoundthemuptoensuretheyaresupported.Andleadingfromthefrontwheretheteamneedsastrongguidetogetontopofachallenge.

Whenitcomestoleadership,I’vefounditessentialtofindopportunitiestohelptheteamgrowsothatIhavethefreedomtojustfacilitatethingsIwasonceleading.TodothatIneedtobeabletoobserveandjudgefairly;lookingtothefuture,listeninganddirectinginequalmeasure.I’vefoundthatinthatwayyoudon’thavetostartwithagreatteam,youcanbuildone.

Ifyouwantapointabouttechnicaldiscovery,it’saboutdecidingwhatmightlookgoodandthenincrementallyworkingtowardsthat,measuringandassessing,beingwillingandreadytoripsomeofitupifwefindoutwewerewrong.Beingaleadermeansmanagingtherisksandlastresponsiblemomentstothebestofmyability.Ifindithard,butItrytoworkthroughPlanDoMeasureAdjustcycles:justenough,readyintime.

WhathasbeenyourbiggestchallengeasaTechLead?

I’mallergictoGanttchartsandin-depthprojectplans,thoughIloveworkinginpartnershipwithagreatprojectorprogrammemanager.Earlyoninmycareer,duringthesecondtimeIwasaTechLead,theProjectManageraskedmetocomeupwithsomeroughestimatesbasedonwhatweknew.Hewantedtohaveaplantotalkthroughduringameeting.TheclienttookholdofthisGanttchart,simplymovingalongtheplanwithoutrevisingitbasedonnewinformationwehadlearned.Theclientwasn’tinterestedinadjustingtheplan,evenafterconversationshighlightingtherisksinvolved.Intheend,Italkedtoadirectorandgainedhissupporttochangeourworkingstyleaftershowinghimtheriskinvolved.

NowImightsolvetheproblemdifferently,butIwouldstillattacktherootcause.Icannotsitbackanddonothingifweknowaboutsomethingthatwillpreventasuccessfuldelivery.Weshouldactonwhatweknow,evenifitinvolvesbadnewsanddifficultconversations.

AfewyearslaterIhadtodeliverbadnewsmyself.Iinheritedaprojectthatdidn’tmeetallclientexpectations.Itwasmyjobtosolvetheproblem.Icreatedatable,highlightingthefeaturestheclientexpectedandwherewewerebeforeusingthatintheconversationwith

Page 60: Talking with Tech Leads_ From N - Patrick Kua.pdf

theclient.Nottalkingabouttheissuewouldhavemadethingsworse.Badnewshastobedealtwithandaplanmadeoverwhattodonext.Anytime-managementtips?

LifetendstothrowmechallengesthatarealwaysslightlybiggerthanI’mreadyforÐorperhapsmyeyesarebiggerthanmybelly?TheresultisthatwhenthereisaproblemIcanbereallyfocused,butwhenitisbusinessasusual,Ihavebeenknowntostruggletoknowwhattodonextandgeteverythingimportantdone.

SomeyearsagoIreadtheadviceofRands’onhowtodowhatIseeastheurgentandtheimportant,whichhadabigeffectonhowIworked.TheUrgentisthestuffthatyouneedtogetdone:perhapspeopleareaskingforit;perhapsyouhavedecideditneedstohappen.TheImportantisthestuffthatmeansyouwouldn’tbedoingyourjobifyouignoredit,butnooneisaskingyoutodo;thisstuffisn’tmilestones,butitistheflowofyourdayandyourweek,yourchatstoyourteammembers,beingsuretopair,what’sgoingonthestorywall,areyourteamhappyandsatisfied?

ThoughIdon’tfollowhisprocessesverbatim,Iuseindexcardsformyto-dolist;Rands’DailyScrubhelpedmedealwithmoreworkthatIcoulddo,andthetricklelisthelpedmefocuspastthatintothezoneofrichconversationsthatseemtocatchthingsIdidn’tknowabout.Amixtureofthis,andshort,moreformalmeetingshelpsmetointuitwhatisgoingonandwhatmightneedtogetontomyto-dodeck.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

I’venotbeenverygoodatthisrecently,butI’mfortunateasI’moftensurroundedbygooddeveloperswholetmedropinandout.

Alotdependsonthesizeandcompositionoftheteam:whenI’vebeenonasmallerteam,it’sobviousthatIshouldbespendingmytimecoding;onlargerteams,IliketheideaofblockingoutsomecorecodinghourswhereIcanfocusonthatpartofmyjob.WhenI’vebeeninvolvedinmulti-teamdeliveries,I’vemadeapointofspendingmylimitedcodingtimeinpairingonareaswhereIknowtherehasbeenpainorachallengeandIwanttosettheworkandthecodeupforsuccess,givingmeachancetounderstandthesurprisesandpressuresthatmightlurkintheareafirsthand.

Idon’twanttoslip,sothisyearI’mlookingtomixthingsupabitandworkonprojectsthatallowmetohaveamorecode-facingrole.

Dan’skeyquestion:WhendoestheTechLeadrolestopandotherrolesbegin?

ATechLeadfindsbalancebetweenurgentandimportanttasks,andbetweendoingandlookingforward.WhenaTechLeadfocusesononeaspecttoomuch,Iseethemoptingoutoftherole.Forexample,ifIaminmeetingsallthetime,orIampermanentlyfocusedonsolvingadeeptechnicalproblem,thenmyteamismissingaTechLead.

Dan’sbackgroundstory

DanstartedtoexplorewhatcomputerscandoatanearlyageandfollowedthisupbystudyingbothcomputersintheCprogramminglanguageandpeopleatcollege,withthe

Page 61: Talking with Tech Leads_ From N - Patrick Kua.pdf

helpofdancingandlotsofcider.In18years,hehasseenenvironmentsofalltypesfromsmallstart-upstoalargeC++productcompany.

Hehasleadteamsonseveraloccasionsandnowrecogniseswhatisimportant:relyingonastronggoal,themeanstogetthereandworkingwithpeoplewillingtolearn.

Page 62: Talking with Tech Leads_ From N - Patrick Kua.pdf

HelpingtheTeam–AdamEsterlineWhatshouldaTechLeadfocusonandwhy?

IthinkthemostimportantthingaTechLeadcandoistohelptheirteamfigureoutwhatworktheyarenotgoingtodo.Lotsofthingscanoccupyateam,suchasrefactoring,learningnewtechnologies,addingnewfeatures,andfixingbugs.Mostofthetime,wewanttodoallthosethings,butwehavetolearnhowtosayno.Sayingnocancomeinmanyforms.Forexample,saying,“Wealreadyhaveit,”orasking,“Isitthemostimportantthingnow?”.

Mybiggestworryisprobablymakingsuretheteamfeelslikeitissuccessful.Writingcodeishardanditiseasytoburnout.Itrytomakesurethattheteamsareseeingbenefitsfromtheirworkonaregularbasis.

WhathasbeenyourbiggestchallengeasaTechLead?

Tworealchallengescometomind.Thefirstonearosewhenthecodetheteamwasworkingonhadgotintoabadstate.Wewerehavingtroubledeliveringcodeonaregularbasis.Asateam,wedecidedweneededtostopdeliveringfeaturesandworkonthecodethatcausedproblems.Thiswasnotapopulardecisionwithallourstakeholders.Wedrewuparelativelyshortlistofproblemsthatneededtobeaddressedandwefocusedonsolvingthemoverthefollowingthreemonthssothatwecouldthengetbackintoastablestateandstartdeliveringfeaturesagain.

ThesecondchallengeIhadwasdecidingtomovetocontinuousdeployment;thiswasatoughteamsituationthatreallypaidoff.Therewasalotoffearanduncertaintywhendeployingeverycommit.Peoplewereaskingquestionssuchas,“HowdoesQAfitintothismodel?”and“Canwereallytrustdeveloperswiththatmuchresponsibility?”.Wespentalotoftimediscussingeachoftheseissues.Wespentconsiderabletimewritinga“safetynet”thatwouldallowustodeploycodesafely.Wealsospenttimeintroducingfailuresintothesystemtoseehowoursafetynetperformed.Intheend,webuiltasystemthatcanreactquicklytocustomerneedsandissues.

Anytime-managementtips?

Iblockouttimeinmycalendarfrom8amto1pmeveryday,whenIwillnotacceptmeetings.Iusethattimetocodeandworkwithmyteam.WhereIspendmymorningscodingwiththeteam,Iusetheafternoonsdealingwithissues.IfIdonotblockofftimeinmycalendar,Iwouldendupspendingalmostallmytimeworkingonissues.

Ialsomakeitapointtoonlyansweremailfirstthinginthemorningorlateatnight.Itrytocheckemailsonlyatthattime.

Adam’sbackgroundstory

Adamhasworkedwithawiderangeofprogramminglanguagessince1999andhasspentseveralyearsrunningtrainingclassesforWashingtonUniversityinSt.Louis.Adamhas

Page 63: Talking with Tech Leads_ From N - Patrick Kua.pdf

leadteamssince2003ineverythingfromprojectsinvolvinghardwaretohigh-trafficwebsites.

Page 64: Talking with Tech Leads_ From N - Patrick Kua.pdf

InwardsandOutwards–RachelLaycockWhatshouldaTechLeadfocusonandwhy?

IthinktheTechLeadtakestwostances,lookingbothinwardsandoutwards.

Inwardly,themostimportantthingistheteam,andthedynamicsoftheteam.Iwatchforthedynamicsofentireteam,notjustthedevelopers.Iwatchhowthedevelopersinteractwithotherrolesintheteamsuchasanalysts,testers,andtheprojectmanager.Ithinkaboutwhetherpeoplearelearning,orwatchifpeoplearekeepingupand,ifnot,considerwhatsupporttheyneed.Ifindoutwhereapersonwantstofocustheirgrowthandseeifpeoplefeelcomfortabletakingownershipoftasks,championingideas,andgrowing.Inmanyways,Iprotecttheteaminthesamewayaprojectmanagermight.Itrytoshieldthetechnicalteamfromspendingtoomuchtimeinmeetingsaboutarchitectureorideationoffuturework,sotheycanfocusonprioritisingworkinthepresent.

Outwardly,Ioftenactastheconduitbetweenthetechnicalteamandthebusiness.Iconsiderwhetherwearemeetingstakeholderneeds,andwhetheroursolutionanswerstheprobleminthebestwaypossible.Iaskmyself,“Aretherightpeopleinvolvedattherighttimetomakethebestpossibledecisions?”Iconstantlystepbacktolookatthebiggerpicturetochecktheprojectisheadingintherightdirectionandalignswithfuturereleases.Iamalsoanadvisertoprojectmanagersandanalyststofacilitategooddecisions,addingamuch-neededtechnicalperspectivetotheanalysisphase.

WhathasbeenyourbiggestchallengeasaTechLead?

DelegationissomethingIstillstrugglewith,soI’llexemplifythis,buttherehavebeenmanychallengesaroundstakeholdermanagementandmanagingexpectations,whichhavebeendifficultlessonstolearnaswell.

IwasworkingasaTechLeadArchitectroleatalargefinancialcompany;IhadanotherconsultantfromThoughtWorkswithme(someofthetime),andateamofclientdevelopers.Inaddition,Ineededtomanagetheexecutivestakeholdersandtheirconstantdemandsandexpectations.Ididn’thavetheusualconstructsofBA,PMetc,soIhadalotofgapstofill.ThisiswhereIreallystruggledwithdelegation.Ididn’thandleitwellatfirst;Ijustgavepeopleworktodopiecemealandthismeantthatthedevelopersalwayshadtoaskwhattodonext,justwhenIwassobusyIcouldn’tthinkwhattogivethem,or,atleast,feltcomfortablegivingthem.

Eventually,IrealisedIwouldworkmyselftodeathunlessIletsomestuffgoandletthemownworkandlearnhowtomanageandprioritisetheirworkbasedoninformationIgavethem.Itwashard,butIstoppedtoaskeachofthedeveloperswhattheyactuallywantedtolearnandworkon.Onedeveloperwantedtodevelopbetterconsultingskills,soIlethimrunmeetingsandpresenttotheclientwithmysupport.Iwouldthengivehimfeedbackon

Page 65: Talking with Tech Leads_ From N - Patrick Kua.pdf

specificsofwhatwentwellandwhattheycouldimprove.Itwashardformetoletstuffgo,butitdidchangetheattitudeoftheteamandIwasn’tconstantlybeingaskedwhattodonext.Delegationisespeciallyhardwhenyouknowhowtodoataskandtheotherpersonisstilllearning.Youknowtheymaynotdothetaskaswellasyoucould,buttheyneedtomakemistakesinordertolearn.Theadvantageisthatyouarenolongerdoingeverything!

Anytime-managementtips?

Thistiesinwithdelegation:itissomethingIamstillworkingon!Iamdiscoveringthatbreakingthingsdownintohigh-levelconceptsandthenprioritisingthemisworkingformerightnow.So,forexample,IstartbydecidingwhatIneedtodoandthendefinepriorities;IhavetoberealisticwithmyselfaboutwhatIcanachieve,giventhatmycalendarisoftenfullofmeetings.TherewillalwaysbetasksIcannotgetdone,sothenIthinkaboutwhoIcandelegatethoseto.Itrytobasemydecisionontheareaswherepeoplewanttogrow,butsometimesIsimplyhavetoaskthemtodotaskstheymaynotcarefor.

Tosummarise,Ibreakthingsdownintothreeorfourhigh-leveltasks,prioritise,thendelegate.Ireferto“YourBrainatWork”(DavidRock),whichexplainsthatprioritisationanddecision-makingishardforthehumanbraintodo,soyoushoulddoitwhenyouareatyourbestandmakeiteasieronyourselfbybreakingitintothreeorfourthings.

Itdoesn’talwayswork;Ioftentrytodoitallmyself,butIamconstantlyworkingonmyselfaswellastheteam.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Itishard.CodingisaveryfocusedactivityandIcanlosemyselfinastoryandbecomefocusedonthenexttesttowrite,forexample,butasaTechLeadyouneedtokeepaneyeonthearchitecture,theevolutionofthecode,doesitmeetthebroadergoals?Willthesolutionworkwiththingsthatareinthepipeline-thingsthatonlyyoumayknowaboutbecauseyouwereinthemeetingtotalkaboutthenextrelease.Youalsoneedtopayattentiontoteamdynamics.Aretherightpeoplepairingwitheachother?Arepeoplegrowing?Personally,IfinditeasierifIdropinandoutofstoriesratherthanowningthem.ThenIdon’tgettoocaughtupintoomuchdetailandIcanremindmyselfthatIammoreacoachthanacoderformyteam.

Rachel’sfirstkeyquestion:“HowwouldyoucoachadeveloperintobeingaTechLead?”

Themostimportantpointisthattheyunderstandthattheyarenolongerresponsibleforbeingthebestcoderontheteam,butformakingsureeveryoneelsedoestheirbest.Helpthemtoseetherisksinvolvedandhelpthemfindwaysofencouragingeveryoneelsetocontribute,particularlyiftheyareleadinganinexperiencedteam.Showthemwaystospreadresponsibilityfordesignsintheteam.EncouragethemtouseaSocraticquestioningmethodinsteadoflettingthemfirstpresenttheirideatoateam.Teachthemvariousquestioningstylestohelptheteamcomeupwiththeanswersthemselves.Thequestion,“Whatabout?”oftenhelps.

Page 66: Talking with Tech Leads_ From N - Patrick Kua.pdf

Teachthemtorecognisetheskillspeoplehaveandwheretheymightbebestapplied.Helpthemtofindabalancebetweensharingskillsacrosstheteamandbeing“efficient”withsoftwaredelivery.Helpthedeveloperbuildlisteningandinfluencingskills,astheywillhavemoreinteractionwiththebusinessandpotentiallyothertechnicalteams,architectsorotherTechLeads.Finally,identifyasupportnetworkforthedeveloperandpersuadethemtonotsufferinsilenceandtoaskforhelpwhenneeded.Helpthemfindagoodmentorwithmoreexperience,orsomeonewhoworksinadifferentroletogetfeedbackonideas,andtoprovidesupportorguidancethroughtryingtimes.

Rachel’ssecondkeyquestion:“Howdoyouremaintechnicalandrelevantwhenyoudon’tgettocodethatoften?”Acceptthatyouareunlikelytoremainthebestcoderontheteam,purelybecauseyouwillbecodingless.Focusonwhatyouneedtoknoworlearnforthecontext.Youmuststilldemonstratepassionaboutbeingtechnicalbecauseyoumayfindyourselflearningmoreinyourowntime.

Encouragetheteamtoorganise“Brownbag”sessionstokeepyouandotherteammembersabreastofwhattheteamislearning.Youwillrelymoreonreadingthecodetounderstandwhatisgoingonandpair-programwithdevelopersasmuchaspossible.Iaimtomakethisabout50percentofmytime.

Rachel’sbackgroundstory

Rachelisasoftwaredevelopmentveteranoftenyears,havingledsixteamsinthepast.TherolehasinterestedhersinceshefirstworetheTechLeadmantleanddiscoveredpeopleproblemsaremuchmoredifficulttosolvethantechnicalones.Sheusedtothinkthemosttechnicalpersonontheteamshouldlead,butrealiseddeeptechnicalknowledgedoesnotaidtheTechLeadinsolvingpeopleproblems.Rachelisalsoparticularlypassionateabouthowtogetandkeepmorewomenintechnology,particularlyintechnologistroles.ShewouldalsoliketoseewomenplaytheTechLeadrolemoreoften.

Page 67: Talking with Tech Leads_ From N - Patrick Kua.pdf

SoftSkills–JonPitherWhatshouldaTechLeadfocusonandwhy?

Getthebestpeopleinyourteam.Itissuchanobviouspoint,butthebestpeopletendtosolvemostproblemsforyou.Forexample,problemsofhavingtoeducateandlinemanagecanquicklyevaporateintoquestionsofhowyoushouldbestdelegate.

Iloveself-organisingteams.Atthesametime,aTechLeadneedstobringpositiveenergy.ATechLeadneedstostirthingsup,toaskquestions,andtofacilitatemeetingssothateveryonecanhaveafairsay.Idothisbydrawingupongoodold-fashionedmeetingmanagementtechniques,focusingonthebiggestissuefortheday,andseekingagreementonoutcomes.Althoughsomepeoplethinkwell-establishedteamsdon’trequirefacilitation,inmyexperiencethisisrarelytrue,especiallywhentheproblemiscomplexorilldefined.Itcanbeexhausting,butaleadmustbepreparedtogivealotofthemselves,emotionallyandintellectually.

TechLeadsshouldfocusondevelopingsoftskills.AgoodTechLeaddrawsupontheseskillstoseekbalancebetweenteammembers,topushboundariesofwhatispossible,andtonoticethosehappytostaywithintheircomfortzone.IshouldpointoutthatyourjobasTechLeadisnottoautomaticallysolveorincreasefriction.Disagreementsarehealthyaslongasitdoesnotblocktheteamfrommovingforward.

Lastly,aTechLeadshouldbepreparedtostepasideforthegreatergood,bywhichImeanfindingtherightbalancebetweenthreeelements:

Theemployersorthebusiness:thosewhofootthebillultimatelyrepresentthegreatergood.Theproject:teamscome,go,andchangeovertime.Thesystemswebuildoutliveus.Theteam:Iconsidertheteamasindividualsfirst,andasacollectivearoundwhatwouldmakepeoplehappy.Iliketoquoteofaformercolleagueofmine(HäkenRäberg):“Wearenotpaidtoenjoyourselvesatwork,butitdoesn’thurt.”

Whoeverworksinthisroleshouldbeworkingintheinterestsoftheteam.Whenateamisundertakingaradicaltransformation,forexample,achangeoflanguageandsupportingtechnologies,theTechLeadrolemaybetterbetransitionedorshared.

WhathasbeenyourbiggestchallengeasaTechLead?

IoncesteppeddownfromtheroleofTechLeadasIfeltIhadtodevoteallmyenergytocoding.Ibroughttheteamintoastateofnearanarchytofacilitateatechnologyshiftandfeltsomeoneelsecoulddoabetterjobofrestoringsomeprocess,cleaningupmymess.Ialsofeltextremelydedicatedtoensuringthetechnologyshiftsucceeded,sothiswaswhereIneededtofocusmyenergy.ThisleftlittletimeforotherTechLeadresponsibilitiesthatcanbeemotionallydrainingonmanyfronts.

Page 68: Talking with Tech Leads_ From N - Patrick Kua.pdf

SinceIwastryingtobeanagentforchange,Ineededsomeoneelsetotakeontheroleofcalmingagent;someonewhocouldbetterintegratetheviewsofteammemberswithopposingstrategies,ofwhichIwasone.Icouldnotplaybothroles.Ifoundasuccessorwho,Ibelieved,hadthenecessarysoftskillstofacilitateheateddiscussionsandhadtheappreciationofthebiggerpicture.

AnotherchallengeIhaveoftenencounteredisdealingwithateamgettingstale.Ateamneedsnewblood;itneedsnewsourcesofcreativity.Todothis,Isoughtoutamazinggraduatestoliftateam,aswellasscouringmynetworkforpeopleIhighlyadmire,whomIthinkshouldmakeadifferenceandexcitepeople.

Ifindithardtodealwithdevelopersinmyteamwholeantowardsaconservativeoranegativeviewpoint.Iwanteveryoneinmyteamtobehappyandexcited,butperhapsthisisoneofmyownfailings.Youneeddifferentpeopleonateamwithdifferentviewpointsanddifferentstrengths.JustbecauseIamaTechLeadIshouldnotlosesleepoverpeoplenotbeingthrilledbyworktheteamisdoing.

Anytime-managementtips?

To-dolistsareessential.Boringthingslikeusingacalendarhelp.OrgmodeinEmacsrockstoo.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Youshouldn’thangontobeingaTechLeadandwritingcodeallthetime.Ifyoucannotdoboth,thendon’t:pickone.IoncereadsomewhereonaJavaforum:“Pickonethinganddoitwellratherthansuckatboth.”

ButI’vehadgreatsuccessandjoyfromdelegation.Ifyouhaveagreatteam,delegate.Setup“streamleads”orTechLeadsoverasmallerarea.Asktheteamhowtheyfeelyoucanbestdelegate.Retrospectivesareamust.Aboozypubscenedoesn’thurt.

Jon’sfirstkeyquestion:DoIconsidermyselfagoodTechLead?

Ihavemixedfeelingsaboutthis.Icanbringgoodenergy;Icangainateam’strustandbewillingtopushwhateverbarrierpresentsitself.Ontheotherhand,Istrugglewithmyowndemonsofconfidence,ofnotfeelinggoodenoughtoleadsomeamazingpeople.Itcanbechallenging.IcangetstressedwhenIfeelmyteamisunderattackfrompeopleinlargeinstitutionsthatmaynotrespecttheworkwedo.Iamaverypassionateperson,andsometimesIfeelIwouldbenefitfrombeingmoresavvyatpolitics.

Jon’ssecondkeyquestion:HowcanIimprovemyself?

Meditateeveryday!Trynottotaketheworktooseriouslyandenjoytheplayfulnessinsideteamsmore.IlovecommunicationtechniqueslikeNonviolentcommunication,althoughitistooeasytoforgetsuchpractices.

Jon’sbackgroundstory

JonhasworkedinITfor12years,wherehehasactedastheTechLeadforthreetofourteamsinthelastfouryears.Hehasaparticularlystrongpassioninusingandcontributing

Page 69: Talking with Tech Leads_ From N - Patrick Kua.pdf

toopensourcesoftwareandhasmostrecentlyfoundapassionforusingClojuretosolveproblems.

Page 70: Talking with Tech Leads_ From N - Patrick Kua.pdf

EnablingPeople–IsabellaDegenWhatshouldaTechLeadfocusonandwhy?

ATechLeadshouldenableeachpersonontheteamtobeasproductiveastheycanbe.Theyshouldmakeeachteammemberfeeltheyarepartofasingleteamworkingtowardsthesamegoal.Theyensuredeveloperstrulyunderstandtherequirementsandco-ownthecodebase.OnewayIachievethisisbyensuringIdonotpresentmyideasfirst,andbyencouragingotherstosharetheirideas.ItrynottotellpeoplewhatIwoulddo,becauseIfindthisdiscouragespeoplefrompresentingtheirownideas.Iamcarefulaboutthat,andalthoughitdependsontheteam,IdelaypresentingmyownideasuntilIbetterknowthepeopleontheteam.

Itrytospendhalfanhoureverydaywiththedevelopersontheteamtoaskquestionssuchas:

Whatproblemsexistinthecodebase?Doyouhaveanynewideastotry?Wherearewespendingthemosttimeandwhatcanwedoaboutit?Isthereanythingonyourmind?

Ispendalotoftimetryingtoencouragelessexperienceddeveloperstosharetheirideas,becauseeventhoughtheymaynotalwayswork,theyoftencomeupwithdifferentapproaches.Mixedwiththeexperienceofseasoneddevelopers,weoftenendupwithanewsolutionthatwillwork.

Someideastakealongtime,soIalsoworkwithdeveloperstofindwayswecanincrementallyimprovetohelpwiththenextsetoffunctionalitybeingdeveloped.Ifindthisisthebestwayforgettingstakeholdersupportfortechnicalimprovements.

TechLeadsshouldalsoensuredifferentrolesonaprojectdonotworkintheirownsilos,throwingworkoverawall.Itrytopreventdeveloperspickingupworkwithoutinvolvingotherrolesand,ifInoticeit,willoftensendtheBusinessAnalyst(BA)andQualityAnalyst(QA)theirway.WhatIfindinterestingisthatBAsandQAs,whoarenormallytheminorityoftheteam,neverhaveissuesinvolvingotherroles.Theywanttotalk.Itisoftendevelopers,whothinktheyknowwhatneedstobedone,whoneedtheencouragementtoworkwithpeopleinotherroles.

AnotherwayItrytobreaksilosacrossteamsisoftenatsocialevents.AsaTechLead,IoftenspendmoretimewithpeopleintherolesofProjectManagerorProductOwner.Atsocialoccasionssuchasateamlunch,Itrytoavoidsittingnexttothesepeopletogiveothersanopportunitytointeractwiththem.

ATechLeadshouldfocusonthepathtoproduction.Iliketostartdesigningandarchitectingasolutionbyenvisagingago-livedate,thereleaseintoproduction,andwork

Page 71: Talking with Tech Leads_ From N - Patrick Kua.pdf

backwardsfromthere.Iidentifywhatworkmustbedone,andtheimpedimentswemightencounterandmustovercome.ATechLeadworkswiththebusinesstodevelopasharedunderstandingofhowmuchworkcanbedone,andthereforehelpprioritisingwhattheywanttodo.Theyalsohelpnon-technicalteammembersunderstandwhatisoccurringinthedevelopmentteambytranslatingtechnicalneedsandtermsintoamoregenerallanguage.

WhathasbeenyourmostchallengingsituationasaTechLeadandhowdidyouhandleit?

MyfirstprojectasTechLeadwasthemostchallengingsituation,becauseIdidnothavetheexperienceanddidnotunderstandwhattherolewasabout.Ifounditdifficulttogettheteamtorespectme,which,inhindsight,isnosurprisegiventhatItotallymisunderstoodthatIhadtogivetheteamthefreedomtodesigntheirwork.Ishouldhavebeenactingasashepherd,lookingafterthemandsteeringthemlooselyintherightdirection,ratherthanenforcingallmyideas.

Luckily,Iwasworkingwithanexperiencedprojectmanagerandwespentanhourtogethereverydaytodiscussproblems.Thesediscussionshelpedmeunderstandmoreaboutmyrole.Feedbackfromalltheteammemberswaswhatmademechangemyapproachthenexttimeroundandeversince.

Anytime-managementtips?

Everyday,beforeourteam’sstand-upmeeting,ItrytoarriveearlysothatIcanspend40minutesintotalquietwhereIcanponderoverwhatisgoingonintheproject.Iaskmyselfquestionslike,“Arethereanysmellsoranti-patternsappearing?Dowestillfollowourvision?Iseveryoneonboard?”

IletmyteamknowwhatIamdoingduringthistimesothetimeisnottakenfromme.Ithinkitisimportanttohavetimeforvisioningandnotjusttimetoworkthroughtasks.

IensureIgetsolid,unbrokenchunksoftimethroughouttheday(suchasallafternooneachday,ortwofulldaysaweek)withoutanymeetingssothatIcanwritecodeandpairprogramwithotherdevelopers.

Igiveasmuchresponsibility(alwaysslightlymorethanyouthinkyoushould)toothermembersoftheteam.Thisfreesupmytime,andthemembersoftenfinditmuchmorefulfillingtoownwholepartsofasystemsuchasanintegrationpoint.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

WritingcodeiswhatIlovedoingmost.However,quiteoftenIdeprioritiseitinfavourofresolvinganissuethatInoticewouldunblockmoremembersoftheteam.Ifeelthatpeoplewhounderstandbothtechnicalandbusinessaspectsarebestplacedtosteertheteamawayfromobstacles.Theyalsotendtobebetteratfindingsolutionswhentheteamdoeshaltduetoablock.

Itrytoavoidreviewingmyteam’scheck-ins.Instead,Iensurethatthedeveloperswithmoreexperiencepairprogramonthecriticalstories.IfIdonothaveateammemberwiththatexperience,thenIspendmuchmoretimeinthecodebase.

Page 72: Talking with Tech Leads_ From N - Patrick Kua.pdf

Iseemyselfasaguestinthecodebaseandnotastheowner.Iusethetimeinthecodebasetodetectcodeandarchitecturalsmells,anti-patterns,maintainabilityissues,anddiscussthesewiththeteam.Ideallytheywilltakeownershiptoresolvethose.Ialsousethetimetobetterunderstandthestrengthsofdifferentdevelopers,highlightingwhentheycomeupwithagreatideaandnudgingthemonhowtheymightsharethatwithawidercommunity.

Isabella’skeyquestion:HowdoIgetopinionateddeveloperswithdivergentopinionsbetterintegratedasateam?

Idonothaveagoodanswertothis.Atthemoment,Iwouldsayittakestimetobuildanunderstandingofwhytheydonotlikeworkingwithotherpeopleorconsiderotherpeople’ssuggestions.

InthepastIhavesatwiththemandexplainedwhatIexpectedandwhy.Iletthemexplaintomewhytheyhadadifferentapproach.Normallythereissomemiddlegroundthatcanbefound.ButIwouldbeinterestedtohearwhatotherpeopledointhesesituations.

Isabella’sbackgroundstory

IsabellastartedworkingforThoughtWorksin2006andbeganherTechLeadjourneyin2008.Sincethen,shehasplayedtheTechLeadroleforovereightdifferentteams,mostlyusingJavaand.NetTechnologies.ShehasaMastersofScienceinElectricalEngineeringandInformationTechnologyfromtheETHZurich.

Page 73: Talking with Tech Leads_ From N - Patrick Kua.pdf

It’sNotAbouttheCode–PatricFornasierWhatshouldaTechLeadfocusonandwhy?

Beingabletomastertechnologyisabsolutelynecessary,butnotsufficientinitselftodeliversoftwareeffectively.TwoothermainareasthatasuccessfulTechLeadshouldfocusonarepeopleandprocess.Thereisnotmuchpointwritinggreatcode,forexample,ifyouaresolvingthewrongbusinessproblem,becauseyoudidnotcommunicateenoughwithyourcustomers.Or,itmightmakesensetohaveonedeveloperworkonsomethingelseotherthanstories,suchasanalysis,techtasks,operations,ortestingifthismakestheteamgofaster.Inthisrole,youmakethesecost/valuedecisionscontinuouslyandprioritiseaccordingtowhatyouwanttheteamtofocuson.

AsaTechLead,Ispinmanyplatesatonce.WhatoccupiesmythoughtsthemostisfiguringoutwhichplatesneedtokeepspinningandwhichonesIcanaffordtoletcrash.

Usually,mydaysarefilledwithmakingdecisionstostrikeabalancebetweencostandvalueinordertoachieveanoptimaloutcome-short,medium,andlongterm.Forexample,IneedtoknowmyteamwellsothatIcandecidewhoismostsuitabletoworkonagiventask.Thereisanumberoffactorsthatinfluencethisdecision,suchastaskimportance,taskurgency,team-memberskillset,experience,andpersonalpreferences.

WhathasbeenyourbiggestchallengeasaTechLead?

Ithinkoneofthehardestthingsisbalancingshort-termagainstlong-termgoals.Itiseasytosellashort-termgain,butitrequiresmoreexperience,disciplineandskilltoforgoaquickwintodayinfavourofbeinginabetterplacetomorrow.Oneexamplethatspringstomind,iswhentheChiefTechnicalOfficer(CTO)ofalargeprojectIwasworkingonaskedmetoaddanextradaytoourcurrentiteration,becausehehadanimportantboardmeetingthefollowingweekandwantedtoputusinagoodlightbydemonstratingmoreprogressthanwehadactuallymade.ItwasatemptingpropositionintheshorttermbutIknewitwouldbackfireeventually.

Ittooksomecourageformetostandmyground,butIexplainedthatifhewantedtofakeprogressthereareeasierwaystodothat.Heabandonedhisideaandpresentedactualdatatotheboard,whichwentdownwellandavoidedsettingunrealisticexpectationsofwhattheteamwascapableofdelivering.

Anytime-managementtips?

Itrytogetmyprioritiesright.Generally,there’salwaysmoreworkthanIcouldpossiblydo,soitisaboutdecidingwhat’smostimportant.Iusuallyspendafewminutesinthemorningwritingdownmyprioritiesonapieceofpaper,whichIcarrywithmethroughouttheday.Everynowandthen,Itakeacoupleofminutestoreviewthelistortickthingsoff.WheneverIamspendingmorethanacoupleofminutesonsomething,Icheckthelistto

Page 74: Talking with Tech Leads_ From N - Patrick Kua.pdf

seeifthetaskIamworkingonisactuallythemostimportantthingIshouldbeworkingon.Ifitisnot,Ieitherstopimmediatelyortakeaminutetore-prioritise.Thatway,IamalwaysfullyawarethatIamspendingmytimeonwhatIdecidedwasmostimportant.Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Strikingthisbalanceishard.WritingcodetakeslongblocksofuninterruptedtimeandforaTechLead,theseblocksbecomerarer.Evenso,IthinkitisnecessarythataTechLeadspendstimeonthecodebase.ATechLeadensuresthecodebaseremainshealthy.Idon’tthinkyoucanleadateamofdevelopersifyoudonotknowwhatyou’retalkingabout.Asaprinciple,Idon’taskadevelopertodosomethingthatIwouldnotdomyself.ItisawaytokeepmehonestandallowsmetoappreciatetheworkIaskotherstodo.

Thereareafewapproachestohelpmedealwithdistractions:

Pairprogram-WhenIgetdistracted,mypaircancontinueworkingonthetask.WhenIreturn,Ifinditeasiertogetbackintotheflow.Delegatework-Isitdownwithpeoplewhenthey’reworkingonacrucialpart.AssoonasIfeeltheydon’tneedmeanymore,Iletthemgoonwithoutme.Findquiettime-Itrytotakeacoupleofhourseveryweektoeitherlockmyselfintoaroomorworkfromhomeuntillunchtime.

Patric’skeyquestion:Howdoyoukeepyourtechtoolssharp?

Ithinktherearereallythreeessentialpartstothis:networking,alertnessandlearning.Iamrelyingheavilyonmyprofessionalnetworktofilterandsurfacenewideas,tools,techniques,etc.Atthesametime,IpickupnamesortermsIamnotfamiliarwith.IfIpicksomethingup,Ispendamomentputtingitincontextandunderstandinghowitcouldbeused.Atthisstage,mylearningissuperficialandIamonlyoptimisingforbreadth,notdepth,butithelpsmebuildupacatalogueofresourcesthatIcancomebacktoatalaterstagewhenIamconfrontedwithaspecificproblem.Atthatstage,Ispendmoretimetolearnindepth.This,incombinationwithhavingaspecificproblemtosolve,allowsmetolearnquicklyandeffectively.

Patric’sbackgroundstory

Patrichasworkedincommercialsoftwareforover10years,havingspenttimebeforethatinacademia.Althoughheenjoyscoding,hefindshimselfalwayslookingtoimproveteamsandprocesses,whichnaturallyledhimintotheTechLeadrole.Heseesthemostdifficultchallengeinsoftwareasthesocialratherthanthetechnicalaspects.

Page 75: Talking with Tech Leads_ From N - Patrick Kua.pdf

PeopleFocus–SarahTaraporewallaWhatshouldaTechLeadfocusonandwhy?

Ithinkaboutthefollowingquestionsallthetime:

Ismyteamsetupaswellasitcanbe?AndhowdoIgetthebestoutofeachteammember?Doeseachteammemberknow,understandandbelieveinthesamegoal?AmIallowingthemenoughroomtomaketheirownmistakesandgrow,butnotsomuchspacethattheprojectisderailed?AmIfosteringasupportiveenvironmentwheremyteamhasthefreedomtochallengemeonmyideas?

WhathasbeenyourbiggestchallengeasaTechLead?

IwasonateamwherethefivedevelopersdoubledwhilstIwasawayonholidays.Everyonehadsignificantlydifferentskillsandexperiences.IdonotthinkIhandleditaswellasIwouldhaveliked,butIlearnedalot.

OnegoodthingIdidwastoidentifytheseniormembersoftheteamanddelegatedareasoffunctionalitytothem.Theyworkedwithmetocomeupwiththehigh-levelconceptanddesign,butitwasuptothemtoputitincodeandexplainittotherestoftheteam.

AsaresultIworkedcloselywithcertainmembersoftheteam,andgottounderstandwhatwasworryingthem,whereIshouldbeconcerned,wheretheywantedtoextendthemselves.ButIdidnotspendenoughtimewiththemorejuniormembers.Ithinktheyfeltlessappreciatedandheardasaresult.

Anytime-managementtips?

IusethestorywalltoletpeopleknowwhatIamworkingon.

Iusuallylethighestpriority(sometimesthe“loudestshoutingperson”)dictatewhatIamworkingonnextandanyotheritempurposelydelay.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

That’shard!Ifindmyselfeitherrefactoringcodetoenablestoriesinupcomingiterations,orsneakinganew,smallstoryformyself.Dependingonthesizeoftheteam,anycontributiontocodeImakewillnotusuallyaffectoverallprogress,soIdon’tfretwhenIamnotworkingonstories.ItfreesmeuptomakesureIcanpairwithsomeoneontoughstories,orstorieswhichseemtodrag.ItalsomeansthatwhenIamdraggedofftomeetingstheflowofastoryisn’tinterrupted.

Isettimeasidespecificallytositdownandpair,sooncertaindaysnomeetingsmaybebooked.

Page 76: Talking with Tech Leads_ From N - Patrick Kua.pdf

IconstantlyhaveanearopentodiscussionstoworkoutifIamneededornot;thatwayIcancarryonwhatIamdoing,listeninandstepinwhenIammostneededtocutdownontime.

Sarah’skeyquestion:Wasthereeveratimewhenyouthoughtthatyouweren’tagoodTechLead?

Yes,loads!Especiallystartingout.ButIthinkthatdoubtmakesyoubetteratanythingasyouseekwaystoimprove.OnmyfirstlargeteamasTechLeadIhadacrisisoffaiththatwassogreatIalmosttoldourResourceManagementnottomakemeTechLead,asIwascertainIwasdoingsomethingwrong,butcouldn’tfigureoutwhat.Iconsultedsomeoneaboutit,whosaid,“YoucouldavoidbeingTechLeadoryoucouldfindoutwhatyouaredoingwrongandfixit.Whatdoyourteammatesthinkofyou?”Ididn’tknowtheanswer,soIstartedfeedbacksessionswitheveryone.ItturnedoutthattheythoughtIwasdoingagreatjob,butwantedmetospendalittlemoretimewiththem.Sowealllearnedtogether:theyrealisedIwashavingdoubts,sotheyhelpedmeoutandwebecameamuchbetterteamforit.

Sarah’sbackgroundstory

SarahhasbeenworkinginITforabout10years,startingwithBoeingasagraduateandthenmovingontoThoughtWorksthreeyearslater.

ShesteppedintotheTechLeadroleasthesecondincommandonaprojectforBenButler-Cole(BBC)anddescribes“unofficiallyfallingintotheTechLeadrole”againonhernextproject.HersubsequentTechLeadroleshavebeeninafuller,moreofficialcapacity.

Page 77: Talking with Tech Leads_ From N - Patrick Kua.pdf

EngagingtheTeam–GlenFordWhatshouldaTechLeadfocusonandwhy?

AsaTechLead,Iaimtoaccomplishtwomainthings:

Removetheobstaclesformyteam:Iaddresstheissuesthatareholdingbackmyteamorindividualsintheteam,whetherthatbeexternalissuessuchasblockingstakeholders,orinternalonessuchaslackofexperienceorknowledge.Makemyselfredundant:Iworktoensuretheteamhastheskills,knowledge,andexperiencetorunitself.Thereareacoupleofreasonsforthis:Iwantmyteamstoself-organiseasmuchaspossible;itgivesthemagreaterfeelingofempowerment.Itmeanstheteamcanoperatewithoutanoverseer,soIcanhaveconfidence,shouldIgoonleaveorgetill,thatthingswilloperatesmoothly.Justasimportantly,italsofreesmeuptolookatbroaderconcernsandaddmorevalueatahigherlevel.

MymainworriesasaTechLeadareusuallyaboutpeopleengagement.Technicalproblemsarerarelyinsurmountable,inmyexperience.Peopleproblemsaremuchmorecomplex.

WhathasbeenyourbiggestchallengeasaTechLead?

Itisdifficulttoselectthesinglemostchallengingsituation.Themostrecentchallengewasleadingastrongteamoffourseniordevelopersandtechnicalarchitects,eachwithatleast10years’experienceandeachhadworkedasTechLeadsinthepast.Allwereverytechnicallyproficientandallopinionated.

Theteamhaddeliveredaprototypeveryquickly,whichhadsubsequentlymovedtoproductionand,asaconsequence,wasfallingapartattheseamswithtechnicaldebtanddesigndecisionsthathadmadesenseinthecontextofaprototype,butmadenosenseinproduction.

ThechallengeIhadwasgettingtheteamengagedandworkingtoasinglevision;gettingthebestoutofdifferentpersonalities,whilstkeepingeveryoneontheteamtalkingandfeelingpartoftheteam.

IfIhadn’tbeenabletoshowmytechnicalcompetencewiththisteamitwouldhavefallenapart,butbecauseIhadearnedtheirrespect,Iwasabletoengagethemonthesurroundingissueswefaced.Imadeitclearthatmyrolewastoremovetheirobstacles,managethestakeholders,andclearapathtoincrementallyimprovethesystem.InreturnIexpectedeveryonetobeprofessional,speakoutwhentheyfeltthingsweren’tright,andrespecttheideasofsharedownership.

Bytreatingeveryoneintheteamasanindividualandworkingtounderstandwhattheyneededtoperformtotheiroptimum,Iwasabletomakeaccommodations,whichinturnbuiltteamcamaraderie.Forexample,Ifoughthardtokeepregularwork-from-homerights

Page 78: Talking with Tech Leads_ From N - Patrick Kua.pdf

forpeoplewhoworkedwellremotelywhentheserightsfeltthreatenedbyamanagementthattendedtofallbackon‘bumsonseats’.IworkedhardbuildingteaminteractionsandIfoundproductivitygrewsignificantly.Webuiltateamcultureof‘disagreementisnotcriticism’and‘failureislearningwheretheboundariesare’.

Dailystand-upsweretypicallyshort;storycardsweresimplecards,whichweredebatedandrewrittenuntileveryoneunderstood.Processwasataminimum.Idealtwithreportingtostakeholdersandensuringthatnoprocesswithoutvaluecreptintohowweworked.Huddles(wesattogether)severaltimesadaybecamecommon,aswewouldsolvespecificissuesasagroup.Wepair-programmedonoccasion,butnotasanexplicitrule.

WhenIsteppedintotheleadershiproletheplatformwascausingoperationalpainandIhadtostaveoffdemandsforrewrites,quickhacks,andother‘injectedsolutions’.Ireliedonmyteam’sandmyowntechnicalcompetenceinrebuttingthis,understandingthatweneededtolookunifiedandinagreement.

Weturnedtheplatformaroundfromunstable,monolithicprototypetodecomposedrobust,distributedplatformwithoutanyinterruptiontoendusersatallandwealsodeliveredbusinessvaluethroughnewfeaturesandreducedcosts.

Anytime-managementtips?

Startingearlygivesmeanhourtogetmythoughtsandplansforthedayinplace.I’llgothroughanythingoutstandingfromthepreviousday,reviewanyurgentorimportantissues,ofwhichIkeepthreeto-dolists:onefortoday,oneforneartermandoneforlongerterm.Itjusthelpskeepthingsvisibletome.

Itryanddealwithissuesfacetoface,ratherthanlengthyemailexchanges.Itiseasytoburnalotoftimeinemailexchanges,whichareopentomisinterpretation.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Itendtoworkonsmalldiscretepiecesofcodingthatarenon-critical,soIdon’tholdupanyteammembers.OrIworkcloselywithanotherperson,eitherpairingorclosecollaborationsothatIcanhandoverseamlessly.ThisusuallyworkswellasIcanaddressmoreKaizen-typeproblemsandreducefriction,whichcanotherwisebuildup,andithelpskeepmyknowledgeofthecodebasecurrent.

Ihaveoccasionallycodeddeeplyforworkthatrepresentsmajororcomplexfunctionality.However,onthoseoccasionsIdidfinditmuchhardertobalancetheneedsofleadershipagainstthe‘mentalspace’requiredforsuchthought-intensivework.

Glen’skeyquestion:Haveyoureceivedanytrainingormentoringspecifictoleadingteams?

ManyTechLeadshavehadlittletonotrainingorguidanceinwhatitmeanstobeaTechLead,orhowitrequiresadifferentmindset.Onthecontrary,IseemanyTechLeadsthinkingthattherolemeanshavingtodomorehoursthaneveryoneelse;thattheyhavetobethebestdeveloperintheteam.

Page 79: Talking with Tech Leads_ From N - Patrick Kua.pdf

Ireceivedminimaltraininginmyengineeringdegree,butIhavebeenfortunatetohaveworkedwithsomegreatpeopleinmycareer.

Glen’sbackgroundstory

GlenhasworkedinITfor20yearsaftergraduatingwithadegreeinelectronicengineering.Hehasleadaboutseventeamssince2000,movingbetweenleadershipandarchitecturalroles.

Page 80: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 81: Talking with Tech Leads_ From N - Patrick Kua.pdf

TheTechofaTechLead

TheroleofTechLeadwouldnotbethesamewithouttheresponsibilityimpliedbythetechnicalaspectsoftherole.Atthesametime,certainTechLeadresponsibilitiesdistinguishtherolefromthatofadeveloper.

GuidingtheTechnicalSolutionThefirstdistinguishingresponsibilityofaTechLeadistheirgovernanceofatechnicalsolution.ThisresponsibilityoverlapswithaTechnicalArchitectandinmanyorganisationsthesetworolesareoneandthesame.

TheTechLeadshapestheoveralltechnicalsolutiontoensurethatallrequirementsaremet.Theyneedtoappreciateallthefunctionalrequirementstounderstandwhatmightbebuiltaswellascross-functionalrequirements(CFRs)abouthowitmightbedelivered.TheTechLeadlooksforthesignificantCFRsthatcouldrequireadifferentarchitectureoradditionalworktoimprovedimensions,suchassupportabilityorfrequentdeployability.TheTechLeadchampionsallrelevantCFRsandeducatespeopleaboutthenegativeimpactofneglectingthem.

CFRsaffecttheshapeofthefinaltechnicalsolution,sotheTechLeadusesdiagramstocommunicateunderstandingwithintheteam.

HarmonisingTeamDirectionWhenyouhaveagroupofdevelopersworkingonasinglesystem,youwillhaveoccasionswhendevelopersdisagreeabouthowtoapproachaproblem.Disagreementsarehealthyaslongastheteamsettlesonadirectionrelativelyquickly.Disagreementsbecomedestructivewhentheteamdivides,unabletochoosebetweenalternatives.

TechLeadswatchcarefullywhentheteamreachesanimpasse.Theyusedifferentstrategiestofindwaysfortheteamtomoveforward,perhapsfacilitating,reachingforexternaladvice,orsometimessteppingintomakeadecision.Inthesesituations,aTechLeadfirstseeksagreementonthecoreproblembeingsolved,beforeentertaininganysolutions.Onlyonceeveryoneagreesonthecoreproblemwilltheteamfindasolutionagreeabletoall.

ATechLeadalsolooksforsignsthatindicatedevelopersmaybemovingindifferentdirections.TechLeadswatchoutforwhenanindividualunnecessarilyaddsanotherwayofsolvingaknownproblem.Differentmethodsofaccomplishingthesametaskleadstounnecessarycomplexityandmakescollectivecodeownershipmoredifficult.Ateaminharmonylookssimilartoasingledeveloperwritingthecodebase,unlikethefollowing:

Page 82: Talking with Tech Leads_ From N - Patrick Kua.pdf

Ateamoutofharmony

ATechLeadpromotesdesignprinciplesandarchitecturalguidelinesfordeveloperstomakedecisionsthatalignwiththeoveralltechnicalsolution.

ManagingTechnicalRisksTechnicalrisksquicklyturnintoissuesthataffecteveryonewhowantstochangesoftware,notjustthedevelopers.However,onlypeoplewithatechnicalbackgroundcansensetherisksandmoreaccuratelyunderstandtheirimpact.Developersarealsobethefirsttofeeltheimpactwhenrisksbecomerealandturnintoissues.

TheresponsibilityformanagingandtrackingtechnicalrisksfallstotheTechLead.Justlikethewayaprojectmanagertracksandresolvesrisksandissues,theTechLeadworkswithdeveloperstoidentify,prioritiseandfindwaystomitigatetechnicalrisks.TheTechLeadmakesrisksmorevisibletooutsidestakeholdersandlobbiesfortimeandresourcestoaddressthem.

TheTechLeadfindsdifferentapproachestoexpresstechnicalriskstonon-technicalpeople.TheTechLeadusesmetaphorsandvisualisationstoexplaintonon-technicalpeopletheimpactthattakingrisksmighthave.Expressingtechnicalissuesinwaysnon-technicalpeoplecanunderstandcreatesbetterrapportandgeneratessupportforfixingthem.

Thechampionforaddressingtechnicalrisksortechnicaldebtmustcomefromwithintheteamortherisksremainunaddressed.

TakingaLonger-TermViewAdevelopersolvesaproblembasedontheirownexperiences,knowledge,andwhattheythinkisrightforthem.Adevelopermakesthischoicewithanarrowperspective.TheTechLeadhastoapproachproblemswithawiderperspective;theylookattheconsequencesthatachoicehasonotherpeopleontheteam,andthefutureworkorreworkthatthechoicecouldsaveorcreate.TheTechLeadevaluatesdecisionswithabroader,longer-termview.

Page 83: Talking with Tech Leads_ From N - Patrick Kua.pdf

IntheearliersectiononNovices,newTechLeadssuddenlybecameawareforthefirsttimeoftheimpactadesigndecisioncouldhaveondeployment,architecture,andthelong-termmaintainabilityofthesystem.WhatmaybesimpleforadevelopercouldmakerunningthesoftwareinproductionmoredifficultandaTechLeadneedstobeawareofwhomightbeaffectedbythatchoice,particularlyiftheysitoutsideoftheteam.

ATechLeadbecomesparticularlyconcernedifachoicetodaymakesitmoredifficulttochangeoraddtothesystemtomorrow.TheTechLeadfindsopportunitiestosafelyexposeadevelopertothisbroaderviewtogrowthedeveloper’sawarenessoftheimpactanindividualdecisionmighthaveonthefuture.

Page 84: Talking with Tech Leads_ From N - Patrick Kua.pdf

TeamsandArchitecture–SimonBrownWhatshouldaTechLeadfocusonandwhy?

ThetermTechLeadisambiguous:someconsidertheTechLeadtobetheleadprogrammer;someseeitasasynonymofsoftwarearchitect.IpreferSoftwareArchitect,becauseitimpliesasetofresponsibilitiesthataren’tsoobviouswhenyouusethetermTechLead.

Whatevertermyouuse,theroleshouldfocusonputtingtogetherthehigh-levelarchitectureofthesoftwaresystem,takingcaretounderstandanyrequirementsorconstraintsthatinfluencethearchitecture.Architecturesneedtoevolveovertimeandfocusneedstobeputoncontinuoustechnicalleadershiptoo,toguardthearchitectureandensuretechnicalquality.

Toanswerthequestion,Iwouldhavetosayfocusonmakingyourselfreplaceable.Itisaboutcoaching,collaboratingwith,andleadingtheteam.

WhathasbeenyourbiggestchallengeasaTechLead?

MybiggestchallengewasprobablywhenIwasaskedtotakeoverasoftwareprojectbecausethepreviousTechLeadquit.Fromtheoutside,theprojectappearedtohavecleanarchitecture,agreatteamwhowereontracktodeliveringwithinbudget,andagreedtimescales.Oncloserinspectionitwasadifferentstory.

Ifeltthatthearchitecturewasoverlycomplex.Futurestrategywascitedasthereasonforthis,buttodate,thisstrategyhasneverbeenimplemented!Ifoughttosimplifythearchitecture,buttoomuchhadalreadybeenspentonthosepartsofthesystemthatIfeltwereunnecessary.Thecodelookedmorecomplexthanitshouldhavetoo,andmembersofthedevelopmentteamcomplainedaboutthecomplexityoftheinternallayeringstrategy.Therewerefewautomatedtests;thedevelopmentprocessbeingfollowedbytheteamwasambiguous,andtheoverallscopeoftheprojectwasvague.

Ihadachoice:cleanupthecode,writetestsandhopethateverythingworkeditselfout,orstepbackandrevisitthebasics,suchasthescopeoftheprojectandtheprocessthatweshouldfollow?Idecidedtodothelatter,asnoonehadaclearideaofhowmuchhadbeencompleted,orhowmuchwaslefttodo.

Wesetupsomeworkshopswiththeprojectsponsorstodefinethehigh-levelscope.Wesimplifiedthearchitecture;createdaKanbanboardtovisualisetheremainingwork;introducedasimpledefinitionof“done”andgotseriousaboutautomatedtests.Wegotthereintheend,butitwasthemostfrustratingprojectthatI’veeverbeeninvolvedwith.

Ittaughtmetwokeythings:agoodteamismorethanthesumofitsparts,andthatnoteverybodyhasattentiontodetail.Myfirstrulenowforanybodyinaleadershiproleis:nevermakeanyassumptions.

Anytime-managementtips?

Page 85: Talking with Tech Leads_ From N - Patrick Kua.pdf

Therearelotsoftechniquesfortimemanagement,includingGettingThingsDoneandPersonalKanban.Ithinkthekeyistotakeapragmaticstanceofwhensomethingis“done”.Itisincrediblysatisfyingwhenyou’vewrittenorre-factoredsomecodetobethebestitcanbe;thetrickistoknowwhentostop.Automatedtestsandacceptancecriteriadogosomewaytohelpinghere,but“continuousre-factoring”doesrequiresomelimits.

Thingslikedocumentationtakealotoftime,soIworkiteratively,pushingstuffoutbeforeitisdone,togetfeedbackthatIamheadingintherightdirection.That’stheadviceIwouldgiveanybody:wetalkaboutbuildingsoftwareusingagileanditerativeapproaches,buttheseapproachescanbeusefulinotheraspectsofaTechLead’sdayjob.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Firstly,don’ttakeonmorethanyoucanhandle.Secondly,don’tputyourselfonthecriticalpathwithregardtodeliveringcode.It’snotalwayspossible,ofcourse,butbeawarethatyoucaneasilybecomethebottleneck.Thirdly,beopen,coach,andcollaborate.SharingtheTechLeadrole(evenalittle)spreadsthepressureofotherpeskyissuesthattakeawayyourtimefromwritingcode.

Steppingawayfromthekeyboardcanbeuncomfortablewhenyoufirstmoveintoaleadershiprole,butyoudon’tlosetheabilitytocodebysteppingbackfromyourIDE(integrateddevelopmentenvironment)forafewhoursaday,sodon’tletitworryyou.

Simon’skeyquestion:Wheredoyoulearnabouttechnicalleadership,andparticularlythesoftersideoftherole?

Thistopicisn’tgivenmuchthought.There’salotofdiscussioninthesoftwareindustryaboutbeingagileandhavingself-organisingteams,andthetraditionalviewofsoftwarearchitecturehasdiscouragedpeoplefromlearningaboutthediscipline.WhileIagreethatweshouldcertainlystrivetobeself-organising,mostteamsthatI’veseenaresomewayfromthatgoal.Manyproblemstheyfacecanbesolvedbyhavingasingle,dedicatedTechLead.Irecommendthesebooks:

BecomingaTechnicalLeaderbyGeraldWeinbergNotestoaSoftwareTeamLeaderbyRoyOsherovePresentationZen:SimpleIdeasonPresentationDesignandDeliverybyGarrReynoldsGamestorming:APlaybookforInnovators,Rulebreakers,andChangemakersbyDaveGrayetal.

Simon’sbackgroundstory

Simonhasspent12yearsworkingforITconsultingcompaniesinabroadrangeofindustries,graduallygrowingintotheTechLeadrole.HemovedbacktoJerseyintheChannelIslandsjustoverfouryearsago.

Simonstillwritescodetodaybutmoreofhisworkishelpingteamsunderstandsoftwarearchitecture,technicalleadershipandfindingthebalancewithagility.Heiscurrentlywritingabook,“SoftwareArchitectureforDevelopers”thatcoversthesetopics.

Page 86: Talking with Tech Leads_ From N - Patrick Kua.pdf

EnablementandSolutionDesign–MartenGustafsonWhatshouldaTechLeadfocusonandwhy?

Enablementandsolutiondesign.

Enablementshouldcomefirstandforemost.Ensuretheteamhasroomtoworkeffectively;shielditfromcompanypolitics,pointlessmeetings,andotherdistractions.Atthesametime,focusontransparencybydescribingwhatishappeningaroundtheteam,changesindirectionfromthebusinessorwhatmaybecomingupinthefuture.

Solutiondesigncomesaclosesecond.Itrytoidentifyworkpatternsovertime.Iaskquestionssuchas:“Dowewritethesamefunctionmorethanonceand,ifso,canweconsolidatethedifferentversions?”or“Isourcurrentdatastoreagoodfitforotherdata?”or“Shouldweuseadifferentlanguageforeverything,orjustforcertaincomponents?”

Itrackprogressprimarilybyreading,oratleastskimmingallthenewlywrittencodeandreadingaboutnewtechniquesorevaluatingframeworks.

Ispendsignificanttimethinkingaboutdeferredissuesthatcouldcomebacktobiteus.Issuessuchaswhetherwe’reusingtherightstrategyfordataversioningpersistentdata,orifoperationalaspectssuchasmetriccollectionandlogretentionaregoodenough.Iworryabouthavingenoughsupportinginfrastructureforthedevelopmentteam,suchasbuildservers,orshorteningbuildtimesandmakingdeploymentssmoother.Iconsiderwhetherwearespendingenoughtimeonqualityaspectssuchasstability,availability,andscalability.

Itrytofosteraculturewheredevelopersseebeyondthegreenunittestsandalsoobserveoperationalaspectssuchasdeployability,monitoring,metrics,andchangingservertopologies.

IusethisasalistofprinciplesforanoviceTechLead:

ReadasmuchcodeaspossibleSetasfewrulesaspossibleCodewinsargumentsBeyourownharshestcriticThere’salwaysabetterway,butwhatisthemostfeasiblesolutionrightnow?Alwaysaddressoperationalaspectsearlyon.

Imakesurewedosomethingoutsideworkonceinawhileandtrytotalkaboutsomethingotherthanwork.

WhathasbeenyourbiggestchallengeasaTechLead?

Explainingtomanagementthecomplexityofmigratingacompletesoftwarestack,whileswitchinghostingprovideratthesametime.IthinkIdidfairlywellbydrawinga

Page 87: Talking with Tech Leads_ From N - Patrick Kua.pdf

dependencytree.Wehavetodothisinordertodothat,andsoon,allthewayuptotherootnodenamed“DONE”.ThisisacoarseandlargevariantoftheMikadoMethod.Anotherchallengeisdealingwithbadtechnicalinvestments.Techniquesthatlookfine,startfine,andthencomecrumbleshortlyafterwards.Youhavetoreassess,readjust,andfindthebestalternativeroute.Thetransitioncostiseasilyforgotten,especiallythegreyareaofmotivation:doesaforcedchangeofaframeworkorpracticede-motivateyourteamordoesitenergisethem?

Shapingtheoverallteamtoworkagainstcommongoalsandhonouragreedbestpracticescanbeverychallenging.Itisharderunderpressurewhenpeople“digin”withafocusonshipping.Itiseasytosliponbasictechnicalqualitysuchasdeployability,operability,andcleancode.

Anytime-managementtips?

Idon’ttrustmyselfwithkeepingtabsonhowmuchIwork.Iwriteeverythingdownasitistheonlywaytobesure.Iupdateaspreadsheetonadailyandweekly(inaggregate)basis.Irecordshortcommentsonparticulareventsandnotableaccomplishmentsperweek.

Secondly,timeoffcanbeagoodthing,notjustforyoubutforyourteam,astheygettoworkwithoutyoubeingaround.After14years,Istillstruggletotaketimeoff;Iamdefinitelymyownbiggestobstacletotakingtimeoff.

Itrytodeferplanningasmuchaspossibleuntilsomethingmustbedone,ortheperceivedneedtoplanhasbeenobliteratedbychangedcircumstances.Deferringasmanyitemsaspossiblefreesuptimeforcodereviewsandactualprogramming.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Ifyouenjoyprogramming,youhavetolearntoacceptthatTechLeadshaveabattleandtherewillbeupsanddowns.Iprioritisenon-programmingtasksifIfeelitenablestheteamtodotheirjobbetter.Ihavelearnedtohandleinterruptionsbetter,becausetheTechLeadisapointofcoordination.IamconsciousofwhatIwantandtheprerequisitesformakingithappen.

Findyourpoweranimal.WhenIamstressedbytoomuchmulti-tasking,Isiftthroughtechnicalissuestofindsomethingsmallandrelativelyeasytodo.Idropeverythingforacoupleofhoursandfixit.Shippingcodethatfixessomething,howeversmall,quicklyputsmeinabettermood.

Editor’snote:Apoweranimalisashamanicconcept:itisaspiritthatempowersandprotectsapersonfromharm.

Marten’skeyquestion:Whatprinciplesandbeliefsdoyouhavearoundorganisingandplanningsoftwaredevelopment?

Ibelieveinself-organisation;withinmyteam,obviously,butideallyinotherpartsoftheorganisationthatworkwithdevelopmenttoo.I’mafirmbelieverinrelativeestimation,

Page 88: Talking with Tech Leads_ From N - Patrick Kua.pdf

butpreferablynotintermsofstorypoints.Istriveforanopendiscussionwheretheaffectedpeople,regardlessoforganisationalaffiliation,reachanagreementonthetopthreetofivepriorities.

Peoplethenself-organisetoworkthroughthatlist,breakingitemsdownintosmallertasksifnecessary.Theteamprototypes,tests,andreleasesasnecessary.Iprefernottoworkwithcalendardeadlinesorfixed-releasewindows.

Ithinkthebiggestchallengeisfindingtheinitialopportunitytoprovethismethodofworkingissuccessful.

Marten’ssecondkeyquestion:Howdoyouworkwiththosepeopleorthosepartsoftheorganisationthatdon’tunderstandprogramming?

MyapproachdependsbothonthetypeoforganisationandwhatkindofmandateandautonomyIhave.Iinviteotherpartsoftheorganisationtotheplanningandfollow-upprocess.Involvingthemintheprocessdemonstrateshowpointlessitistoestimatethenumberofhoursortosetdatesanditshowsthattimeisbetterspentdevelopingandfindingoutwhatrequirementsreallyneedaddressing.

Marten’sbackgroundstory

MartenisaSwedishsoftwaredeveloperandhasworkedinbackend,datastoreandinfrastructureverticalsforthepast14years.Previously,heplayedtheTechLeadroleforoneofSweden’slargestwebsitesforateamof12.HefindshiscurrentTechLeadroleforasmallerteamrequiresmuchmorehands-onwork.

Page 89: Talking with Tech Leads_ From N - Patrick Kua.pdf

ManageTechDebt–MarkCrossfieldWhatshouldaTechLeadfocusonandwhy?

Design!AsaTechLeadthemostworryingaspectofdevelopmentistechnicaldebt,andtheintroductionofmessycodeandcoupling,whichpotentiallyslowstheteamdown.Ireviewtheteam’sdesigndecisions;myinputistoprovidecontinuityandadifferentperspective.Ensuringthewholeteamisgoinginthesamedirectionandhasthesameunderstandingofthecodebaserequiresknowledgeofthehistoricalcontext.Anappreciationofthefinerpointsofthecrafthelps,suchasknowingtheappropriatetimestointroducegeneralisationandabstraction.

Iwoulddescribemyprinciplesasleanandresponsible.Ibelievedevelopersshouldownresponsibilityoverthewholeprocess:fromcapturingrequirementsthroughtodeliveryandassurancethatafeaturecontinuestoworkinproduction.Idon’tbelieveinseparatingoutdeliverydisciplines;theyareintrinsicallyentwinedandpeopleshouldcontributewherevertheycan.Everydeveloperneedstoconsidertheimpactofeachactionorinactiontheymake.ATechLeadmustensurethatvalueisdeliveredandIfindmyselfensuringthatateamdeliveringachangeisalsodeliveringvalue,ratherthanexploringitsowninterests.

WhathasbeenyourbiggestchallengeasaTechLead?

Istruggletoidentifyonechallengegreaterthantherest.Ithinkmybiggestchallengeiscollaborativedesign.Withalargecodebaseitisimportantfortheteamtoconsidertheimpactofthedecisionsthatitmakes,andthatthesedecisionsarenotmadeinisolation.Ihavefoundthatmostpeopletendtoputoffdesignorleaveittosomeoneelse.

Notwantingtodictatedesigndecisions,feelingoptimisticandnothavingahugeamountofexperienceintechnicalleadership,Igavetheteamquitealotoffreedomandautonomyinthisarea.Whilethisallowedtheteamtoscaleupquitequickly,wefelttheknock-oneffectsaswewereslowedbythefragilenatureofmanypartsofthecode.Ihavefoundexternaldevelopmentcoacheshelpful,andIamslowlyfindingconceptualtoolsthatcanbeusedtohelpfindbettersolutionssuchasHexagonalArchitectureandConnascencealongwithcollaborativedrawingandwhiteboardsessionstoensureeveryoneisonthesamepage.Delegatingsometechnicalresponsibilityhelpstoo,asitallowsmetoquicklycommunicateadesignissuetoonepersonandhavethemprovidecontinuitywithinthesubteam.

Anytime-managementtips?

Triageisanimportanttactic.Inalargeteamitisimportanttouseyourtimeinthemostefficientway.Whensomeoneneedstotalk,Itrytofindafewthingsoutbeforecommitting:whatisittheywishtotalkabout?whoelseneedstobeinvolved?Isthepersonblockedbywaitingforme,andhowlongwillittake?WhatItrytoestablishis

Page 90: Talking with Tech Leads_ From N - Patrick Kua.pdf

whatwouldbetheimpactifIdelayedorwerenoteveninvolved.IfIamunderpressureIaskpeopletoapproachmeinafewminutesorafewhours.IfIamprioritisingsomethingelse,Itrytokeepthelistofpeoplewhoarewaitingforme,toensurethattheconversationisn’tforgottenabout.IuseTeuxDeux,butamconsideringamovetoTrello.Ihaveaterribleshort-termmemorywhencontext-switchingalot,andfinditmuchlessstressfulifIcanrelyontechnologytoremindmewhoIneedtohaveconversationswith.Itisimportanttokeeptrackofunresolvedandimpendingissues,becausetoooftentheyfallthroughthecracks-especiallywhendeliveryschedulesaretight.WhenIamnotdiscussingachange,ItrytoensurethatwhatIspendmytimeonisalignedtoagoal.Thegoalmaybeimprovingstability,reducingcomplexity,spreadingknowledge,orimprovingvisibility.Itiseasytobecomeabsorbedbywhatyouaredoingandstrayfromprovidingvaluetotheteam.Iamparticularlypronetobeingfascinatedbyaproblem,whichisaluxurythataTechLeaddoesnothave;theiravailabilityisoftenrequiredurgently,sodeepdivesshouldbetheexceptionratherthantherule.

Thebestpieceoftime-managementadviceIwasgivenbyamentoristoworkoutwhichissueswillhavethemostimpact,andsowhichwouldprovidethemostvaluebybeingresolved.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

IwouldnotsayIhavefoundabalanceyet!IwouldratherbewritingmorecodethanIdo,andIthinkitwouldbeeasiertoimprovedesignbydoingso,butmyotherresponsibilitiestakeupquitealotoftime.

Thatsaid,IthinkthemostimportantthingaTechLeadcandotobalancetheirtimeistopairwithanotherteammembertoexploreaproblemandfindasolution.Bypairing,youcanminimisetheimpactofduckingoutasandwhenrequired.

Thekeyistotrynottodotoomuch;takingonresponsibilitiesinevitablytakesyouawayfromthecodebasewhen,realistically,youareprobablyamongthemostqualifiedtoworkonit.

Wherepossibledelegatewhatevernon-codingtasksyoucan,butestablishboundariesandsupervision.Ifoundsituationalleadershiptheoryuseful,andwheneverIdelegateIconsidertheperson’swillandability.Thishelpsdecidehowcloselyyouneedtosupervisetheirwork.

Mark’skeyquestion:“WhatkeytechnicalprincipalsareessentialknowledgeforTechLeads?”

Ibelieveitisimportanttounderstandthedifferencebetweenlong-termandshort-termdecisions.Forexample,externalcommunicationprotocolsanddatastructuressuchasJSON,RESTfulapproaches,HTTP,orSOAParemoreimportantinthelongrunthaninternalapplicationchoicessuchaslanguagechoice,TDD,orpersistenceframework.

IrecommendTechLeadsunderstandlayeredarchitecture,theprinciplesofhexagonalarchitecture,domain-drivendesign,andtheideasaroundConnascenceaswellastechniquesaroundrefactoringtoremoveit.

Page 91: Talking with Tech Leads_ From N - Patrick Kua.pdf

Mark’sbackgroundstory

MarkistheTechnicalArchitectforTraderMedia(AutoTrader)andhasworkedasadeveloperforeightyears.HehasworkedasaTechLeadforthelastfouryearscurrentlywithateamof16developersonalong-termproject.

Hisinterestsincludesystemdesign,datavisualisation,monitoringandresilience,andsoftwarequality,althoughheisparticularlyinterestedincodecraftsmanshipandtheacademicaspectsoflanguageandcomputing.

Page 92: Talking with Tech Leads_ From N - Patrick Kua.pdf

AnArchitectToo?–TomiVanekWhatshouldaTechLeadfocusonandwhy?

TherearetwodimensionstotheTechLead’sresponsibility:technologyandpeople.

Intermsoftechnology,TechLeadsfacecomplexchallengesthatrequireintuitiontorecognisetherootcause;theycannotbedistractedbysymptoms.ThearchitectpartoftheTechLeadspecifiestheshapes,patterns,innerstructure,logicofthesolution,andholdsthemap.TheTechLeadbuildsthismapthroughdesigndiscussionswiththeteamandthenimplementsitwiththeteam.Thearchitectureshouldbespecifiedjustintime,soithasminimumfixedshapes.TheTechLeadensuresthearchitectureevolvesthroughoutthelifetimeofthesystem.Ithinkofarchitectureaslikeahumanbody:itgrowsquicklyatthebeginning,inadultageitiskeptingoodshape,andknowswhentogivewaytothenextgeneration.

Intermsofpeople:TechLeadshavetolistenandobservetheteamtogatherthecriticalmassofinformationtomaketherightdecisions.Theyalsoneedtounderstandtheculture,historicalbackground,andthepeoplewhodevelopedandmaintainthesoftwaresystem.Asystemneedstobeadaptedtothecultureitlivesin,particularlyconsideringthosewhowillcontinuetodevelopandmaintainit.TheTechLeadmustalsoadjustthedevelopmentprocesstotheteamthatbuildsthesoftware.Theymustappreciateeachpersonhastheirowndreams,sorrows,anduniquepersonality.Inashortspaceoftime,theTechLeadmustfindtherightroleforeachpersonintheteamandbringaharmonisedrhythmtotheteam.

WhathasbeenyourbiggestchallengeasaTechLead?

Icoachedanarchitectureteamforaclient.Theteamworkedwithacomplexarchitecture,whichparalyseddevelopment.Itmeantthatthedevelopmentteamcouldn’tdelivernewfeaturesorapplications.Theteamknewthearchitecturewaspainful,butitwastheirbaby;somefeltitscomplexitydemonstratedtheirtechnicalexpertise;forothers,itrepresentedjobsecurity.

Ifeltitwasimportanttoagreesomebasicvaluestorolloutanewarchitecture.Wesettledonsimplicity.Wedevelopedittogetherwiththeclient’sarchitectureteamsotheyhadsomeemotionalinvestmentinitandfeltownershipforthenewsystem.

Acorefeatureoftheoldarchitecturehadbeenlockingtopreventconcurrenteditingofthesamedata.Thiswastypicalold-school,object-orientedprogramming.Thefeaturerequiredabout50classes,deepinheritancechains,andwasbloatedwithfunctionality,justincase.

Isuggestedtotheteamthatwefocusonfeaturesusedbyapplicationsinproduction.Thearchitectsagreedandstartedtoremoveunusedfunctionality,preservingonlythetwoorthreeclassesnecessary.Newservicesdidnotrequireanyfurtherexplanation,astheywereclearandsimple.

Page 93: Talking with Tech Leads_ From N - Patrick Kua.pdf

Anytime-managementtips?

Managingtimeishard;Iamconstantlylookingforbetterwaystodoit.

Mysimplestmethodistoworkwithaprioritisedbacklogoftasksofthesamegranularity.IthenvisualisethesystemonaboardfortheteamandexternalstakeholderstodemonstratewhatIamworkingon.Avisualsenseoftaskscompleted,inprogress,orwaitingmakesiteasierfortheteamandstakeholderstoseewhatIamworkingon.

Isetasidesometimeinmydaytoreadtechnologynewsontheinternet.Ifindtimetoreadonmycommutetoandfromtheoffice.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

IapproachmyTechLeadtasksmuchasIalwaysdidasadeveloper.Lookingatthedevelopmentprocessislikefindinganalgorithm.Understandingcommunicationproblemsbetweenanalystswritingfunctionalspecificationsanddevelopersislikedebugging.However,whenaTechLeadmovesawayfromcoding,theycannotidentifyandfixcertainissues.

Isettimeasidetowritecode.Ialsoaskmyselfwhetheraparticulartaskreallyrequiresmyattention.Itrytoworkonthesetogetherwithotherteammemberssothesolutionlastsbeyondmyowninfluenceandtheteamevolvesandrefinesthesolutionovertime.

Tomi’skeyquestion:Wheredoyouseeyourselffiveyearsfromnow?

Ireallydonotknow?that’stheexcitingthingaboutwhatwedo!

Tomi’sbackgroundstory

Tomihasworkedwithsoftwareformorethan25yearsandwithavarietyofteamsforthepast15years.Hehasworkedineverythingfromsoftwareusedinnuclearpowerplantstomodernwebapplicationsandportals.

Hiscurrentinterestisdevelopinga“justintime”approachtosoftwarearchitectureandusingagilemethodstoprogramatateamlevel.

Page 94: Talking with Tech Leads_ From N - Patrick Kua.pdf

ChampionQuality–PeterMoranWhatshouldaTechLeadfocusonandwhy?

Ifocusmostofmythoughtsontwomainconcerns:

Howtodevelopgoodsoftwaredesignprinciplesandpracticesinpeople;Howtogetthebestoutoftechnologistsworkingtogetherinteams.

Whenyouhavepeoplewhoknowtheirtechnologywellandhowtoapplyitsensibly,andtheyaremotivatedandcancollaboratewiththosearoundthem,youhavethebasisforhigh-performingsoftwaredelivery.Thesearelearnedskillsthatcandevelopintherightenvironmentwiththerightleadership;IbelieveagoodTechLeaderneedstoworkhardtofosterthemandhelpindividualsandteamsgrowintheircapabilitiesintheseareas.

WhathasbeenyourbiggestchallengeasaTechLead?

Forme,thiswasleadingateamof25talentedpeopletodeliveranew,high-profilewebsiteunderheavytimepressures.Thetechnicalchallengeswerekeepingbothqualityandthroughputhighwithoutsacrificingthegooddesignprinciplesthatallowasystemtobeextended,maintainedandtoperformoveralongperiodoftime.Keepingtechnicaldebtlowwhileunderpressureisextremelyhard.Thepeopleaspectsweretokeeptalentedtechnologists(developers,testers,opsadministrators)motivatedtosticktotheirprinciplesandseethebiggergoal,whilefeatureswerestackingupandcomplexitygrew.Balancingthesesometimescompetingobjectiveswasextremelychallenging.Onekeytohandlingthechallenges(andnotsomethingIalwaysdowell)wascommunication.Forexample:

KeeppeopleinformedSeekconstantfeedbackTaketimetodiscusstechnicalissueswithasmanyteammembersaspossibleMinimisesurprisesMakesureeveryoneontheteamunderstandstheobjectivesofwhatyouaretryingtoachieveGiveeveryoneavoice;andBepreparedtofightforwhattheteamtellsyou.

Anytime-managementtips?

IrelyonkeepingasmalllistofthingstodoandmakingsureIcompletethemeachday.Ialsofindithelpstokeepmyemailinboxempty(Iconsidernounreademailsasbeingempty).I’vefoundthatIneededtolearnwhentobackoutofthings.Itisoktogetinvolvedinarangeoftechnicalissues,businessdiscussions,orpeoplemanagementtasks,butIneedtobeawareofwhentoletgoandtrustotherstotakethemtocompletion.

Page 95: Talking with Tech Leads_ From N - Patrick Kua.pdf

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

IrealisethatIwillnotgettocodeasoftenasIwant,butIputtimeasidetomakesureIdo.Iwillpickupsmallfeaturesorissuesthatareusefulbutnottime-dependentandIspendacoupleofhourseachweekgettingthemdone.Itrytopairatleastonceaweek;IcangetinvolvedinastoryknowingthatifIamdivertedthereissomeoneelsetorunwithit.Thisisagreatwayofkeepingupwiththecodebase,andlearningnewpracticesandtechniques.Ialsousecodeastherapy;wheneverIhaveawindowofopportunity,I’llcode,becauseI’llfeelbetterforit,andIamconfidentIcanmakethecodebasebetterinsomesmallway.

Peter’skeyquestion:Howdoyoukeepyourtechnicalpeoplemotivated?

DanPink,authorofDrivehasreallygoodinsightsonthis,andI’vefollowedhisapproachclosely.Hedoesn’tcoveroneimportantaspect,though:thepersonalconnectionsthatmakegroupsofpeopleworkeffectivelytogether.

Peter’sbackgroundstory

PeteristheDevelopmentManageratHooroo.com.Hisroleincludesleadingthedeliveryteaminallaspects-technical,process,andpeople.HeactedastheTechLeadroleonabout15differentteamsandprojectsbeforethat.

Peterisasoftwaredeveloperatheartandtakesgreatcareinsharpeninghistechnicalskills,asrelevantskillshelphimmoreeffectivelyleadteams.Hisinterestscontinueinwell-designedobject-orientedsoftwareanddevelopingskilled,motivatedteamsthatdelivereffectively.

Page 96: Talking with Tech Leads_ From N - Patrick Kua.pdf

Don’tForgetCross-FunctionalRequirements–ChristyAllmonWhatshouldaTechLeadfocusonandwhy?

MyroleasTechLeadchangesdependingontheteamsize,itsday-to-dayactivities,myownday-to-dayactivities,andwhatstageofthedevelopmentcycleweareat.Ingeneral,IthinkmycurrentroleisSMEfortheApplication(everyone–Analysts,Developers,ScrumMaster,Testers,IntegrationTeams,andCustomers–comestomewithquestionsandproblems),aswellaspersonwhodecidestheprioritiesandtechnical/applicationdirectiontobetaken.

Theprinciplesthatconcernmethemostare:-Maintainability:thecodehastobemaintainable!Ithinksomedevelopersandcontractorsdon’tconsiderthefactthatothershavetocomeinafterthemandneedtobeabletomaintainandtroubleshootthecode.Alotoftoolsthatarenowavailablecanhelpwithmeasuringthis,buthavingbeenonlegacysystemsaswellasdevelopmentefforts,myexperiencehasbeenthatanapplicationisonlyasgoodasitsmaintainability.

Hardcoding:doeverythingyoucantoavoidhardcoding.Ifthereisanywayatalltoavoidhardcodingavaluethat,inmyexperience,willchange,doit!Ifitisclient-based(IworkonJavaSwingfatclient),putitinapropertyorotherkindoffile.Ifitisserver-based(backendoftheapplication),putitinadatabaseorprovidesomekindofclient-triggeredevent.Evenifyouthinkitwillneverchange,itinevitablywill.Performance:Ioftenhavetomakesuggestionsandverifythatperformancehasbeenconsideredinthelogicofthecode.Forexample,ifyouareloadingorprocessingdatamultipletimes,bemindfulofdoingthestaticstuffonlyonce.Alsoconsideron-demandorjust-in-timeprocessingwhereapplicable.Stability:weighinguptheriskofaparticularchangeagainsttheimpactitmayhaveonstability.Mycontractordevelopersoftenhavegoodsuggestionsforbringinginnewapproachesortools,butIhavetoweighupthebenefitsagainsttherisks.

WhathasbeenyourbiggestchallengeasaTechLead?

IwouldhavetosaythatthesituationIamcurrentlyinismymostchallengingyet.MytypicaldayinvolvessomanymeetingsorteamdiscussionsthatIaminaconstantfluxofhavingtocontextswitchandIfinditdifficulttocompleteanyparticulartask.Ontopofthat,itisrarethatIgetachancetocode,whichisthepartofmyjobthatIreallyenjoyandhonestlywhatIamreallygoodat.Iamtryingtodomoreandmoreteachingasthingsastheycomeupsothatmyteamcanbemoreself-sufficientandhelpeachotherinsteadofrelyingonme.IamworkingondelegatingmoresothatIhavetimefortheimportantthingsandtogetmebacktoastatewhereIcancontributewithdoingsomeofthecoding.Inthepast,IoftendidmuchofwhatIliketocall“heavylifting”coding:thecomplexorcriticalpiecesoftheapplicationthatrequiredmyexpertiseandskills.Ihaven’tbeenable

Page 97: Talking with Tech Leads_ From N - Patrick Kua.pdf

todothatforquiteafewmonthsduetotheenvironmentwearecurrentlyin,butIhopetogetbacktothatsoon.Anytime-managementtips?

Ihavetoprioritiseinordertomanagethedemandsonmytime;IhavetosaynotosomethingsordelegatewhatIcan.Ialsoknowthattherearetimesinareleasecyclethatwillrequireovertime.Itiscyclicalandpartofthejobandifyouunderstandthatitwillalleventuallycomeoutinthewash;youcanmanageit.MyfamilyhascometolearnthisimportantconceptandknowsthattherewillbetimeswhenIhavetoworkabitmorethanothers.Butagain,tocounteractthesebusytimes,therearealsolulls.DuringtheselullsIcanre-energisemyselfandcatch-uponsomeofthelesscriticalthingsinpreparationforthenextbusycycle.Learningthisandunderstandingithashelpedmetodealwithitovertheyears.Ihavehadtomentormanyyoungprofessionalsonthisverysubjectsotheycanlearnhowtodealwiththestressesandtimemanagementduringtheupswings.Itisrewardingtoseethemgetthroughthehigh-efforttimesandseethemrelaxduringthelullstogetreadyforthenextbigpush.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

AsImentionedabove,mycurrentrolehasresultedinlimitedcodewritinganditisbeendifficulttodealwithpersonally.IamworkingondoingallIcantogetbacktoitthough.Partofthisstrugglehasbeenbringingmyteamtoaplacewheretheyhavemoreknowledgeabouttheapplicationandmoreconfidenceintheirowndecision-makingabilities.Ithastobeatrade-offthatIdrivethroughandpartofitismelettinggoofsomeofthatcontroltothem–myconfidenceinthemtodowhat’sexpected.Inthatrespect,Iamtryingtotakeopportunitiestoteachaswellastodelegate.Itisalongprocessandonethatwon’timmediatelyresultinmegettingbacktowritingcode–buthopefullyinthelongrun,itwillbenefitmeaswellastheteam.

Christy’skeyquestion:WhatdoyouthinkareyourgreatestcontributionstotheteamasaTechLead?

Mygreatestcontributionstothisteamaremyapplicationexpertise(Ijustknowwhereallthebonesareburied)andmygeneraldevelopmentandproblemresolutionknow-how!

IhavebeenaskedtoprovideateachingsessiontomyteamonhowIgoaboutresolvingissuesandspecificallygearedtowardsacoupleofissuesthatcameuprecently.Iwouldliketothinkthatsomeofmyexpertiseonthissubjectisknowinghowtogoaboutgettingtothebottomofanissueandnottiedspecificallytothisapplication.AsImentionedbefore,Iamreallygoodatthispartofthejob–whetheritislearnedornatural–probablyalittlebitofboth.OneofthereasonsIwasaskedtodothiswasthatittookme30minutestosolveanissuethatnumerousmembersoftheteamhadworkedonfortwowholedayswithoutresolving.HowwasitthatIcouldfindandfixtheissueinsuchashortamountoftime?Especiallynothavingbeeninthecodeforalongwhile?IputtogetherageneraldocumentoutliningmythoughtprocessandthequestionsIaskmyselfwhenfacedwithanissueliketheonewehadandthensharedthatwiththeteam.

Theapplicationexpertisejustcomeswithtimeinthecodeandtakingthetimeandefforttoapplyittomemory.However,Ialsosuspectthatmanydevelopersdon’tbothertogetto

Page 98: Talking with Tech Leads_ From N - Patrick Kua.pdf

thecruxofaproblem,functionalarea,orapplicationandsimplyglossoverthesurface,focusingon“what”itis.IthinkthefactthatIoftenwanttoknowtherootcauseofwhyaproblemhasoccurredhashelpedmebecomeaTechLead,asIammoreabletoanswerthedifficultquestionsofwhetherwecandosomethingorwhatislikelytohappenifwedoit.Ifyoudon’tlookat“why”aswellas“what”,youcannotreallygettothatlevelofunderstanding.Thissameapproachisalsoapplicabletotheproblem-solvingImentionedbeforeandpartofwhatIshared.

Christy’sbackgroundstory

Christy’sskillsinanalysis,code,andresolvingproblemsmadeheraperfectfitfortheTechLeadrole,whichshehasplayedwithFortune500companiesforthepast27years.

Page 99: Talking with Tech Leads_ From N - Patrick Kua.pdf

PrioritisingTechTasks–ChrisCloseWhatshouldaTechLeadfocusonandwhy?

ThemostimportantthingtoconsiderinaTechLeadroleiswhenitmakesthemostbusinessandtechnicalsensetoperformarchitecturalmodifications/refactoring.Iftheseimportanttasksaren’tdoneattherighttime,thesolutionwillspiralintoamess.Butifyoudotoomuchofit,thebusinessmightnot“see”anyactualbenefits.

WhathasbeenyourbiggestchallengeasaTechLead?

Ihadatoughtimeattemptingtoscheduleintechtasksintoasprintwiththebusiness.Aftertryingtoresolvethesituationmyselfwiththeproductowner,Ihadtogetmanagershigheruptoagreethattheworkwasbeneficialtotheendproductandthenhadtheworkscheduledinoverseveralsprints/iterations.

Anytime-managementtips?

Ensureyouhaveagoodteamofpeoplethatyoucanhandoverworktasksto.Thismeansthatyoucanfeelconfidentinusingyourtimeforhigh-prioritytasks/issuesrelatingtoinvestigationsoranalysis.Ofcourse,youstillneedtocheckinwiththeteamonhowthesetasksareprogressingandprovideassistancewherenecessary,butitdoesn’trequirelarge,continuousblocksoftime.

Anothergoodideaistokeepallworkinprogressvisibletoyouandtheteam.Thiswayanythingimportantwillbetalkedaboutindailystand-upmeetings.Youarethenalsoinabetterpositiontoleveragetheirtimelateronastheyareawareoftheprogressonthesetasks.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Thiscanbedifficultduetointerruptionstoaddressissuesthatcropup.Thiscanbesolvedbypairingforcode-writing,sothatyoucandealwithissuesorshortconversationsforafewminutesandreturntothecodewhilestillmaintainingmomentuminthecodingtaskathand.

Youneedtohaveabalanceandstillkeepyourhandsinthecodesothatyoucanmakegooddecisionslateronbasedontheinfrastructureofthecodethathasbeencreated.

Chris’skeyquestion:Howdoyoufeelconfidentthattheworkscheduledisreadytobedonebydevelopersinyourteam?

Whileitmaynotmakesenseintermsofefficiencytoundertakealargeamountofup-fronttechnicalanalysisbeforeastoryisstarted(becauseastorymayneverbestarted),itisimportantthatataskcanbefullyunderstoodbyanydeveloperthatisabouttostartworkonit.

Page 100: Talking with Tech Leads_ From N - Patrick Kua.pdf

Thereareacoupleofstrategiestoachievethis:

Ensuretheteamisawareofthebreadthanddepthofataskwhileitisbeingplanned.Anyassumptionsforthestoriesshouldbeincludedinthedetailofthestory,butcanbeflexible,basedontechnicalcommonsenseandbusinessneeds-allpartiesbeinginagreement,ofcourse.Whenataskisstarted,holdawhiteboardsessionwheretheteambrainstormsdifferentideasandsolutionssothateveryoneknowshowtomoveforwardwiththework.

Chris’sbackgroundstory

Chrishasbeenworkinginsoftwaredevelopmentfor12yearsandfirstactedasaTechLeadin2007.HemovedintohiscurrentTechLeadroleinthepastyearandmostofhisworkiswith.NetwebtechnologiessuchasMVC4.

Page 101: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 102: Talking with Tech Leads_ From N - Patrick Kua.pdf

BridgingtheBusinesswithTech

WhenadeveloperbecomesaTechLead,theirrelationshipwithotherpartsofthebusinessbecomesstronger.Theresponsesinthissectionoutlinewhythoserelationshipsareimportantanddescribehowthenatureoftherelationshipchanges.

BuildingTrustAsaTechLead,youspendmoretimewithnon-technicalstakeholdersandthisisagoodopportunitytobuildtrust.Non-technicalstakeholdersaresuspiciousofwheretimegoes,becausesoftwareinvolvessomuchthatisintangible.TheTechLeadmustconstantlymanagetheperceptionthattoomuchtimeisbeingspentonactivitiesthatmaynothaveanyobviousvisiblereturnoninvestment.Ihavefoundthatcompanieswithrootsinamoretraditionalretailbackgroundaremoresusceptibletothisperception.

TheTechofaTechLeadhighlightstheneedtospendtimeworkingontechnicaltasksandhowgainingthetrustofnon-technicalpeoplegivesthedevelopmentteammorefreedomtodowhattheythinknecessary.Oneofthebestwaysofbuildingtrustisbestsummarisedbythefollowingquote:

Nurturingtrustwithnon-technicalstakeholderstakestime.TechLeadsfindawaytobalancetimebetweentheteamandthosethatsitoutsidetheteam.Findingthisbalanceisastruggle;someofthoseintervieweddiscussedhoweasyitwastoendupintoomuchtechnicaldetail.

FindingTimeforTechnologyATechLeadmanagestechnicalriskandchampionstheneedfortimeinvestedinquality,butthiscanonlybedonewithtrustfromotherparties.Findingenoughtimeisaconstantchallenge.Whentheteamspendstoomuchtimeonsoftwarequalitywithoutdeliveringvalue,youriskbreakingthetrustyouhavebuilt.

Page 103: Talking with Tech Leads_ From N - Patrick Kua.pdf

Fortunately,spendingtimeonqualityissueshasadirectpositiveimpactonend-usersorthebusiness,bymakingtheuserexperiencebetterandfaster,forexample,orresultinginfewerrequestsforhelpandassistance.

Spendingtoolittletimeonsoftwarequalityleadstointernalqualityissuesandquicklyturnsintovisibleexternalqualityissues.ManagingtheTechnicalDebtisakeyskillfortheTechLead.

Everydeveloperhastheirownperceptionofacceptablequality.Somewanttoperfecttheircode,spendingsignificantlymoretimeoverit;otherstakeahack-and-slashapproachthatfavoursfastfeedbackbutresultsinanunmanageablemess.TheTechLeadisultimatelyaccountableandmustmonitorwhereandwhentotakeeachapproachbasedonvaluebeingdelivered.

MakingTechnologySolutionsEasytoUnderstandDevelopersarestereotypedashavingpoorcommunicationskills.Youprobablyrecognisethecharacteristics:-theygoonendlesslyabouttechnicaldetail,notpausingtoaskquestionsoftheotherpersonorevenensuringtheyareonthesamepage;theyassumethattheotherpartiesknowallthetermstheyareusingandthebroadercontext.

ATechLeadhastodeveloptheessentialskillofhelpingnon-technicalpeopleunderstandandrelatetothetechnicalissueswhennecessary.Theydrawuponthecommunicationtoolsofsimplediagrams,collaborativewhiteboardsessions,metaphorsandsimple,clearlanguagewithminimal(orbetteryet,non-existent)useofacronymsandtechnicalterms.Theyputthemselvesintotheshoesofnon-technicalpeopleandanticipatewhenatechnicaldetailmightbeimportant,introducingtechnicalterminologyinanon-threateningmannerthatdoesnotleavetheotherpersonfeelingstupid.Theyeducatewithcarebecausetheyrecognisethatsomepeopledonotwant,orneed,toknowacertainleveloftechnicaldetail.

TheTechLeadisconstantlyawarethatnotallproblemscan,orshouldbesolvedbytechnicalsolutions.TheTechLeadbuildstrustwithnon-technicalpeople.OnlyaftergainingtrustcanaTechLeaddescribethedownfallsofaparticularsolutionmoreopenly,describingwhyonetechnicalsolutionproposedmayfailtosolvetheproblem.Theyalsoworktopassonthenecessarycommunicationskillstoothermembersofthetechnicalteamsothebusinessdoesnotrelyonasingleperson.Theyprovidefeedbacktodeveloperswhentheywitnessanon-technicalpersonbeingoverwhelmedbytechnicaljargonandencouragetheuseofwhiteboardstovisualiseandfinddifferencesinunderstandingbetweentechnicalandnon-technicalmembers.

InfluencingPlanningOrganisationslooktotheTechLeadforinputduringbudgetingandplanningcycles.Zeroinvolvementfromtheteamoftenleadstoover-commitmentandtechnicalrisksbeingoverlooked.AstrongrelationshipbuiltontrustcreatesopportunityfortheTechLeadtoinfluencetheplanningprocess.

Duringthisplanningprocess,theTechLeadspotsbusinessopportunitiestousetechnologybasedonloweffort,ortobringvisibilitytohighareasoftechnicalrisk.The

Page 104: Talking with Tech Leads_ From N - Patrick Kua.pdf

TechLeadiscarefulnottoover-commit,astheyareawaretheydonotknoweverything;committingtheteamwithoutitsinvolvementcreatesfuturetensioniftheplangoeswrong.

Underpromiseandoverdeliver-TomPeters,from“InSearchofExcellence”

TheTechLead’sinfluenceovertheplanningprocessispotentiallygreat,butyoumustbewareofspendingtoomuchtimeonit.InvolvementinplanningprocesseseatsintotimeaTechLeadspendswiththeteamandthecodebase.ThemoretimeaTechLeadspendsawayfromtheteamandthecode,themorelikelytheytoowillunderestimatecomplexityorunknowinglytakeonadditionalrisk.

InvolvementintheplanningprocessgivestheTechLeadgreaterinsightintoupcomingareas.Knowledgeaboutplansforthefuturemakesforbetterdecision-making,particularlywhenarbitratingbetweenwhat-ifscenariosinthecodebase.

ChampioningBusinessNeedsAsyouspendmoretimeclosertothebusiness,theTechLeadappreciateswhatistrulyimportanttothebusiness.TheTechLeadusesthisknowledgetomaketheteammoreawareoftheiroperatingcontext.TheTechLeadclarifiesthecurrentgoalandremindstheteamhowtheirsoftwaremovesthebusinesstowardsthegoal.

Aclearerunderstandingoftherealgoalhelpsdevelopersmakebetterchoices.Forexample,onedesignmayrequiremoremanualprocessingbyend-users,butthesoftwarefunctionmaycaterforanedgecaseandthereturnonthetimeinvestedbythedevelopmentteammaynotbehighenoughandcouldmakechangingbusinessprocessesdifficultinthefuture.

Incontrast,ifanerrorinthesoftwarethreatensessentialcashflowforthebusiness,regardlessofhowrare,thedevelopmentteammightspendadditionaltimebuildingaqualitydesign.

Technicalchoicesrarelyexistoutsideofabusinesscontextwheretimeisconstantlytradedoffwiththehopesofbetterreturns.TheTechLeadbuildsawarenessintheteamthatgoesbeyondthekeyboardandthesystemsbeingbuilt.

Page 105: Talking with Tech Leads_ From N - Patrick Kua.pdf

TheBigPicture–LucaGrullaWhatshouldaTechLeadfocusonandwhy?

ATechLeadhastoclearlygraspthebigpictureoftheproject.Theyneedtounderstandwhattheexpectedbusinessgoalisandhelpateamtotransformthatideaintoasystem.

Toachievethegoaltheyhavetofindthedelicatebalancebetweenadeliverypacethatsatisfiesbusinessneedsandmaintainanoveralltechnicalqualitythatenableslong-termreturns.

WhathasbeenyourbiggestchallengeasaTechLead?

Ifindthebiggestchallengeisinco-ordinatingandmediatingbusinessneedswithtechnicalneeds.

Afewyearsago,Ijoinedaprojectstrugglingtomeetafixeddeadline.Thedeadlinewasstrictduetothespecificnatureofthebusinessandmissingitwouldhavesignificantlyaffectedtheproject’sreturnoninvestment.Isawproblemsatdifferentlevels:

AproductownerthatoftenchangedtheirmindAteamconstantlyinterruptedandsidetrackedwithextrafeaturesAteamstrugglingwithmotivationtomeetthedeadline

Inthiscontext,Ifocusedonseveralareas:

Shakinguptheteamtoclarifytheseriousimplicationsofthedeadlineandensureweputinextraeffort.Workingwithdeveloperstoidentifythepartsofthesystemcausingthemostpain,andplanninghowtoimproveorrewritethemwhilstdeliveringtheplannedfeatures.Monitoringtheextrafeaturestoavoidunnecessaryscope,andworkingcloselywiththebusinessownertoidentifythosefeaturesthataddedbusinessvalueandwereessentialtodeadline.

Anytime-managementtips?

AlthoughTechLeadtimeisprecious,itisimportanttobeavailabletoanyonewhoneedstotalk.ItrytocreateanenvironmentwherepeopleknowIamtheretohelp,bothfromabusinessandfromatechnicalperspective.Iencouragepeopletocomeandtalkfreelytome.IfIcannotrespondimmediately,Itrytogetbacktothemassoonaspossible.

Itrytominimisetimeinformalmeetings.AlthoughIamsentmanymeetinginvitations,Ineverdeclinethem.IfIdonotfeelIwouldaddmuchvaluetothemeeting,Iasktheorganiseraboutthegoalofthemeetingandtheirexpectationsofme.Iftheyconfirmmysuspicion,orIamnotinterestedinthecontent,thenIaskifitisokaytoskipit.

Insteadofformalmeetings,Ipreferanenvironmentwhereothersfeelcomfortabletalkingtomecasually.Handlingdecisionsinalessformalwayisoftenmoretimeeffective.

Page 106: Talking with Tech Leads_ From N - Patrick Kua.pdf

Obviously,thisisnotalwayspossiblebecausepeopleindifferentroleshavedifferentexpectations,inwhichcaseItrytoplanaheadsothatIdon’thavetokeepjumpingintothings.Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Itdependsontheneedsoftheproject;aTechLeadneedstobeslightlylesshands-onsometimes.TechLeadsneedtodevelopa“sixthsense”skillofunderstandingwhatishighprioritygiventhecontext.Sometimesyoufeeltheprojectneedsmoresupportfromabusinessperspective;sometimesyouhavetoappreciatethattheteamiswrestlingwithtechnicalissueswhereyoucanhelpbybeingdirectlyinvolved.Thetrickypartisnotlettingoneofthetwoaspectstake100percentofyourtimefortoolong.Ihavefounditisparticularlyeasytobecomeheavilyinvolvedinthebusinesssideoftheproblemsforacertainamountoftimetolosetrackofthetechnology.

ThereareperiodswhereI’mawareIcan’tcontributemuchtotheoveralltechnicaldeliveryandItrytostayintheloopandfocusonhelpingtheteamconcentrateonouroverallarchitecture.WhenmyfocusasTechLeadisgivinginputtothebusinessside,suchasadviceandtechnicalsupport,Ikeepbrowsingthecodebasetounderstandtheoveralldirection.Italkwiththerestoftheteamaboutthedailyproblemstheyaretryingtosolve.Informalchatstoandfromluncharegreatforthis.Ikeepacloseeyeonthestoryflowonthewalltohaveamentalmapofhowthesystemisgrowing.IfIfeelwearelosingdirection,Itrytoremindtheteamoftheoverallplanandwhattheexpectedbusinessvalueis.Imightdothisfollowingthestand-up,orwithanimpromptugatheringwithallthetechnicalpeopleattheendoftheday.Ifanotherteammemberisstronglyadvocatingachangeofdirection,Imightsitwiththemtounderstandtheirreasoningandtofindoutiftheyhavediscoveredabetterdirectionthantheonecurrentlyplanned.

ItrytosetasidededicatedtimesothatIcancodewithoutinterruptions.Anideal,forme,ishalfaday.SometimesIbooktimeout.IfI’mapproachedwithanon-urgentissuewhileIamcoding,Ioffertoaddressitlaterintheday.Peopleareokaywith,“Canwetalkaboutthislater?”aslongasIofferanalternativetimegetbacktothem.Makesureyouactuallydogetbacktothemwhenyouagreedanddon’tpostponeagainatthelastminuteasyouwillstarttolosetrustwithyourteam.ThisapproachgivesmetheabilitytofocusoncodingwhenIstartpairing,butstillmakesmeavailableforothers’needs.

Luca’skeyquestion:WhatisthemosturgentlessonaTechLeadshouldlearn?

AsTechLead,youwillbepulledinmanydifferentdirections.Youwillbeoccupiedwiththeoverallarchitecture;providinginputtoandsupportingthebusiness;discussingandplanningforthepathtoproduction,andsometimesreshapingtheteambyrollingpeoplein(orout).Withsomanydifferentresponsibilities,youneedtoacceptthatyouwillnotbeabletoinfluenceeverypartofthesystem.Inthisrole,youcanhavethefinalword,butuseitwisely.Ifyouseesomethingyoudonotagreewith,askyourself,“Isitjeopardisingtheoverallsuccessoftheproject?Orisjustamatterofmypersonaltaste?”

Yourroleshouldbetokeepontopoftechnicalissuesthatmightleadtoaprojectfailing.Youmustlearntorecogniseandacceptfeasiblealternativesolutions-notjustyourown,andparticularlyifitisnotwhatyoumightdoifinthesameposition.Workingwiththe

Page 107: Talking with Tech Leads_ From N - Patrick Kua.pdf

teamtodevelopalternativesolutionsengagesthemandcreatesastrongsenseofownership.Doingitallyourselfintroducestheriskofyoubecomingthebottleneckandasinglepointoffailure.

Luca’sbackgroundstory

Lucahasleadaboutsixteamsinhis12yearsworkingwithtechnology.HiscurrentroleisactingasaSeniorSoftwareEngineeratuSwitch.BeforethatLucaspentfouryearsatThoughtWorksasaTechLead.

Page 108: Talking with Tech Leads_ From N - Patrick Kua.pdf

AlignTechnologywithBusiness–RobertAnnettWhatshouldaTechLeadfocusonandwhy?

TheTechLeadkeepstheteamontracktodeliverthebusinessrequirements,whilemakingsurethesearewithinthenon-functionalrequirements.

Itiseasyforadevelopmentteamtolosesightofwhattheiremployeractuallywantsandinsteadfocusontheirowngoals.Forexample,theyworrymoreaboutusingcooltechnologiesorhittinganarbitraryunittestcoveragemetricratherthanwhattheenduseractuallyneeds.

WhathasbeenyourbiggestchallengeasaTechLead?

Mymostchallengingsituationwasonewherethemainenduserwantedtheprojecttofail.ThisismorecommonthanmostITworkersrealise;mostpeopledon’tlikechangeandareplacementITsystemmayendangerthecurrentuser’sjob.Thisoftenleadstousersdeliberatelywithholdinginformationandopposingreasonablefunctionality.

HowdidIhandleit?Iadmit:badly.Developerstendtolookfortechnicalsolutionsandforevery“handgrenade”thrownbytheenduser,Itriedtoworkarounditasatechnicalproblem.Thisleadstohardworkandconstantchange.Ultimatelyitisapoliticalissueandthesolutionisalsopolitical;forexample,Icouldhavetriedtogetbuy-infrommanagementtoimplementthechangeandstopanysabotage.

Anytime-managementtips?

Planandkeepaneyeonthebigpicture.Itiseasytogetboggeddownintheminutiaeofatechnicalissue.Youneedtoknowwhento‘declarevictory’overaproblemandmoveon.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Ifyouhaveresponsibilitiesbeyondwritingcode,theytakepriorityandyouneedtoensureyourcode-writingtasksarenotonthecurrentcriticalpath.Thisistoavoidblockingothers’progressifyoucannotworkonitforawhile.Youalsoneedtomakesureyouaren’ttheonlypersonwhoknowsaparticularbusinessareaortechnologyforthesamereason.Pairingwithjuniormembersoftheteam(onwhatevertheyhappentobeworking)isgood,asispairingwithanyoneonthecriticalpath.

Robert’skeyquestion:“Howdoyoudealwithconflictswithintheteam?”

Thesecanbedifficultforsomeonefromatechnicalbackground.Thekeyistoremainprofessionalandnotbecomeemotional.Avoidsendingemailwhileyouareannoyed.Bedirectandhonest.Staycalm,detachedandmediate,butonceyou’velistenedtoeveryonethenyoumustmakeadecisionandsticktoit.Itisalsogoodtoleteveryonehaveavictoryonceinawhile.Forexample,ifsomeonereallywantstouseacertaintemplateforthewiki,letthem.

Page 109: Talking with Tech Leads_ From N - Patrick Kua.pdf

Robert’sbackgroundstory

RoberthasworkedinITsince1995.Mostofhisworkhasbeenwithbackendsystemswithlargesetsofdatabeforetheterm“bigdata”becametrendy.Inthattimehehasplayedvariousroles,includingaTechLeadforanumberofteams.Hismostrecentexperiencewasworkingina“frontoffice”roleforafinancialinstitutewherehefindstherolemorereactive.

Page 110: Talking with Tech Leads_ From N - Patrick Kua.pdf

MappingtheFuture–JasonDennisWhatshouldaTechLeadfocusonandwhy?

Iworryaboutthetechnologybeingusedandwhatweshouldbeusingforthefuture:isthereabetterwaytodowhatweneedtodo?Ialsoworrywhetherthecodebeingproducedbytheteamfollowsmydesignandcodingguidelines;Iamabitpedanticaboutthatsometimes.

Ifocusonimprovingperformance;Iwantitquicker;IwantGooglespeed,becausecustomerswon’twaitforthepagetoload.Ialsowanttofocusonimprovingtheteamskillsanddevelopingskillsthatgetpeoplemovingthroughthecodeissuesfastersowecanfocusonbiggerissues.

WhathasbeenyourbiggestchallengeasaTechLead?

Themostrecentwasaplatformupgradewhereweusedanoutsidevendorfortheproject,buttheydidn’tunderstandourbusinessmodelandsomadeassumptionswecouldneversupport.Oneinstancewastheco-minglingoftheadminandfront-facingwebsiteintoonesite:Ihadtosplitthembecausemixingtheadminwiththewebsitewouldbringallkindsofproblems,notleastofwhichwerepoordesignchoicesbythevendor.

Eventhoughtimewasextremelytightandpeoplesaiditcouldn’torshouldn’tbedone,Idecidedtodoitbecauseitwasbestforthecompany.Ialsodesignedtheentiresolutionsoitfittedbestpractices.

Anytime-managementtips?

Itrytoansweremailsastheycomesopeopledon’tsendmoreemailsaskingwhyIhaven’tansweredthem.IalsotryandcarveoutsetperiodsoftimetofocusonataskifIneedto,butItrytoavoiddoingthisifpossible.

ForprojectsItrymybesttoestimatecorrectlybasedontheassumptionthatIwon’tbeworkingontheprojectallthetimebutwillhaveotherthingstodealwith.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Balanceistrickyandsometimesyoujusthavetogowiththeflowofwhatishappeningatthetimeratherthanwhatyouwouldliketobedoing.

Jason’skeyquestion:HowdoIbecomealeader?

Learnandgrow.Youneedtolearnallyoucan,neversitstillbecauseyouhaveenoughtodointhejob;keeponsuckingdownknowledgeaboutnewtechnologiesandnewbestpractices.Helpotherstogrowintheirrolesoyoushineasaleader.

Jason’sbackgroundstory

Page 111: Talking with Tech Leads_ From N - Patrick Kua.pdf

Jasonhasbeendoingthissince1995andhasbeenaroundcomputerssince1982.HehasplayedtheTechLeadroleafewtimesatdifferentorganisationswithbothlocalandremoteteamsoverthecourseofaboutnineyears.Hisinterestsarevaried,butwhenworkallowshelikestoworkonremodellinghishouseaswellasreadingandkeepingupwithdifferenttechnologiesandseeingwhatisoutthereintherealmsoftechnology.

Page 112: Talking with Tech Leads_ From N - Patrick Kua.pdf

FindingBalancewiththeBusiness–CoryFoyWhatshouldaTechLeadfocusonandwhy?

IthinkthemostimportantthingaTechLeadshouldfocusonisthebalancebetweendeliveringcustomervaluerapidly,andmeetingtheneedsofthearchitecturalplan.Toooften,customersareaskingusforthingstheydon’tknowtheydon’tknow.Theywon’tbeabletogiveusmeaningfulfeedbackuntilwehavedeliveredsomething,sothelongerwewaitbeforegettingthatfeedback,themorewrongwecouldbe.Butthathastobebalancedwithavisionofthearchitecturetobuildahigh-qualitysystem.Thetrickistodeliverthatvisionbybuildingsmallslicesofvaluethatarepotentiallyshippable.

WhathasbeenyourbiggestchallengeasaTechLead?

Peopleandcommunication;IthinkforanyTechLead,thepeoplechallengestrumpjustabouteverysingletechnologyone.WhenIworkedatMicrosoft,weweredroppedintoclientsiteswherethesystemsweredownandcompanieswerelosinglotsofmoney.Thewaytheytrainedusforthatwasbyputtingusthroughathree-week,soft-skillsbootcamp.Forthatreason,IrecommendTechLeadslookingatthesoftskillsside,andbookslikeCrucialConversations:ToolsforTalkingWhenStakesAreHigh,HowtoArgue&WinEveryTime:AtHome,AtWork,InCourt,Everywhere,EverydayandBehindClosedDoors:SecretsofGreatManagement.

Anytime-managementtips?

Makeeverythingvisible:forpersonaluse,thingslikePersonalKanbanareinvaluabletechniques.Visualisingtheworkyouhavetodo,andhowlongitistakingisinvaluable.

Ialsodon’tworryaboutreplyingtoeveryemailimmediately.Idon’tdoInboxZero,butIdoleaveemailsthatneedtobehandledasunread.IthengobackwhenIhavefreemomentsandsortbyunread,andstartworkingfromthebottomup.Ittakestime,butIgettothemalleventually!

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

AsaTechLead,myfirstresponsibilityismyteam,notmycode.ThatmeansImightworklongerhoursthanothermemberstokeepupwiththe“same”workload.OrImightnotbeabletotakeonasmuchworkasthem.Mostofmytimeisfocusedonteachingandunderstandingthechallengesoftheteamtoensuretheyareworkingassmoothlyaspossible.Itisnotalwayseasy-therearecertainlytimeswhenIjustwanttoputonheadphonesandcode,andsoIdo.Butthatcannotbeallthetime.

Cory’skeyquestion:HowdoTechLeadsprepareotherstobeTechLeads?

IoftenseeTechLeadsorarchitectswhodonotwanttogivetheirpositionuptoothers.Wefocusonmentorshipandgrowth.ThewaythatIprepareothersisbypushingdecisions

Page 113: Talking with Tech Leads_ From N - Patrick Kua.pdf

tothemandlettingthemmakemistakes.

Cory’ssecondquestion:Howdoyoulearn,growandkeepupwithnewtechnology?

Ithinkoneofthebigideasbehindthecraftsmanshipmovementisthatyouasanindividualareresponsibleforyourgrowth-notyouremployer,notyourleadsoryourmanagers.Ifinditisimportanttotaketimetoinvestinyourself.Dosomereading.Attendorpresentatconferences.Participateinusergroups.Alloftheseactivitieshelppreventyoubecomingstagnant.

Cory’sbackgroundstory

Coryisatechnologistandchangeagent.Helovessoftwaredevelopmentandispassionateaboutgrowingorganisations.Hehasworkedwithsoftwareforthepast15years,workingandspeakingwithteamsallovertheglobe.

Page 114: Talking with Tech Leads_ From N - Patrick Kua.pdf

ABridgetotheBusiness–RyanKindermanWhatshouldaTechLeadfocusonandwhy?

IhaveoftentoldbyprojectmanagersandotherdevelopersthatIwasthe“acting”TechLead,whichtomeimpliedthatIwastheteammembermosteffectiveinworkingwithpeopletounblocktheteam,guideustocorrectdecisionsontopicsofsoftwaredesign,andhelpwithareassuchasprojectplanningandexpectationsetting.That’swhataTechLeadhastodo.It’spossibletoshareleadresponsibilities,orforaleadtorelinquishorspreadleadershipresponsibilitiestofocusontechnicaldetailsforawhile.

Technicalprojectsarecomplex,andtheprincipalthingthatIfeelImustdoasaTechLeadisactasthecommunicationbridgebetweenthenon-technicalandtechnicalstakeholdersontheproject.AsTechLead,Ineedtobeabletoexplaintechnicalconceptstonon-technicalstakeholdersinawaythattheyunderstandandfeelcomfortablewith.Imustalsojustifythetechnicaldecisionsbeingmadetobothnon-technicalandtechnicalstakeholders,oftencomparingthosedecisionswithpossiblymanyavailablealternatives.ImustalsohelpthetechnicalteamunderstandthecontextforthefunctionalitybeingbuiltaccordingtowhatI’velearnedbycommunicatingwiththeprojectmanagerand/orclientstakeholders.Tobeabletodothisrequiresawidevarietyofskills,bothtechnicalandinterpersonal.

Onthetechnicalsideoftheproject,otherresponsibilitiesincludeworkingwithothertechnicalteammembersto:

DecidewhattechnologytouseUnderstandhowtousethetechnologyproperlytodeliverthedesiredfunctionalityEstablishanapproachforthedevelopmentthatwillbedonetobuildthenecessaryfeatures,including:Howthedevelopmenttasksshouldbebrokenup,organised,andprioritisedMaintainingahighlevelofqualityforwhatisdevelopedProtectingdevelopedfunctionalityagainstregressionasbehaviourchangesovertimeEarntherespectandtrustof,andactasanequalto,thedevelopmentteambyparticipatingincodereviewsand/orpairingondevelopmenttasksandfacilitateanopendiscourseondecisionsbeingmade.

GiventhebreadthofskillsandunderstandingrequiredtobeTechLead,ittookmeawhiletonarrowdownthecoreresponsibilities.Mostofthetimeitisn’tenoughtocoveronlythosecoreresponsibilities.Sometimesaprojectlacksaprojectmanager,ortheprojectmanagerlackstheexperienceorknowledgetoapplytherightmanagementprocess.Sometimesthetechnicalteamdoesn’thavetherightskillmix,orthereisadisproportionatenumberofjuniortoseniordevelopersontheteam.Insuchsituations,the

Page 115: Talking with Tech Leads_ From N - Patrick Kua.pdf

TechLead,iftheprojectisluckyenoughtohaveone,mustassumesomeoftheresponsibilitiesoftheseotherrolesinorderfortheprojecttobesuccessful.Whatareyoursecretstomanagingtime?

Whenitcomestomyworkandprofessionallife,Iprioritiseobsessively.ItryveryhardtomakesurethatIhavealistofallofthethingsthatneedto,orpotentiallyshouldeventually,getdoneacrossprojects,goals,andcontexts.Ireviewthislistregularlyandmakesureit’saccuratelyprioritised.Ithenworkthroughtheitemsonthelistonebyonewithastrongfocus.Itryandpauseatregularintervalstocheckemailorcollaborateinotherways,sometimesasaresultofitemsinmylist,butusuallytodealwithexternalactorsthatarechangingconditionsoutsideofmyfocusthatIneedtostayabreastofandworkintomyownprioritisedlist.

BymakingsurethatIhaveaprioritisedlistofthingsthatIneedtodo,IgenerallyknowthatI’mspendingmytimeontherightthings,intherightorder.IfitfeelsasthoughI’mnotgoingtobeabletoaccomplishtime-sensitiveitemsfromthelist,Iraisethisasaconcerntoothers,andtrytodelegateorupdatepeople’sexpectationsofwhenitwillgetdone.

Howdoyoustrikethebalancebetweenwritingcodeanddealingwithotherissues?

AsTechLead,IoftenwritecodetogainanaccurateunderstandingoftheexperienceofadeveloperontheteamI’mleading,andtocommunicatewiththedevelopersatanequallevel.Bycodingwiththedevelopersontheteam,orreviewingandprovidingfeedbackontheircode,Ilearnabouttheirpersonalitiesanddevelopmentstyles,aswellasstrengthsandweaknesses,andtheylearnaboutmine.Itistime-consumingthough,andIdon’thavealwayshavethatluxury,especiallyinsituationswhereI’mjoiningaprojectthathasbeenunderwayforawhile.

Ineedtohaveabroad,intimateunderstandingofthetechnologiesbeingused,andavisionofthestructureoftheentitiesinthesystemandinteractionsbetweenthem.ItusuallyturnsoutbetterifIspendtimealonegettingtheapplicationrunningonmydevelopmentmachine,tracingthroughtherelevantareasofcode,thinkingaboutdesignimplications,diagrammingoutnontrivialbits,writingtestcasestoconfirmassumptionsoranswerquestionsonhowthingsareworking,andsoon.Idon’tconsultanyoneduringthisprocess;Ilearnthingsonmyowntermsandcometomyownunderstanding.Onlyafterthisprocess,doIcheckmyassumptionsandunderstandingwithothers.Byfollowingthispractice,Ilearnthingsatamuchdeeperlevel,avoidbotheringtheteamwithtediousquestions,andgainrespect.

Inadditiontopairing,development,andanalysisofthesystem,Itryandrevieweverybitofcodethatgoesintothesystem.It’softenimpossibletoreviewandprovidefeedbackoneverycommit,butatleastbyreviewingeverycommit,Icanprovidedeferredfeedbackinvariousways.IfInoticesoftwaredesignissuesemerging,Icanconsiderincludingtimetoaddressthemwhenscopingfuturework.

Someactivities-productreviewmeetings,high-levelscoping,breakingdevelopmenttasksoutforupcomingcycles-taketimefromreviewingorworkingwiththecodegoingintothesystem.SomethingsIneedtoparticipatein,butrelativelyinfrequently,usuallyonceaquarterorso.Ithinkit’simportanttotryandtimethishands-onworktobedone

Page 116: Talking with Tech Leads_ From N - Patrick Kua.pdf

duringstableorinactiveperiodsfortheproject.Productreviewmeetingscanusuallybeattendedbyadevelopmentorprojectmanager,whowillreportbacktomeandtheteam.Breakingdevelopmenttasksoutforupcomingcyclescangenerallybedistributedtothedevelopmentteamasdevelopmenttasksthemselves.Thisapproachmaynotworkiftheteamisprimarilyjuniororhasissues,buttheprojectshouldberestrictedinsuchcasesanyways.Regardless,Iwilltrytotakeonanyorparticipateinparticularlytrickyorcriticaldevelopmentbreak-outworkmyself.

Sometimes,iftherearegreaterissuesthatdetractfrommytimetorevieworwritecode,Iassesswhethertheteamcanmaintainareasonablelevelofcodequalityforaperiodoftime,whileIaddressthoseissues.IfthereissomeoneontheteamthatIcanleanontokeepthebarforqualityhigh,Imightdothat.IfIdon’tfeelabletoleavetheteamtomaintaincodequality,Ilettheprojectmanagerorclientstakeholderawareofthisfact,andthecostofcontinuingdevelopment.Bydoingthis,Iaffordthemtheopportunitytosetproperexpectations,budgets,orwhateverisnecessarytocorrectthesituation,ordealwiththepotentialconsequencesI’veidentified.

Ryan’skeyquestion:WhatactivitiesareimportantforaTechLeadtoengageinoutsideofworktostayvitalandrelevantinthefield?

Listedinorderofimportance:

1. MaintainbalancebetweenworkandlifeIbelievealldevelopersincludingTechLeadsshouldspendtimelearningandimprovingtheirskills.Sometimeslearninganewlanguageorparadigmabsorbslongperiodsoftimethatupsetotherpartsofyourlife.Itrytokeepahealthybalancebetweenprofessionalgrowthandpursuingmyotherinterestsbybreakingbiggertasksintosmallertasksthatcanbecompletedinafewhours.

2. Developadeepunderstandingofgoodsoftwaredesign,goodpracticesanddifferentdevelopmentstylesOurindustryisbroadanddeepwithmanyspecialitiestolearnfrom.Iseektolearnaboutconceptsthattranscendanyspecificimplementationorprogramminglanguage.Forexample,thefamousbookDesignPatternsbecamemybiblebecauseyoucanapplytheseconceptsinmanycontextsandprogramminglanguage,notjustonespecificplatform,toolorproduct.

3. StayconnectedasmuchaspossibleonhardtechnicalskillsEventhoughIwillneverknoweverything,it’susefultoreadandsometimesexperimentwithawidevarietyoftechnologies.ReadinginvariedareasoftenendsupserendipitouslyrelevanttoaproblemIamworkingonaweekortwolater.Itrytoreadbroadlyacrossawidevarietyoftechnologiesandproblemdomains,suchaswritingaLinuxkernelmodulethroughtothestructureofanEPUBfile.Ipayforasubscriptiontoafewprofessionalpublicationssuchas“LinuxMagazine”and“CommunicationsoftheACM”ontopofthewebsitesandblogsIsubscribeto.IexperimentwithprojectsonasmallVirtualMachine(VM)labathomebuiltwithLinuxandkvm.UsingVMsallowsmetostartandstopexperimentsquickly.

Ryan’sbackgroundstory

Ryanwasinterestedincomputersfromaroundtheageof10andknewhewantedtodosomethingwithcomputerswhenhegrewup.HestudiedComputerScienceatthe

Page 117: Talking with Tech Leads_ From N - Patrick Kua.pdf

UniversityofWisconsin,OshkoshandaftergraduatingwentontoworkforaUSBankasasoftwaredeveloper,wherehelearnedasmuchashecouldaboutusercases,agilemethodologies.HethenmovedtoThoughtWorks,wherehelearnedaboutagileprojectmanagementanddevelopmentpractices.

HehasbeenaTechLeadforaboutfiveyears.

Page 118: Talking with Tech Leads_ From N - Patrick Kua.pdf
Page 119: Talking with Tech Leads_ From N - Patrick Kua.pdf

You

WhenIfirstreadtheresponsesinthissection,eachpersonseemedtofocusonhowtheyapproachedtheTechLeadrole.Onepersondescribedtheirapproachchangingasthecontextchanged.ManyTechLeadsalsoremarkedonbecomingmoreself-aware;especiallyremainingvigilantagainstbeingabottleneckofinformationordecision-makingabilityintheteam.WhatIespeciallyenjoyeddiscoveringfromtheseinterviewswasanappreciationofhowyoucanshapetheTechLeadroletobestfityourskillsandstillbesuccessful.

AdaptingtoNewCircumstancesWhenadeveloperencountersanewproblem,oranewlibraryorprogramminglanguage,theymustdrawuponnewskills.Likewise,theTechLeadmustdrawupondifferentskillstohandledifferentsituations.Theskillsrequiredtobeapartofabusinessplanningcycle,forexample,aresignificantlydifferentfromthoserequiredtomanagetechnicaldebt.

ChangesintheteamalsorequireachangeinfocusfromtheTechLead.Adeveloperleavingtheteammayleaveaknowledgegaporadditionalresponsibilities.TheTechLeadmonitorsforgapsandfindswaystobridgethem.Incontrast,anewdeveloperjoiningtheteammayhaveacompletelydifferentcodingorworkingstyleandtheTechLeadmustnowfindwaystorealigntheteamintegratingtheapproachesbroughtbythenewperson.

ATechLeadhastohandlemanymorevariedsituationsthantheydidasadeveloper,oftenwithlittlepracticeinnewskills.Youneedtodevelopabroaderskillsettobettercopewiththesenewsituations.Attendtrainingcoursesorreadbooksthatimproveyourcommunicationskillsandawarenessofpeopleandteambehaviours.

BecautiouswhenyoudroptheTechLeadroletoplaythefull-timedeveloper.Broaderissuesmayremainunnoticedandescalateunobserveduntiltheyaretoobigtosolvequickly.

MakingYourselfRedundantThenewerTechLead(mistakenly)seestheirroleasapersonwiththedeepesttechnicalskills.Theythinktheymusthavethefinalsayontechnicaldecisions,andmustsolveallofthemostdifficulttechnicalproblems.

TheseinterviewshighlighthowtheTechLeadisrarelythepersonwiththedeepesttechnicalskills.AneffectiveTechLeadmustbetechnicalenoughtofacilitatemeetingswithdevelopers,orfindwaystoresolvedisagreementsontechnicalmatters.HowevermanyTechLeadswroteabouttryingtoconstantlyfindwaystodelegateresponsibilitiestotheirteam.

WhenaTechLeaddecidesonallthetoughproblemsorkeepsalltheinterestingwork,thefollowingscenarioscouldarise:

Page 120: Talking with Tech Leads_ From N - Patrick Kua.pdf

Apersonstartstofeeltheyaredoingallthe“boringwork”anddecidestherearemoreinterestingopportunitieselsewhereApersonfeelsasthoughtheyarenotvaluedformakingimportantdecisions,andseeksaplacetheyaremorevaluedKeydecisionsstallbecausetheywaitfortheTechLead,whoisbusywithotherresponsibilitiesAsaTechLead,youfeelstressedbecauseeveryoneisconstantlyaskingforyoutomakeadecision

Toresolveadecision-makingbottleneck,theTechLeadfindswaystodelegatethistotheteam.Effectivedelegationmeansassigningtherightpersontothetask.ThisrequirestrustbetweentheTechLeadandtheirdevelopersandunderstandingwhatskillsandknowledgeeachpersonhas.AneffectiveTechLeadconstantlyworkstowardsthis.

IfyouaretheTechLeadandthemosttechnicallycompetentperson,youshouldstartgrowingotherssoyoucandelegatedecisionsinthefuture.Inanythingotherthanthesmallestofteams,youcannotdesignandimplementfunctionalityandcovertheotherTechLeadresponsibilitieseffectively.

UsingYourOwnStrengthsAlltheseinterviewshighlighthowpeopleapproachtheTechLeadroleinmanydifferentways.Eachpersondiscoveredtheirownstrengthsandfoundawaytoputthemtouse.Theyalsofoundthatsometasksdidnotplaytotheirstrengthsbutstillneededdoing.UsebookslikeStrengthsFinder2.0tolearnmoreaboutyourself.

SomeTechLeadshavestrengthsincommunication.Theydevelopstrongrelationshipswithbusinesspeoplebecausetheyeasilytranslatetechnicalmatterinwaysthatnon-technicalpeoplefindsimpletounderstand.Theircommunicationskillshelpthemharmonisetheteamworkingtowardsthesamegoalandclearlyarticulatewhenthingsgowrong.

OtherTechLeadshavestrengthsinseeingthefuture.TheyarebetteratprojectingthefutureimpactofdecisionsandeasilymanageTechnicalDebt.Theyknowwhentoinvesttimeinburningtechnicalissues,orwhentoshiftinto“gettingstuffdone”mode.

PerhapsaTechLeadisstronginrelationships,bothunderstandingtheconflictsemergingintheteam,closelygettingtoknoweachperson,theirhopesandgoalsandfindingwaystoalignindividualandteamobjectives.Theyunderstandtheneedtodeveloptheirpeople,andcreateasafenurturingenvironment.

Spendtimeunderstandingyourself.ThenspendtimefindingwaystoapplythosestrengthstotheroleofTechLeadtomakeityourown.

Page 121: Talking with Tech Leads_ From N - Patrick Kua.pdf

ManagingYourself–StephenHardistyWhatshouldaTechLeadfocusonandwhy?

AsyoumoveuptheTechLeadershipladder,youaregivenmoreresponsibilityandadifferentkindofcontrol.Asadeveloper,youareresponsibleforcomingupwithneatsolutionstowell-definedproblems;asTechLead,youareresponsibleforcomingupwithlargesolutionstooftenill-definedproblems.Thismeansyouaresettingoutavisionandrelyingonotherstowritethecodethatimplementsthisvision,whichcanbefrustratingtobeginwith.

Itisimportanttoresistthetemptationtostepinandtakeover.Instead,youhavetoexercisethenewcontrolyouhaveinherited:tomakethedevelopersaroundyoubetter.Thewillingnessandabilitytomakethepeoplearoundyoubetterattheirjobsmakesthedifferencebetweenamid-levelandaseniordeveloper.Thegreatthingaboutmakingpeoplebetterattheirjobisthatithelpsyouunderstandwhoontheteamismotivatedbyachallengeandself-improvementandwhoiscontentwithbeingadequate.

Thenexthurdleisdefining“better”.Inrawterms,itoftenmeansdeliveringatapredictablerate,rarelyscrewingup,deliveringsomethingthatpeoplelovetouseandhelpingothersachieveallofthese.However,thesearenotparticularlyusefulinstructions.Youneedtoworkoutwhatbehavioursneedtobeencouragedtoachievethesethings,suchasareasonedapproachtotesting,empathyforusers,andpushingcodefrequentlytoreduceriskandgainrapidfeedback.Aswellasbeingagreatwaytowritecode,pairprogrammingisanopportunitytodemonstratethesebehaviours.Youshouldtakethetimetoeitherleadbyexampleorcoupledeveloperstogethersothattheyteacheachothertheskillsyoufeeltheyneedtoimprove.

OneofthefactorsthatmakesyouaTechLeadisthatyouareclever,butthisdoesnotmeanyouarealwaysright!Whendiscussingsolutionswiththeteam,makesureallpartieslistentoeachotherpolitelyandallsolutionsareexplored.

Thebiggersolutionsaddressingasecondaryproblemthatmaycomeupinfutureshouldbetreatedwithcaution.Ifthesolutionresultsinyoudoingmoreworknowinordertofactorinsomethingthatmaynothappen,thereisastrongchancethatyouareover-engineering.Theonlysortoffuture-proofingthatreallyworksismeaningfultestsandaslittlecodeaspossible.

WhathasbeenyourbiggestchallengeasaTechLead?

ThemostdifficultsituationIexperiencedhappenedafewyearsago.Iplanned,promotedandstartedaprojectthatIthoughtwouldrequirefourdevelopersandrunforaboutfivemonths.

Forafewweekswefelteverythingwasgoingsmoothly.Mymanagermusthavethoughtotherwiseand,tomysurprise,addedasecondTechLeadandfivemoredeveloperstothe

Page 122: Talking with Tech Leads_ From N - Patrick Kua.pdf

project.Iwouldn’twanttosuggestthattheotherTechLeadwaswrongorthathewasanythingbutapleasantperson,butweoftendisagreedwitheachother’stechnicaldecisions.Nomatterhowmuchdiscussionhappenedbehindcloseddoors;howmanyrespectedopinionsweregarnered;howmuchevidencewasproduced,westucktoourdiametricallyopposingviews.ThedisagreementsoftenresultedinconfusionbetweendevelopersandpublicdisputesbetweentheotherTechLeadandme.Thiskilledmorale.Predictably,theprojectwastechnicallycomplex,late,expensive,andnowrequiresaspecialsortofdeveloperformaintenance:adeveloperthatsharesbothmyskillsetandthatoftheotherTechLead.

Althoughthisexperiencewasunpleasant,itgavemetheopportunitytoreflectonhowIshouldbehavepubliclyunderdifficultcircumstances.Ittaughtmethatpersonnelandtechnicaldecisionsthatarehardtojustifyshouldberevisitedand,ofcourse,thatthereshouldnotbemorethanoneTechLeadonaconfinedproject.

Thereisapositivesidetothisstory.ThefrustrationofaprojectthatinitiallyexcitedmebuteventuallyturnedsourpromptedmetomakeadecisionIhadbeenponderingformonths:tofindanotherjob.IhaveneverregrettedthisdecisionandIsuspecttheprojectIleftbehindcontinuedonamuchcalmerandmorefocusedpathwithoutme.

Anytime-managementtips?

Thefourmaintimesinksformeare:

ReadingemailAttendingmeetingsManaginganddirectingdevelopersWritingcode

Asweallknow,emailcanbeadistraction-nomatterhowimportantthecontent.Ihavetwotechniquesforprioritisingemail.Forlow-priorityemails,suchascertaintypesofglobalemails,Ihavethemmarkedautomaticallyas“read”andonlyglanceatthemifIhavetime.Forotheremails,Ihaveadifferentcolourforclientemailsthatcometomedirectly,emailsthatcometomyteam,andotheremails.ThishelpsmedecidequicklyhowlongIshouldreadanemailfor-fromthoroughlyunderstandingtojustasimpleglance.Fortheemailsthatdeservearesponse,IalwaysrespondasquicklyasIcantoavoidabacklog.Thisnotonlykeepsmefrombeingoverwhelmedbutalsogivesthesendertheimmediateresponsetheyhopefullyappreciate.

Asformeetings,Iamluckyenoughtoworkforacompanywhereall-handsarealsobroadcastviatheinternet.Unlessmyattendanceismandatory,Itreattheselikearadioandlistentothemwhilstdoingotherwork.AtEtsywealsohavewhatwecallthe“Fixlerrule”(namedafteroneofourdirectors,EricFixler).Thisruledictatesthatyoumaypolitelyexitwhenameetinghasceasedtoyieldvalueforyou.Iholddeveloperweeklyone-to-onesandtheylastforaslongastheyneedto.Theyareimportantandnon-negotiable.Ifyouwantyourdeveloperstouseuplessofyourtime,theone-to-oneistheperfectforumforlisteningtotheirconcernsandhelpingthemplanself-improvement.

Page 123: Talking with Tech Leads_ From N - Patrick Kua.pdf

Iwillleavethecodepartbrief:itispart-timeandIuseitasbothawaytorelaxandtokeepintouchwithhowtheproductanddevelopersaredeveloping.Ionlyeverpickverysmall,trivialtasksandneveranythingcriticalasIcannotguaranteemytime.

Outsidethenine-to-five(oreight-to-eight!),itisimportanttohaveahealthywork/lifebalance.Youshouldemotionallydetachfromyourworkinyoursparetimeasmuchaspossible.Ifworkbecomesyourmainemotionalinvestment,youriskjudgingyouroverallsuccessasahumanbeingbyyourabilitytodeliversoftware.Ironically,stressandlonghoursmakeyoulesseffectiveatyourjoband,whetheryoulikeitornot,yousetanexampletoyourcolleagues.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

OvertimeIhavebecomemorecomfortablewithnotcoding.Istillwritecodebutit’sgenerallylimitedtonon-criticalchangessoIcankeepintouchwithhowthingsaregoingoverallbyworkingontasksthatdonotmakemeadependency.Thereareoccasionswhensomethingunplannedarisesandwhiletheotherdevelopersareheadsdownintheirownwork,Icanshufflethingsaroundandhaveacrackattheproblem.Ihavelearnedthatthesearenotoccasionstodemonstratethat“Istillhavethemagic”,buttoworkoutwhatthingscouldbeimprovedandtorunmyownminipost-mortem.

InitiallyIfeltmynon-codingresponsibilitieswereinadditiontowritingcode.Steadily,therealisationhassunkinthatmyeffortsshouldinsteadbefocusedontryingtomakethepeopleIrelyonaseffective,challengedandmotivatedaspossible.

Stephen’skeyquestion:Whataresomecommonpitfallsandhowcanyouavoidthem?

SinglePointsofFailurearesometimesdifficulttoavoid.Somedevelopersloveto“own”theirwork.Althoughtakingresponsibilityisclearlyagoodthing,theperceptionofownershipoftenleadstoonepersonholdingexclusiveknowledgeofsomething.Theriskofhavingonedeveloperbetheonlypersontounderstandsomethingcomplexisobvious,butyouhavetobeincrediblydiligenttoavoidit.ThereareafewwaystopreventSinglePointsofFailurebutmypreferenceistomakesurethedeveloperwithexclusiveknowledgeforagivenareaofcodeisquicklymovedontosomethingelsesoanotherpersoncantakeonthechallenge.Alessjarringsolutionispairprogramming,aslongasbothdeveloperstakefairturnsonthekeyboardandbothunderstandwhatisbeingdone.

Anotherpitfallcanbedecisionsdrivenwithoutreason.Gutinstinctisamarvellousthingandknee-jerkreactionsaresometimesyourexperiencesubconsciouslypoppinguptotellyousomething.However,youshouldunderstandandbeabletoexplainthatreactionbeforeactinguponit.Thenthereistheothertypeofirrationaldecision,andthisisworse:decisionsdrivenbyego.Itisimportanttocreateanatmospherewhereitisoktobewrong.Ablamelesscultureisanenormousassettosensibledecision-making.

Stephen’sbackgroundstory

Stephenhasbeenasoftwareengineerinsomecapacityfor15years.HestartedworkingatLogicainBristol,UK,whenhewas18,helpingtowritereal-timebillingsystems.SincethenhehasworkedforMessageLabs(nowpartofSymantec);foraUKstart-upwriting

Page 124: Talking with Tech Leads_ From N - Patrick Kua.pdf

anti-spamsoftware;asaTechLeadforrealestate.com.auinMelbourne,Australia,andiscurrentlyanengineeringmanageratEtsyinNewYork.Hehasbeenbuildingandmanagingteamsforaboutsevenyearsandhasrealisedthathepreferstoworkwithsmallteamsonhighlyfocusedgoals.

Page 125: Talking with Tech Leads_ From N - Patrick Kua.pdf

Scouting–GeoffreyGiesemannWhatshouldaTechLeadfocusonandwhy?TheTechLeadrolecanvarywidely,dependingonthecompositionoftheteamandtheorganisationalcontexttheteamisin.IliketothinkofaTechLeadasthescoutforateam.They’rethepersonyoucansendaheadofthemainbodyofworktosurveythelandscape,spotobstacles,comebackandreportonwheretheteamshouldheadnext.

Tome,thekeyresponsibilityofaTechLeadliesalongthisscoutingmetaphor.Foranygivenprojectyou’llneedtomakeabunchoftechnicaldecisionsandtheinformationyouneedtomakethosedecisionsisscattered.Someofitmayevenbeoutsidethecompany,intheheadsofyourcustomersorpeersinothercompanies.AsaTechLeadyouneedtoferretoutthisinformationandmakeitavailabletoyourteam.

Ifyou’reinalargeorganisation,thesameresponsibilityworksinreverse.Ifyourteamisdoingwork,oddsaretheworkwillimpactonanumberofotherdevelopmentteamsintheorganisation.AsaTechLeadyoushouldbemakingotherteamsawareofallthesignificantchangesyourteamismakingsothattheycantakethemintoaccountwhenthey’redoingtheirwork.

WhathasbeenyourbiggestchallengeasaTechLead?

TheprojectIamcurrentlyonisquitelarge(about12months)andwe’reengagedwithmultiplestakeholdersfromdifferentpartsofthebusiness.Theclassicproblemwithmultiplestakeholdersisthattheyallwantdifferentthingsanditisuptoustojugglethem,alongwithourownpriorities,aswedoourwork.

Inthisspecificcasetherearetwooutcomes:oneistoreplacealegacysystemwithanewer,sparkly,better-performingone;theotheristomakeourcustomershappierbyprovidingthemwithbettertoolingandmakepartofoursystemmoretransparent.Althoughbothoutcomesarerelated(workingonthesamesystem),they’recompletelyorthogonalandcouldberunastwoseparateprojects.

Asaresult,wehavetoperiodicallytackbetweentheoutcomestoappeasethedifferentparties,andtheinefficienciesanddelaysthiscausesdrivemenuts.

IcannotsayI’vehandleditwell,butattheendofthedayyourprojectstakeholdersarehumanbeingstoo,anditisimportantyoudon’tletdiscontentwiththeirworldviewbreedintohate.AparticularbugbearInotice,iswhenITpeoplewavetheirhandsdismissivelywhentheyrefertothenon-ITpartofthecompanyas‘thebusiness’.Weallworkforthesamecompany;weall(intheory)wantthesamething,soitisimportanttokeepthatinperspectiveandnotletanus-and-themmentalitydevelop.

Anytime-managementtips?

Twosimplethingstofocusonaredelegationandeliminatinguselessmeetings.

Page 126: Talking with Tech Leads_ From N - Patrick Kua.pdf

Delegationissimple:doyouneedtodothisworkorcanyouhanditovertosomeoneelse?(orignoreitcompletelyifitisnotimportant).Sometimesthismeanshandingoverworktosomeonewhomaynotdoitaswellormaytakelongerthanyouwouldhave.ThesearecostsyouneedtobearandIrecommendtryingtomakeitanopportunityforthedelegatetolearnorupskillintheprocess.

Intermsofmeetings(IamechoingRandshereabit),ameetingisusuallycalledbecauseabunchofpeopleneedtomakeadecisionortodisseminateinformation.Ifthepurposeofthemeetingisn’tmadeclear,ortherightmixofpeoplearen’tatthemeeting,Itendtoavoidthemeetingorfindanexcusetooptout.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Istillreallylikewritingcode-sometimesItakemyselfoffforhalfadaysoIcanwhileawayatthekeyboardinprivate.Itisgoingtotakeafairbitofefforttodragmefurtherupthemanagementchain.

IfImissoutonwritingcodeforanextendedperiodoftime,Igetgrumpyandstarttakingitoutontheteam,whichisnotgood.ItrytoboxouttimeatleastonceaweeksoIcandocodingonstuffIwanttoworkon.Thiskeepsmehappy,andahappyTechLeadmakesforahappierteam:)

Geoffrey’skeyquestion:WhydidyoudecidetobecomeaTechLead?

Amyriadofreasons.IthinkIreachedapointwhereIunderstoodthatnotallproblemscanbesolvedbywritingcode(andquiteafewproblemsarecausedbyit)andthatitisincrediblyimportantforlargegroupsofdevelopersworkinginthesamedomaintoworkandthinkinthesamedirection.Iftheydon’t,chaosensuesquickly.

IamalsoreasonablygoodatprogrammingthingsandIfiguredIcoulduseachallenge.

Geoffrey’sotherquestion:WhenisadeveloperreadytobecomeaTechLead?

Inshort,whentheyrealisethere’snosuchthingasabadprogram.

Iwasinvolvedwithaprojectatworkthatrequiredmigratingeverybitofsoftwareeverwrittenatmycompanytoanotherdatacentre.Thisinvolvedreadingalotofcode,andmodifyingittomakepreviouslyhard-codedvaluesconfigurable.Duringthis,Imigratedacopyofourmainwebapplicationthatwasforkedatanearlierstageandusedtodeliverourcontentviaanalternatechannel.Althoughthecodewascustomisedbysomeinexperienceddevelopers,thefactthatithadnotundergoneanyproductdevelopmentorrefactoringfor18monthsmeantthatitwasactuallyquitesimpleandapleasuretoworkwith.Igotitrunninginaboutfourhours.

ThisreallyopenedmyeyesinthatIsuddenlyunderstoodwhysoftwareatthatcompanywasthewayitwasandhowitgotthere.Itwasbotheuphoricandsomewhatdepressingatthesametime.

Geoffrey’sbackgroundstoryGeoffreyhasplayedtheTechLeadroleforjustovertwoyears,leadingthreedifferentteams.Hehasworkedasaprogrammerforslightlyoversevenyears,andisnowemployedbyRealEstateAustraliainMelbourne.Whennotfoundinsideprogramming,Geoffreyenjoysthegreatoutdoors.

Page 127: Talking with Tech Leads_ From N - Patrick Kua.pdf

LeadfromBehind–JoelTosiWhatshouldaTechLeadfocusonandwhy?

UltimatelyasaTechLead,youdeterminetheleaderyouwillbe.ItiseasytoidentifywhatIworryaboutasaTechLead:Idon’twanttobecomeadependencyoratitle.Thisconcernhasactuallymademeconsiderturningdownleadershiprolesbefore.WhenIwasfirstaskedtoleadthesolutionarchitectsatRedHat,Inearlyturneditdown.Ifeltthattheteamwasworkingfinetogetherandtherewasn’tanyneedfordelineationamongstus.IstruggledtoseewhatvoidaTechLeadwouldfilland,moreimportantly,howitwouldmaketheteambetter.

Inhindsight,Irealisethatwasmoreofareflectionofmethanthetitleortheposition.ThetitleofTechLeadiswhatyoumakeit(unlessyourmanagerusesitasamicro-managementtool,whichIhaveseen).

SothemostimportantthingaTechLeadshouldfocusonisnotleading.Theword“lead”impliesthatotherpeoplearesubservientandfollowing.Iprefertofocusonfacilitatingenvironments,wherewecanalllearnfromeachotherandeveryonecandotheirbestwork.WhetherIamhelpingmyteammemberstoreviewcodeorarchitecturesorsimplylisteningtothemvent,Ineverwanttocomeacrossasauthoritative,butseektounderstandtheirposition.Forexample,ifsomeoneischoosingtouseacertainalgorithmthatImightnotagreewith,Idomybesttounderstandtheirthoughtprocessinreachingthatdecision,asopposedtosaying,“Wellyouknow,thatisO(n^2)andIthinkyoucandoitinO(n).”Thatisnonsense.

WhathasbeenyourbiggestchallengeasaTechLead?

WhenIwasfirstleadingateam,wefacedaridiculousprojectdeadline.Iknowthathappenseverywhere,butimagineifyouwould,aprojectwhere,atinceptionyouestimateitwillbeayearofwork,buttherealityisyouaretogoliveinfourmonths.Thesolutionyouareofferedistobringinmoredevelopers.SoIwentfrombeingamemberofasmall,four-personteamtoleadinga10-personteam(sixconsultants).Ofcourse,asthelead,Ihadtomakesurethenewconsultantswereimmediatelyproductive,theexistingteamunderstoodwhattodo,finishmyowncode,anddesignthenextphases.

Inbrief:wefailedmiserably.Wewenttoproductionontime,afterworkinganaverageof80hoursaweek(oneweek,wemaxedoutat102hours)andafterbeinginproductionforabouteighthours,theprojectwasrolledback.Thenthepost-mortemsstarted,moredeveloperswerethrownattheproblem,anditcontinuedtospiral.Eventually,afterabouttwomoremonthsofscrambling,wegotmanagementtounderstandthatweneededtoslowdownandfocusonthequalityofourcode,integration,andenvironments.

HowdidIhandlethesituation?Well,basedontheprojectoutcome,prettypoorly.Werancodereviews;Itriedtogettheteamtounderstandtestinganddependencies,etc.Itriedto

Page 128: Talking with Tech Leads_ From N - Patrick Kua.pdf

imposequalityandlearningnewframeworks(RESTbackthen,Mavenbuild,aswellasfirstrevisionofJQuery,nottomentionmessagingtopeoplewhohadneverworkedwithaNotifiermodelbefore)anditblewup.Ontheupside:noonequit.Wehadastrongteamthatbondedthroughitall.Wehaveallmovedon,andIstillspeakwiththemajorityofthatteam.SomaybeIdidn’tdoasbadlyasIthinkIdid.

Anytime-managementtips?

ItdependsontheorganisationandroleIamin.WhenIfirstbecamealead,IthoughtthatbeingbusyinmeetingsmeantIwasprotectingmyteam,aswellasdoingtheimportant,busywork.

Later,Istartedblockingouttimeonmycalendarforteamtime.Andevenlater,Istartedblockingoutsometimefor‘me’time.

Thesedays,Isetmyselfremindersforteaminteractions.Ijustrampedupanewmemberofateam-aprocessthatlastsupwardsofeightweeks.Eventhoughthathasended,Ihavesetaremindertomyselftocheckinonhimevery2weeks,justtoseehowheisdoing.Itcanbeaboutcode,architecture,certainly,butfirstandforemostitisabouthimandhowheisdoing.Ifyoudon’tworkwithyourpeersaspeople,thenyouhavealreadylost.

SoIhavepersonalreminderstointeractnotonlywithinmyteam,butalsooutsideofmyteam.Imaynothitthemallthetime,andit’snotasthoughIamcallingpeopleeveryotherweekatacertaintime-adhocismorenatural.Istillblockouttimeformyselfaswell;youhavetostaysane.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Earlyon,Ithoughttheonlyissueswerecodeissues.Overtheyears,Ihaverealisedthatthemajorityofourissuesarecommunicationissues.SoItrytobeaseffectivealisteneraspossiblefirst,andsecondlyaseffectiveacommunicatoraspossible.

Honesty,transparency,andhumilitywillalwaysserveyouwell.

Joel’skeyquestion:Whydoyouwanttobealeader?

IwanttoseeothersbecomegreaterthanmeandIwanttoseetheteambecomeevenbetterstill.

Joel’ssecondkeyquestion:WhatreadingwouldyourecommendtootherTechLeads?

AnythingbyWeinbergisamazing,butifIhadtochooseone,itwouldbeGeneralPrinciplesofSystemDesign(althoughBecomingaTechnicalLeadermayalsobefittinginthiscontext).

SystemDesignandThinkinghasshaped,andcontinuestoshape,notonlyhowIseemyinteractionswithsystems,butalsomypeersandmyteam.Ithelpsmeelevatemyteamandassistthemwithquestioningandlearningwhat’sbeyondtheirinitialconception.GeneralPrincipalsofSystemDesignisabookthatyoucanreadandunderstand,then

Page 129: Talking with Tech Leads_ From N - Patrick Kua.pdf

sometimelater-formeitwasaboutamonth-youjustgethit.Itislikeseeingthematrix.Ihopeothershaveasimilarexperience.

Joel’sbackgroundstory

JoelcurrentworksastheTechLeadforSolutionsArchitectsforJBossNorthAmerica.HehaspreviouslyspenttimeasanagileconsultantandXPcoachforVersionOneandasaTechLead,managerandarchitectattheChicagoMercantileExchange.

Joel’sapproachasaTechLeadhasevolvedfrom“leadingbyexample”to“leadingfrombehind”.Hiscurrentapproachinvolvesmoreobservingandaidingthreatening,challengingorquestioningandfeelshisapproachmakeshimmoreawareasaTechLead.

Page 130: Talking with Tech Leads_ From N - Patrick Kua.pdf

UnderstandYourself–DanielWorthington-BodartWhatshouldaTechLeadfocuson?

Ithinkitisimportanttoplaytoyourstrengthsinwhateveryoudo.Beruthlessandunrelentinginthepursuitofthatgoal,butchooseyourfights.Formyself,Ipursuetechnicalexcellenceaboveallelse,butthisisnottosayyoushouldtoo.Makesureyouleaveroomforyourteammatestoexcelintheirstrengthstoo.

AnothertaskfortheTechLeadistounblockyourteam.Sometimesyouwillbethehero,butneverforgetyoumayalsoneedtobethejanitor.

WhathasbeenyourbiggestchallengeasaTechLead?

Thebiggestchallengesareoftentheslowestorlongesttoachieve:Ihavebeenworkingforthreeyearstodecoupleanumberofbusinesscriticalsystems.Ithasbeenalonghardslog.Asusual,thechallengesarebothsocialandtechnical.Thegreatestchallengeisnotlosingsightofthegoalandconstantlyputtingonefootinfrontoftheother.

Ifindthattechnicalchallengescomehardandfast,butthedeliveryandorganisationalchallengesthatareinevitablyentwinedmakethedifferencebetweenalong-termsolutionandashort-termfad.Donotgiveup!

Anytime-managementtips?

ThebestthingIhavefoundistohaveakid;nowIhardlyneedtosleep!

Onamoreseriousnote,ifyouareasdisorganisedasme,thendonotforgettoaskforhelp.Askingforhelpnotonlyhelpsyou,butalsoallowsotherpeopletostepupandsharetheresponsibility.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

Ithinkweoftentryandforcecodeoutbysittinginfrontofthekeyboardandwritingcode.Oftenthebreakswetakeawayfromthekeyboardallowoursubconscioustosolvetheproblemforus.Pairprogrammingalsohelpsenormouslyas,whenyouareaway,yourpaircancontinuewiththedirectapproachtotheproblem,whileyouwillcomebackwithfresheyesandprobablyanewsolution.

IdonotthinkIhavefoundbalance,asIamconstantlythinkingaboutcodeorcoding.Forme,theproblemisactuallystopping.

Dan’skeyquestion:AsaTechLead,howmuchdoyouthinkyourroleisactuallyabouttechnicalleadershipcomparedwithpeopleleadership?Or,Howdoyoumaketechnicalleadershipdecisionsstickinthelong-term?

Ithinktheanswerisinthequestion.Wecanshowpeoplegreattechnicalleadershipandvision,butittakestimeforpeopletogainadeepunderstandingofproblems.Weoften

Page 131: Talking with Tech Leads_ From N - Patrick Kua.pdf

havetoallowpeopletofail(inasafemanner)sotheycanfeelthetensionofforcesonehastobalanceincraftingasolution.Dan’sbackgroundstory

DanhasbeeninITfornearly18years,workinginalldimensions,fromsupport,networksandinfrastructure,qualityassurance,technicalsales,consultancyandsoftwaredevelopmentthatspansover50differentclientsindifferentindustries.

HehasplayedtheTechLeadrolemostrecentlyinthelastsevenyearsforabouttendifferentteams.Helovesfindingthesimpleinthecomplex.WhenDanisnotwritingcode,heenjoysmusic,filmsandbooksinadditiontoalittlebitofrockclimbing.

Page 132: Talking with Tech Leads_ From N - Patrick Kua.pdf

FindingBalance–LauraPatersonWhatshouldaTechLeadfocusonandwhy?

Ithinkthisisareallyinterestingquestion,andIdon’tthinkthereisasimpleorsingleanswertoit.OftheteamsIhaveled,notwohavebeensimilar;eachhasaskeddifferentthingsofmeasaTechLead.TomethemostimportantqualityrequiredofaTechLeadistheabilitytostandbackandseethebigpictureandthentheabilitytoadapttofixthemostpressingchallenge,whetherit’sarchitecturalconsiderations,lookingatcodequality,managingtechnicalstakeholders,teambalance,slimmingdownprocess,teamhappinessoridentifyingpotentialissues.

InmyfirstTechLeadrole,wewereinitiallydevelopingaresearchanddevelopmentsystemthathadmanypotentialbusinessstakeholders.Thetechnologystackwaswellknown,theteamwasmatureandusedtoworkingtogether,sothekeychallengesIhadwereidentifyingwhichfeaturesweregoingtobemostusefulandwhatarchitecturewouldensuretherequiredflexibility.

Amorerecentgigwaskickingoffagreen-fieldmediaproject.Theclientknewwhattheywantedandhadspentalotoftimewithadesignagencyestablishingwhatfeaturestheywanted,andwehadwelldefinedcross-functionalrequirements.Onthisprojectmymainrolewasguidingthearchitecturalchoices,liaisingwithtechnicalstakeholders,andhelpingtheonshoreandoffshoreteamsestablishgoodworkingpractices.

IbelievetheroleofaTechLeadisnottodictate,buttohelptheteamdeliver.Theworldshouldn’tfallapartiftheTechLeadgoesonholiday,andtheteamshouldfeelempoweredtomakeitsownchoices.Themorejuniortheteam,themoretheTechLeadmayneedtodotoguidetechnicaldecisionsanddevelopmentpractices.Akeyskilliscommunicatingeffectively-bothinwardsandoutwards.

WhathasbeenyourbiggestchallengeasaTechLead?

IjoinedalargeprojectasadeveloperandwasquicklyaskedtobecomeTechLeadduetosomeoneleaving.Theteamwaslarge:sixorsevendeveloperpairs,thelargecodebasewasayearoldand,duetoaheavyinitialpushfordelivery,fairlymonolithic.Theteamwaslethargicfromworkinginasprawlingcodebaseforsolong,andthelargeteamsizehadreducedownershipofcodeandmadeitdifficulttocreateconsistencyincodepatternsandquality.Inaddition,therewereconcernsaboutmeetingsomecross-functionalrequirements(CFRs).DespiteblockingoutpairingdaysandtryingtocomeuptospeedwithScala,whichwasnewtome,Ifoundmyselfwithlittletimetospendonthecode,soIhadtofindalternativewaystolookattheissuesIcouldsee.LuckilyIwasworkingwithsomegreatleaddevelopers,whoknewthecodebasewell;beingabletotrustthemgavemeconfidencetolookatsomeoftheteam-wideissues.Wewereabletosplittheteamupintothreebusinessareasfairlyquickly,whichimprovedcodeownershipandteamenthusiasm.

Page 133: Talking with Tech Leads_ From N - Patrick Kua.pdf

IranaseriesofworkshopswiththebusinessandtheteamtoidentifyexactlywhatwasrequiredintermsofCFRs,andhowfarwewerefromachievingtheminthecurrentsolution,essentiallyexposingthehiddentechnicaldebtinthesystem.Welookedat‘softer’CFRssuchastestabilityandmaintainabilityaswellasmoreeasilymeasurableonessuchasperformance.Fromthiswewereabletocreateatechnologybacklog,withitemsmarkedforimpactandefforttochange.Byidentifyingimpactonbusiness,wewereabletogetthelistprioritised,andsecurecapacitytofixourmostsignificanttechnicaldebt.

Anytime-managementtips?

I’vetriedmanythings!Stickynotes,thePomodoroTechnique,mindmaps,blockingouttimeinmydiarytogivemetimeawayfromtheBAU,andidentifyingpairingdays.WhatcurrentlyworksformeischeckingmycalendarandreadingmyemailbeforeIleavethehouseinthemorning.ThisbringsmeuptodatewithanythingthatmayhavehappenedovernightoranythingthatIneedtodointheday.IletthispercolateonthejourneytoworksothatbythetimeIgettoworkIhaveaprettygoodideainmyheadofwhatIwanttoachieveintheday.ThenIwriteitdown!Sometimesonstickies,sometimesinEvernote.WheneverIdoanything,IwriteitupinEvernote.Thisletsmemoveontothenextgoalonmylist.Ihaveashockingmemory,soeverythinggetswrittendown.Icanaddtomylistintheday,asthingscomeup,butbyhavingalist,Icanseewhatgetsbumpedoffthebottomandmakesureithappensthenextday.Ifsomethinggetsbumpedtoooften,ImakeacallonwhetherIneedtodoitorcansomeoneelsedoit,orcanIbinit.Sometimestheimportanthastotakeprecedenceovertheurgent;writingitdownhelpsmeunderstandhowtocreatethatbalance.

Howdoyoustriketherightbalancebetweenwritingcodeanddealingwithotherissues?

ThisissomethingI’vebattledwithsincemyfirstTechLeadroleeightyearsago.Itiseasyonasmallteam,butgetsharderasmoredevelopersorpoliticalfactorscomeintoplay.OnmorecomplexteamsIfinditdifficulttoretainabroaderperspectiveifimmersedinastory.Ithink,atbest,thisisanareathatcanonlybemitigated.Todothiseffectively,Iaskmyself,onthisproject,whatarethebenefitsIhopetogetfrompairing,andwhatisthebestwaytorealisethem.Someusualbenefitsare:understandingthecodebase,developingskillsinjuniordevelopers,aligningdevelopmentwitharchitecturalvision,tofeelpainfirsthand.Pairingmaybethebestwaytoreapthesebenefits,butifthisisnotpossible,whatothertoolscanbeutilised?Reviewingcodechangestokeepcurrentwiththecodebase.Weeklytechreviews,anddailytechhuddlesgiveanopportunityforpairstosharetheirachievementsandconcernswiththeteam.Infact,thisgoesbacktomypreviousansweraboutwhatisimportanttoaTechLead.Thekeythingformeistomaintainaclearoverallvisionoftheprojectandnottolosesightofthatwhenrespondingtothedailyebbandflowofaproject.

Laura’skeyquestion:WhatwouldyouhavedonedifferentlythefirsttimeyousteppedintotheTechLeadrole?

IwishI’daskedformorehelp.InthefirstcoupleofprojectsIled,Itriedtodoeverythingmyself:writingcode,organisingateststrategyaswehadnoseparateQAs,andvalidating

Page 134: Talking with Tech Leads_ From N - Patrick Kua.pdf

requirementsasitwasthegoodoldwaterfalldays.Luckilytheteamwassmallandwellformed,sowewereabletodeliver.ButIwasexhausted,anditwasnotanenjoyableexperienceformeortheteam.

Itwasadesiretolearntheartofdelegationinthesecondofthesegigsthatstartedmeonmyjourneyinagile.

Laura’sbackgroundstory

LaurahasarichandvariedhistorywithabackgroundinEnglishLiteratureandEconomicsbeforetransitioningintoIT.ShehasplayedtheTechLeadroleforabouteightteamssincetheninavarietyofindustriesincludingmedia,publishing,telecommunications,defence,banking,andcharities.

Shehasastronginterestinusingagilepracticestounlockthepotentialintheteamssheworkswith.

Page 135: Talking with Tech Leads_ From N - Patrick Kua.pdf

Conclusions

WhenIstartedthisbookproject,Iwasn’tsurewhatsortofresponsespeoplewouldgive,norwasIsureiftherewouldbeanyinterestinthistopic.AsIsharedtheideawithdevelopersandpotentialinterviewcandidates,thequestionsIposedpuzzledthembecausetheycouldnotnamemanybooksthattackledtheseimportantissues.

Manypeoplecouldreeloffbooksandresourcesthatdescribedhowtowritebettercodeorhowtodesignandbuildrobustapplications.Otherpeopleknewofbooksandresourcesthattaughtgeneralleadership,communication,andmanagementtheory,butdevelopersandTechLeadsexpressedfrustrationabouttheirgenerality,lackofcontext,andnotnecessarilybeingentirelyrelevanttotheTechLeadrole.

Afterreadingthroughtheresponsesinonesitting,Iwasfascinatedbyhowfrequentlycertainthemesemergedandhowpeoplewouldreturntothesametopicstimeandtimeagain.Inthissection,IsummarisethoserecurrentthemesandhowtheyshedlightondifferentaspectstotheTechLeadrole.

LessonsLearnedbyFirst-TimeTechLeadsThetransitionfromarolewhereyouexclusivelywritecodetoonewherewritingcodeisonlyasmallpartiswhatoftentakespeoplebysurprise.HerearelessonstheFirst-TimeTechLeadstouchedupon:

Havingabroaderoutlook-Movingbeyondthethoughtsofasinglefeature,orcodeandseeingthewholebreadthoftheteamandbusiness.Sensinggreaterresponsibility-Theauthoritythatcomeswiththetitlerequiresgreateraccountability;youareaccountablenotonlyforyourdecisions,butthedecisionsandactionsofeachpersonontheteam.Guidingthetechnicalvision-Thecombinationofmoreresponsibilityandabroaderoutlookgivesrisetoconcernswhenindividualsmoveindifferentdirections.Youspendmoretimeprovidingdirectionfromatechnicalpointofview.Copingwithlesstimewritingcode-Youhavetoredefinehowyoubringvaluetotheteam.Youhavetolookathowyouenableotherstocontributequalitycodethatrequireslittlereworkanddeliverstobusinessneedsratherthantheamountofcodeorfeaturesyoudeliver.Jugglingmorecontextswitches-TheTechLeadrolechallengesyourtimeandtask-managementcapabilitiesasmorepeoplewillinterruptyouforclarification,guidance,andadvice.Burningissuesdrawyouawayfromcode-writing,soyouneedtobewareofcontributingtothecriticalpathorholdinguniqueknowledgefromtheteam.Allowingpeopletofail-Youcannotbeeverywhereatonceand,asmuchasyouwanttotellpeoplethetrapstoavoid,youhavetoacceptthatsometimespeoplelearn

Page 136: Talking with Tech Leads_ From N - Patrick Kua.pdf

bestbyfailing.Insteadyouensurefailurehasasmallimpactbyimprovingthespeedoffeedbackloops.Realisingpeopleaspectsarehard-Asadeveloper,youdealwithcomputersformostofthetime.Youcanactgrumpilyandthecomputerdoesn’treact.Yourealisethateveryoneisuniqueandsoreactsdifferentlytoyourinteractions.Suddenlyyouareresponsibleforresolvingconflictswhen,before,youcouldsilentlyslipaway.

LessonsLearnedbyPractisingTechLeadsTheseasonedTechLeadhasworkedwithseveralteams,possiblyacrossdifferentorganisations.Theircommentaryoftenrepresentswisdomgainedfrommakingmistakesandlearningfromthem,havinghadachancetoapplythoselessonsinanewcontext.ThelessonslearnedfromPractisingTechLeadsaresummarisedbelow.

People

Remainingtechnicallygrounded-Otherdevelopersrespectyoumoreifyoustillwritecodewiththeteam.Yourunderstandingoftheissuesalsoimprovesifyouhavecontactwiththecode.Findinganddevelopinggoodpeople-AsaTechLeadyouareresponsibleforhiringagreatteam.Youcannotrelyonhiringpeopleinanever-changingmarketandsoyouneedtodevelopthepeopleinyourteamandcreateanenvironmentthatencourageslearning.Listeningtotheteam-Asadeveloper,youprobablyspendmostofyourtimegivingopinions.YourTechLeadrolerequiresyoutonowlistentoalltheopinionsandfindthebestsolutionwithinthiscacophony.Appreciatingindividualstrengths-Youwillappreciateandsometimesbefrustratedbythewaypeoplebehavedifferently.Youstarttorecognisedifferentstrengthsandfindwaysandsituationswherepeople’sthesearebestapplied.

The“Tech”ofaTechLead

Guidingthetechnicalsolution-ATechLeadisresponsibleforeveryonesharingthesametechnicalvision.Youusearchitecturediagramsandwhiteboardsessionstohelpbuildasharedunderstandingwithintheteamtohelpalignpeople.Harmonisingteamdirection-Nothingismoredestructiveinadevelopmentteamthanconflictthatresolvesitselfthroughthesourcecontrolsystem,withdifferentopinionsexpressedthroughsnidecommitmessages,orbyoverwritingsomeoneelse’sstyle.ATechLeaddetectsconflictsanddifferencesindirectionandfacilitatestheteamtogetbackontrack.Managingtechnicalrisks-Softwarehassomanypotentialtrapsandsomeonemustensuretheydon’tgetforgotten.YourroleasaTechLeadistofindwaystocreatevisibilityandsharedunderstandingoftechnicalrisksandtofindwaysasagrouptoaddressthem.Takingalonger-termview-Developersaremorelikelytofocusonaverynarrowviewoftheirfeatureorcontribution.TechLeadsworrymoreabouthowthechoicesoftodaywillturnintotheproblemareasoftomorrow.

Page 137: Talking with Tech Leads_ From N - Patrick Kua.pdf

BridgingtheBusinesswithTech

Buildingtrust-Asadeveloper,youspendmostofyourtimeinthedetails,interactingwithpeoplefromotherpartsofthebusinessjustenoughtoworkoutwhatyouneedtobuildtherightfeature.AsyoumoveintotheTechLeadrole,youspendmoretimebuildingrelationshipswithkeybusinessstakeholders;becomingthe“go-to”personfromthetechnicalteam.Findingtimefortechnology-Bowingtothepressuresfromthebusinesstoaddmorefeaturesiseasy.EnsuringthatitisdoneinasustainablewayisonekeychallengethattheTechLeadbalances.Havingastrongtrustwiththebusinessmakesthispossibleandtranslatingthebenefitsofinvestingintechnologyhelpsbuildbetterunderstanding.Makingtechnologysolutionseasytounderstand-Softwareiscomplexinmanyways,filledwithterminology,constantlychangingbrandsandideas.AsanexperiencedTechLead,youknowhowtosimplifythetechnicalsolutionandcanfindanalogiesorstoriestohelpnon-technicalpeopleunderstandthetechnicallandscapeenoughtohelpthemmakebetterdecisions.Influencingplanning-Whenyouhavebuiltstrongtrustandskillinsimplifyingtechnicalideas,youwillinevitablybedrawnintomorefuture-focusedsessionsthatmightinvolvebudgetingorprojectplanning,becausepeopleseeyoursasanimportantcomponent.Youbalancethiscarefullybecausemoretimeawayfromtheteamreducesthefreshnessofyourowninformation.Championingbusinessneeds-Sometimestechnologyteamsdriftawayfromunderstandingendusersandthebusinessmodelsthatservethem.TechLeadsbringthatbiggerpicturebacktotheteam,andclarifyhowtechnicalsolutionsimpactendusers,andwhatthebusinessgoalsare.Withthisknowledge,theteamcanmakebettertrade-offsinsolution-fidelityoncetheyunderstandwhatandhowasolutionwillbeused.

You

Adaptingtonewcircumstances-Fromtheresponsesinthisbook,youcanseehowmanydiversesituationsTechLeadmayfindthemselvesinandtherichnessofskillsneededtodealwiththem.Youmustfindwaystobuildskillsyoumayneverhavehadachancetodevelopbefore.Makingyourselfredundant-Althoughyoumayfinditeasytoplaythe“HeroTechLead”whodoeseverythingontheirown,itisnotsustainableoverthelongterm,nordoesitscaletoabiggerteam.Youfocusondevelopingpeopleandfindingwaystodelegatetaskssothatyoucanspendmoretime“justbeingadeveloper”.Usingyourownstrengths-EveryonehastheirownapproachtobeingaTechLead,andwhenthrustintothisrole,youspendmoretimeintrospectingaboutwhatyoucanofferandapplyitgenerously.

FinalWordsIhopethatyouhaveenjoyedreadingthestoriesfromthepeopleinmybookasmuchasIenjoyedgatheringandreflectingonthem.Somepeople’sstoriesmayhaveresonatedmore

Page 138: Talking with Tech Leads_ From N - Patrick Kua.pdf

stronglythanothers,andifyoufindyourselfindifferentcircumstances,Iwouldencourageyoutoreadthestoriesafreshasyoumayfindthatsomeoneelse’sstoriesresonatemorethantheydidpreviously.IhopemybookhashelpedtogiveyouaclearerunderstandingofwhataTechLeadroledoes.TheTechLeadroleisverydifferentfromthatofadeveloper.Yousuddenlyhavetobalancedepthoftechnicalunderstandingwiththepeoplesideandfindtimetobuildrelationshipswiththebusiness.Youfacenewchallengesbuildingthesenewskills.Yousuddenlyfindyourselfresponsibleformorepeoplethanjustyourselfandyoudiscoverthatthereisrarelyany“right”answerwhenitcomestopeople.

Fortunately,youarenotthefirsttoembarkontakingonthisroleand,withthiscollectionofstoriesandlessonsinhand,youwillbebetterpreparedforit.

Page 139: Talking with Tech Leads_ From N - Patrick Kua.pdf

Appendix

UsefulBooksAllen,David:GettingThingsDone:TheArtofStress-FreeProductivity,PenguinBooks,2002.

Ayres,Ian:CarrotsandSticks:UnlockthePowerofIncentivestoGetThingsDone,Bantam,2010.

Beck,KentandMartinFowler:PlanningExtremeProgramming,Addison-WesleyProfessional,2000.

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

Benson,JimandTonianneDeMariaBarry:PersonalKanban:MappingWork|NavigatingLife,CreateSpaceIndependentPublishingPlatform,2011.

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

Brown,Simon:SoftwareArchitectureforDevelopers,Leanpub,2012.

Cohn,Mike:AgileEstimatingandPlanning,PrenticeHall,2005.

Derby,EstherandJohannaRothman:BehindClosedDoors: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,RalphJohnsonandJohnVlissides:DesignPatterns:ElementsofReusableObject-OrientedSoftware,Addison-WesleyProfessional,1994.

Gladwell,Malcolm:Blink:ThePowerofThinkingWithoutThinking,BackBayBooks,2007.

Gray,Dave,SunniBrownandJamesMacanufo:Gamestorming:APlaybookforInnovators,Rulebreakers,andChangemakers,O’ReillyMedia,2010.

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

Osherove,Roy:NotestoaSoftwareTeamLeader,TeamAgilePublishing,2013.

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

Page 140: Talking with Tech Leads_ From N - Patrick Kua.pdf

Patterson,Kerry,JosephGrenny,RonMcMillanandAlSwitzler:CrucialConversations:ToolsforTalkingWhenStakesAreHigh,SecondEdition,McGraw-Hill,2011.

Pink,Dan:Drive:TheSurprisingTruthAboutWhatMotivatesUs,RiverheadBooks,2011.

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

Reynolds,Garr:PresentationZen:SimpleIdeasonPresentationDesignandDelivery,NewRiders,2011.

Rosenberg,MarshallB.andArunGandhi:NonviolentCommunication:ALanguageofLife,PuddledancerPress,2003.

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

Weinberg,GeraldM.:BecomingaTechnicalLeader,DorsetHousePublishing,1986.

Weinberg,GeraldMandDanielaWeinberg:GeneralPrinciplesofSystemDesign,DorsetHousePublishing,1988.

Wilde,GeraldJ.S.:TargetRisk2:ANewPsychologyofSafetyandHealth,PdePubns,2001.

UsefulWebsitesPersonalKanban

InboxZero

GettingThingsDoneRands

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

LinuxMagazine

CommunicationsoftheACM

Page 141: Talking with Tech Leads_ From N - Patrick Kua.pdf

AbouttheAuthor

Whenthisbookwasbeingputtogether,IwasworkingasaconsultantforThoughtWorks,whereyouwouldfindmeleadingteamsandstrivingtocreategreatenvironmentswheredeveloperscouldthrive,alwaysfocusedondeliveringvaluetoendusers.Ihaveagreatinterestinbalancingthepeoplesidetosoftwaredevelopment,aswellasthechallengeandenjoymentofsolvinghardtechnicalproblems.Andyes,Istillwritecodetooandloveit.

IampassionateaboutimprovingteamsthroughtheuseofRetrospectivesandgrowingindividuals.IhavecoachedanumberofdevelopersintotheroleofbeingaTechLeadandIhopethisbookhelpsyougrowyourmasteryasaTechLeadorbetterpreparesyouforthestartofyourjourneyasaTechLead.