talking with tech leads_ from n - patrick kua.pdf
Post on 04-Jan-2016
238 Views
Preview:
TRANSCRIPT
TalkingwithTechLeads
FromNovicestoPractitioners
PatrickKua
Thisbookisforsaleathttp://leanpub.com/talking-with-tech-leads
Thisversionwaspublishedon2014-12-05
*****
ThisisaLeanpubbook.LeanpubempowersauthorsandpublisherswiththeLeanPublishingprocess.LeanPublishingistheactofpublishinganin-progressebookusinglightweighttoolsandmanyiterationstogetreaderfeedback,pivotuntilyouhavetherightbookandbuildtractiononceyoudo.
*****
©2013-2014PatrickKua
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
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
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.
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.
Iexpect,likemostsoftwarepeople,ordinarilyIreadtechnicalworksmuchmorethanIreadexperiencereports.“TalkingwithTechLeads”hashelpedmeredresssomeofthatbalanceandthinkthroughwhatitmeanstoleadsoftwareteamsintheearly21stcentury.ForthatIamgratefultoPatrickandIhopeyou’llfeelthatthebookwillhelpyoutoreflectupon,andaddress,yourchallengesandaspirationsaroundtechnicalleadershiptoo.
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.
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.
Testimonials
“IwishIhadreadthisbookfiveyearsago.ItchangedthewayIworkedthedayafterIreadit.IwouldrecommendittoanyneworaspiringTechLead.”
–DavidMorgantini,TechLead,UKGovernmentDigitalService
“Reading‘TalkingwithTechLeads’islikegoingtoaconferenceandwatchingagreatpaneldiscussiononleadingteams.”
“ThisbookhasmademerethinkmypositionandthewayIworkwithmydirectreports.”
–NickMalnick,TechLead,DRWTradingGroup
“Iliketheevolutionofadvice,commentsandinterviewsandincreasingdepthandcomplexitygeneratedbythebookstructure.”
–HugoCorbucci,TechLead,ThoughtWorks
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.”
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
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.
3. BridgingBusinesswithTech–Highlightsadifferentperspectiveandmoreoutward-lookingfocus.
4. You–Containsresponsesthatrelatetoyou,asanindividual,intheroleofaTechLead.
Ihaveattemptedtobreakdowntheresponsesintothesedifferentthemes,addinginsomeofmyownexperiencesandobservationsaboutwhatemergedintheresponses.IhopethethemesenableyoutogetunderstandandnavigatethevariousdimensionsoftheTechLeadroleandhopefullytheywillmakeiteasierforyoutoreferbacktointhefuture.
Thenextpageshowsawordcloudbasedontheresponsesinthisbook.Thewordcloudcontainskeywordsthatrecurfrequentlyandhighlightsfurtherthemesthatemergedfromtheinterviews.Youmaynoticethatsomeofthewordsinlargetypecorrespondwiththeoverallthemesthatemerged,includingfrequentuseoftheword“people”aswellasthinkingabout“code”.
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
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.
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
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.
Youareapersontoo,andasaTechLeadyoumustbeawareofyourownmoodandemotions.Theteamwillwatch,observe,andjudgeeverywordyouutterandeveryactionyoumake,whetherornotyoulikeitorwantit.Youneedtoconsideryourchoiceofwordsandactionscarefullyaspeoplecanquicklymisreadandmisinterpretwhatyouintend.
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?
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.
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.
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!
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.
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
severalyears.Althoughshedidn’thaveabackgroundin.Nettechnologies,shewonherteamoverwiththreemonthsoffocusedself-studyandresearch.
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.
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.
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
Lizstartedhercareerwitharadicallydifferentbackground,firstlygraduatingfromUniversityasanaerospaceengineerfromtheRoyalMelbourneInstituteofTechnology.Sheworkedforacoupleofdifferentaerospacecompanieswhichfirstbroughtherintocontactwithsoftwareengineersandshelearnedaboutbuildscripts,unittestsandothersoftwaredevelopmentpractices.
ShejoinedThoughtWorksasadeveloperandhasworkedinseveralcountrieswithdifferentteamsandroles.Inhercurrentrole(atthetimeofthisinterview)sheplaysboththeroleofTechLeadandClientPrincipalinbuildingareplacementandrefreshofaclient’sonlinepresence.
Editor’snote:TheClientPrincipalisresponsibleforbuildingandmaintainingrelationshipswithcustomers.
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.
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
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
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.
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.
“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.
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.
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.
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
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.
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
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.
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.
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.
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
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.
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.
Fortechnicalaudiencesyouneedtoknowwhatyouaretalkingabout;youcannotfakeit,aspeoplecantell.Itisimportanttosummarisedetailandachieveconsensusamongstthegroup.Fornon-technicalaudiencesyouneedtotranslatetheeffortinvolvedindifferentapproachesandtrade-offstogainsupportforarchitecturalchoicesandspendingtimeontechnicalactivitiessuchaseffortinreducingtechnicaldebt.
Alison’sbackgroundstory
AlisonhasworkedasTechLeadfortheCommercialteamatREAGroupfortwoyears.ShestartedworkingintheITindustryaftergraduatingfromRMITUniversityinMelbourne,Australia.Forthelasttenyearsshehasworkedacrossmanyindustriessuchasgaming,superannuation,defence,andinsurance.
Shehasleadtechnicalteamsonandoffoverthelastsixyearsdependingontheconsultingengagement.HercoredevelopmentexperienceswereinJava/J2EEandmorerecentlyshehasbeendevelopingwithRubyandassociatedwebframeworks.
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.
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
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.
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?
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.
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
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
helpofdancingandlotsofcider.In18years,hehasseenenvironmentsofalltypesfromsmallstart-upstoalargeC++productcompany.
Hehasleadteamsonseveraloccasionsandnowrecogniseswhatisimportant:relyingonastronggoal,themeanstogetthereandworkingwithpeoplewillingtolearn.
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
leadteamssince2003ineverythingfromprojectsinvolvinghardwaretohigh-trafficwebsites.
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
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.
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.
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.
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
toopensourcesoftwareandhasmostrecentlyfoundapassionforusingClojuretosolveproblems.
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
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.
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.
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
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.
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.
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.
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
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.
Ireceivedminimaltraininginmyengineeringdegree,butIhavebeenfortunatetohaveworkedwithsomegreatpeopleinmycareer.
Glen’sbackgroundstory
GlenhasworkedinITfor20yearsaftergraduatingwithadegreeinelectronicengineering.Hehasleadaboutseventeamssince2000,movingbetweenleadershipandarchitecturalroles.
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:
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.
IntheearliersectiononNovices,newTechLeadssuddenlybecameawareforthefirsttimeoftheimpactadesigndecisioncouldhaveondeployment,architecture,andthelong-termmaintainabilityofthesystem.WhatmaybesimpleforadevelopercouldmakerunningthesoftwareinproductionmoredifficultandaTechLeadneedstobeawareofwhomightbeaffectedbythatchoice,particularlyiftheysitoutsideoftheteam.
ATechLeadbecomesparticularlyconcernedifachoicetodaymakesitmoredifficulttochangeoraddtothesystemtomorrow.TheTechLeadfindsopportunitiestosafelyexposeadevelopertothisbroaderviewtogrowthedeveloper’sawarenessoftheimpactanindividualdecisionmighthaveonthefuture.
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?
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.
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
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,
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.
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
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.
Mark’sbackgroundstory
MarkistheTechnicalArchitectforTraderMedia(AutoTrader)andhasworkedasadeveloperforeightyears.HehasworkedasaTechLeadforthelastfouryearscurrentlywithateamof16developersonalong-termproject.
Hisinterestsincludesystemdesign,datavisualisation,monitoringandresilience,andsoftwarequality,althoughheisparticularlyinterestedincodecraftsmanshipandtheacademicaspectsoflanguageandcomputing.
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.
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.
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.
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.
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
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
thecruxofaproblem,functionalarea,orapplicationandsimplyglossoverthesurface,focusingon“what”itis.IthinkthefactthatIoftenwanttoknowtherootcauseofwhyaproblemhasoccurredhashelpedmebecomeaTechLead,asIammoreabletoanswerthedifficultquestionsofwhetherwecandosomethingorwhatislikelytohappenifwedoit.Ifyoudon’tlookat“why”aswellas“what”,youcannotreallygettothatlevelofunderstanding.Thissameapproachisalsoapplicabletotheproblem-solvingImentionedbeforeandpartofwhatIshared.
Christy’sbackgroundstory
Christy’sskillsinanalysis,code,andresolvingproblemsmadeheraperfectfitfortheTechLeadrole,whichshehasplayedwithFortune500companiesforthepast27years.
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.
Thereareacoupleofstrategiestoachievethis:
Ensuretheteamisawareofthebreadthanddepthofataskwhileitisbeingplanned.Anyassumptionsforthestoriesshouldbeincludedinthedetailofthestory,butcanbeflexible,basedontechnicalcommonsenseandbusinessneeds-allpartiesbeinginagreement,ofcourse.Whenataskisstarted,holdawhiteboardsessionwheretheteambrainstormsdifferentideasandsolutionssothateveryoneknowshowtomoveforwardwiththework.
Chris’sbackgroundstory
Chrishasbeenworkinginsoftwaredevelopmentfor12yearsandfirstactedasaTechLeadin2007.HemovedintohiscurrentTechLeadroleinthepastyearandmostofhisworkiswith.NetwebtechnologiessuchasMVC4.
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.
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
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.
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.
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
teamtodevelopalternativesolutionsengagesthemandcreatesastrongsenseofownership.Doingitallyourselfintroducestheriskofyoubecomingthebottleneckandasinglepointoffailure.
Luca’sbackgroundstory
Lucahasleadaboutsixteamsinhis12yearsworkingwithtechnology.HiscurrentroleisactingasaSeniorSoftwareEngineeratuSwitch.BeforethatLucaspentfouryearsatThoughtWorksasaTechLead.
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.
Robert’sbackgroundstory
RoberthasworkedinITsince1995.Mostofhisworkhasbeenwithbackendsystemswithlargesetsofdatabeforetheterm“bigdata”becametrendy.Inthattimehehasplayedvariousroles,includingaTechLeadforanumberofteams.Hismostrecentexperiencewasworkingina“frontoffice”roleforafinancialinstitutewherehefindstherolemorereactive.
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
Jasonhasbeendoingthissince1995andhasbeenaroundcomputerssince1982.HehasplayedtheTechLeadroleafewtimesatdifferentorganisationswithbothlocalandremoteteamsoverthecourseofaboutnineyears.Hisinterestsarevaried,butwhenworkallowshelikestoworkonremodellinghishouseaswellasreadingandkeepingupwithdifferenttechnologiesandseeingwhatisoutthereintherealmsoftechnology.
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
tothemandlettingthemmakemistakes.
Cory’ssecondquestion:Howdoyoulearn,growandkeepupwithnewtechnology?
Ithinkoneofthebigideasbehindthecraftsmanshipmovementisthatyouasanindividualareresponsibleforyourgrowth-notyouremployer,notyourleadsoryourmanagers.Ifinditisimportanttotaketimetoinvestinyourself.Dosomereading.Attendorpresentatconferences.Participateinusergroups.Alloftheseactivitieshelppreventyoubecomingstagnant.
Cory’sbackgroundstory
Coryisatechnologistandchangeagent.Helovessoftwaredevelopmentandispassionateaboutgrowingorganisations.Hehasworkedwithsoftwareforthepast15years,workingandspeakingwithteamsallovertheglobe.
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
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
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
UniversityofWisconsin,OshkoshandaftergraduatingwentontoworkforaUSBankasasoftwaredeveloper,wherehelearnedasmuchashecouldaboutusercases,agilemethodologies.HethenmovedtoThoughtWorks,wherehelearnedaboutagileprojectmanagementanddevelopmentpractices.
HehasbeenaTechLeadforaboutfiveyears.
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:
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.
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
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.
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
anti-spamsoftware;asaTechLeadforrealestate.com.auinMelbourne,Australia,andiscurrentlyanengineeringmanageratEtsyinNewYork.Hehasbeenbuildingandmanagingteamsforaboutsevenyearsandhasrealisedthathepreferstoworkwithsmallteamsonhighlyfocusedgoals.
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.
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.
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
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
sometimelater-formeitwasaboutamonth-youjustgethit.Itislikeseeingthematrix.Ihopeothershaveasimilarexperience.
Joel’sbackgroundstory
JoelcurrentworksastheTechLeadforSolutionsArchitectsforJBossNorthAmerica.HehaspreviouslyspenttimeasanagileconsultantandXPcoachforVersionOneandasaTechLead,managerandarchitectattheChicagoMercantileExchange.
Joel’sapproachasaTechLeadhasevolvedfrom“leadingbyexample”to“leadingfrombehind”.Hiscurrentapproachinvolvesmoreobservingandaidingthreatening,challengingorquestioningandfeelshisapproachmakeshimmoreawareasaTechLead.
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
havetoallowpeopletofail(inasafemanner)sotheycanfeelthetensionofforcesonehastobalanceincraftingasolution.Dan’sbackgroundstory
DanhasbeeninITfornearly18years,workinginalldimensions,fromsupport,networksandinfrastructure,qualityassurance,technicalsales,consultancyandsoftwaredevelopmentthatspansover50differentclientsindifferentindustries.
HehasplayedtheTechLeadrolemostrecentlyinthelastsevenyearsforabouttendifferentteams.Helovesfindingthesimpleinthecomplex.WhenDanisnotwritingcode,heenjoysmusic,filmsandbooksinadditiontoalittlebitofrockclimbing.
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.
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
requirementsasitwasthegoodoldwaterfalldays.Luckilytheteamwassmallandwellformed,sowewereabletodeliver.ButIwasexhausted,anditwasnotanenjoyableexperienceformeortheteam.
Itwasadesiretolearntheartofdelegationinthesecondofthesegigsthatstartedmeonmyjourneyinagile.
Laura’sbackgroundstory
LaurahasarichandvariedhistorywithabackgroundinEnglishLiteratureandEconomicsbeforetransitioningintoIT.ShehasplayedtheTechLeadroleforabouteightteamssincetheninavarietyofindustriesincludingmedia,publishing,telecommunications,defence,banking,andcharities.
Shehasastronginterestinusingagilepracticestounlockthepotentialintheteamssheworkswith.
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
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.
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
stronglythanothers,andifyoufindyourselfindifferentcircumstances,Iwouldencourageyoutoreadthestoriesafreshasyoumayfindthatsomeoneelse’sstoriesresonatemorethantheydidpreviously.IhopemybookhashelpedtogiveyouaclearerunderstandingofwhataTechLeadroledoes.TheTechLeadroleisverydifferentfromthatofadeveloper.Yousuddenlyhavetobalancedepthoftechnicalunderstandingwiththepeoplesideandfindtimetobuildrelationshipswiththebusiness.Youfacenewchallengesbuildingthesenewskills.Yousuddenlyfindyourselfresponsibleformorepeoplethanjustyourselfandyoudiscoverthatthereisrarelyany“right”answerwhenitcomestopeople.
Fortunately,youarenotthefirsttoembarkontakingonthisroleand,withthiscollectionofstoriesandlessonsinhand,youwillbebetterpreparedforit.
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.
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
AbouttheAuthor
Whenthisbookwasbeingputtogether,IwasworkingasaconsultantforThoughtWorks,whereyouwouldfindmeleadingteamsandstrivingtocreategreatenvironmentswheredeveloperscouldthrive,alwaysfocusedondeliveringvaluetoendusers.Ihaveagreatinterestinbalancingthepeoplesidetosoftwaredevelopment,aswellasthechallengeandenjoymentofsolvinghardtechnicalproblems.Andyes,Istillwritecodetooandloveit.
IampassionateaboutimprovingteamsthroughtheuseofRetrospectivesandgrowingindividuals.IhavecoachedanumberofdevelopersintotheroleofbeingaTechLeadandIhopethisbookhelpsyougrowyourmasteryasaTechLeadorbetterpreparesyouforthestartofyourjourneyasaTechLead.
top related