Hvad er en seniorudvikler, og hvordan kan jeg blive en?

At blive seniorudvikler er noget mange af os stræber efter, når vi fortsætter vores koderejse og bygger vores karriere. Men hvad betyder det egentlig at være en "senior" udvikler?

Hvad det at være seniorudvikler er ikke

Lad os få dette ud af vejen, inden vi starter. I modsætning til hvad du vil se på 95% + af jobannoncer online, er en Senior Developer ikke strengt korreleret med kun antallet af år på dit CV.

Det er rigtigt, oftere end ikke, at mange år på jobbet typisk bringer en masse erfaring med sig. Og med nogle virksomheder kan du klare dig med netop det. Men det er ikke den eneste kvalitet, der med rette beviser, at nogen er på seniorniveau.

Dette er et almindeligt problem i softwareverdenen og kan føre til høje forventninger med lav levering. Det kan også føre til konflikt inden for holdet, når din nye 15-årige 10x seniorudvikler nægter at arbejde med andre.

Så hvad kan vi gøre for at forberede os på den rolle?

Hvad gør en Senior Developer?

Når jeg ser tilbage gennem min karriere hos udviklerne på mit team, som jeg har beundret og respekteret mest, er det virkelig kommet ned til fire kvaliteter:

  • Erfaring
  • Ledelse
  • Mentorskab
  • Teknisk evne

Det er ikke godt nok at se på nogen af ​​disse som den eneste repræsentation af, hvordan nogen vil udføre på et hold. Hver udvikler er unik og kan være stærkere med en kvalitet end en anden. Men det er vigtigt at se, hvordan disse kvaliteter kommer sammen for at bestemme, hvordan nogen vil hjælpe dit team med at vokse.

Lad os nedbryde disse hver en smule.

Erfaring

Erfaringer betragtes typisk som år på jobbet, og selvom det ikke er helt unøjagtigt, fortæller det ikke hele historien.

Ligesom hver udvikler er unik, så er deres oplevelse også. Mens en udvikler måske har brugt fem år i en intensiv position, hvor de arbejdede med at løse hårde tekniske udfordringer hver dag. Og en anden kunne have sparket deres fødder op i en lokal butik, hvor deres eneste ansvar var at opdatere hjemmesiden hver uge.

Og det er ikke nødvendigvis en dårlig ting! Vi har hver deres rejse og har brug for at afbalancere vores liv, så de passer til det. Men det er ikke realistisk at sige, at de fem år var de samme.

Hvad betyder oplevelse så egentlig?

Genkendelse af mønstre fra tidligere arbejde

Hver udvikler har en historie (uanset om de husker det eller ej) om en tilfældig fejl, de snuble i gennem deres udviklingserfaring. Dette kan være noget, der beskæftiger sig med Javascript, webpack eller endda dit operativsystem, og det giver bare ingen mening!

Men hvad enten det er gennem en peer eller ved at søge på Google, finder du ud af det. Og tre måneder senere, når du arbejder på et andet projekt og løber ind i det samme, behøver du ikke engang at Google det, eller du ved allerede, hvad du skal Google. Du ved allerede, hvad problemet er, og kan hurtigt komme forbi det og komme videre.

Dette er den slags oplevelse, der gør en forskel. At være i stand til at genkende mønstre, hvad enten det er på grund af en fejl, eller fordi det var super vellykket, er det, der hjælper hver enkelt af os med at vokse. Dette er de oplevelser, der hjælper et team med at vokse, når andre sidder fast, og du kan få dem ud af et bind.

At genkende, hvad du ikke ved

Det er også vigtigt at forstå, hvad du ikke ved. Jeg tror, ​​at en del af det, der bidrager til min egen personlige kamp med bedragerisyndrom, er at jo mere jeg lærer, jo mere indser jeg, at jeg ikke ved det.

Men dette skal ikke betragtes som en dårlig eller skræmmende ting. Dette skal være inspirerende. Det betyder, at dit håndværk, som du har arbejdet med, har så meget mere seje ting at udforske!

Junior udviklere:

"Jeg har ingen idé om, hvordan jeg løser dette ene problem; jeg bliver aldrig god, hvis jeg bare fortsætter med at google for svaret"

Seniorudviklere:

(46 faner åbner for Google og StackOverflow for et problem)

- David K.? (@DavidKPiano) 29. april 2020

Det er vigtigt at indse, hvordan dette påvirker dit arbejde og resten af ​​teamet. For eksempel hjælper det ingen, hvis du handler som om du ved alt og forpligter dig til enorme mængder arbejde. Når du forpligter dig til det arbejde og faktisk ikke forstår det, kan det slå din sprint ud af sporet, hvilket kan frustrere hele teamet (og klienten).

Uanset om det er når du planlægger eller under udvikling, skal du ikke være bange for at bede om hjælp. Kom op for luft og kast dine hænder op! Bare fordi du er den eneste seniorudvikler, betyder det ikke, at du ikke kan lære noget af et Junior-teammedlem.

Prøv at se godt på, hvor du har været, hvad du forstår, og hvor du kan få gavn af at grave mere ind.

Ledelse

Som seniormedlem i et team forventer jeg, at en udvikler har en naturlig tendens til at lede. Selvom dette ikke betyder, at du skal være en faktisk teknisk leder på et projekt eller tage nogen af ​​de endelige beslutninger, betyder det dog, at du skal have et grundlæggende niveau for at kunne hjælpe med at skubbe projektet fremad

Forståelse af det større billede

Hvis du har arbejdet på projekter med teammedlemmer, skal du vide, at hvert projekt eller funktion typisk kommer med en masse historier at arbejde igennem for at få det gjort. Hver historie skal være et fokuseret stykke, der hjælper med at nå et større mål.

Hvor dette bliver udfordrende, er hvis ingen på holdet forstår, hvordan hver af disse historier hjælper med at nå det større mål. Som seniorudvikler skal du kunne se, hvordan hvert stykke passer ind i puslespillet, og hvorfor historien er skrevet med de specifikke acceptkriterier. Og hvis du ikke ved det, ved du, hvordan du får svarene og sørger for, at det kommunikeres til teamet.

Hvis du er usikker på retningen, så prøv at tage et skridt tilbage. Prøv at se, hvor det passer ind. Hjælp med at lede projektteamet til det ultimative mål.

Hjælper direkte mindre erfarne teammedlemmer

Dette kommer naturligt i evnen til at hjælpe dem, der er mere junior eller mindre erfarne på vores team. Det er almindeligt, at udviklere mister fokus på det store billede. Men som vi netop diskuterede, skal en Senior Developer være i stand til kontinuerligt at have en god idé om det samlede projekt, og hvor de forskellige historier passer ind i det større episke.

Hjælp med at guide andre på dit team for at få dem på den rigtige vej. Selvom det ville være en fordel for alle at forstå, hvordan alt passer ind i det større billede, er det nogle gange mere fornuftigt at hjælpe en person med at fokusere på, hvordan deres specifikke opgave passer ind.

Prøv at genkende denne kamp, ​​når du arbejder med andre, enten ved at tilskynde dem til at stille flere spørgsmål eller hjælpe med at guide dem, hvis de ikke er helt på den rette vej, når du gennemgår deres kode.

Mentorskab

Det er ofte mere bekvemt at være nede på dit arbejde og ikke behøver at bekymre sig om, hvad nogen anden laver, men er det virkelig til gavn for nogen?

Hjælper med at opbygge andre teammedlemmer

Du er muligvis den såkaldte 10x-udvikler, men at gøre alt selv og ikke hjælpe andre kan kun bremse det samlede team. Ofte sidder du fast og henter de brikker, som du let kunne have fanget, hvis du brugte et ekstra sekund på at parre med en anden på dit hold.

Det er også dårligt for moral. Ingen ønsker at føle sig alene på et projekt og endnu mere som junior. Software er en stor skræmmende verden, en lille vejledning kan gå langt for at hjælpe andre med at blive mere produktive og efterfølgende opmuntre til et lykkeligere, mindre stressende miljø.

Det er let at glemme, at vi alle sammen var juniorholdere på én gang. Mens du måske tager tingene for givet, kan begreberne virkelig være udfordrende for andre at forstå.

Husk, at vi alle er sammen om det. Fejr gevinsterne, hvad enten de er store eller små. Hvis nogen kæmper, skal du række ud for at hjælpe.

Videndeling

At dele viden er noget, mange hold kæmper med. Mens vi alle normalt er håbefulde på, at der er en måde at opnå det på, går det for det meste bare uløst. Så hvad kan vi gøre?

Tag det på dig selv at dele det, du ved. Omarbejdede du netop kerneforretningslogikken? Tilby 30 minutter til at gå alle gennem koden. Par og skærmdeling med din kodevurderer, hvis de har svært ved at forstå det.

Dette er noget, vi kan opmuntre alle til at gøre. Du lærer naturligvis mere ved at præsentere dit arbejde ved at forstærke det, du lige har arbejdet med. Dette er nyttigt, uanset om du er senior, eller det er første gang du åbner en kodeditor.

Teknisk evne

Jeg ønskede bevidst at lade dette være indtil slutningen. Dette skyldes, at selvom det er vigtigt, er der flere aspekter af din rejse til at blive seniorudvikler end bare at være rigtig, rigtig god til noget.

Evne til at komme hurtigt i bevægelse

Som seniorudvikler forventer jeg, at en anden seniorudvikler bliver produktiv i noget hurtigere end en juniorudvikler. Hvis de er eksperter med Javascript, forventer jeg, at de forstår sprogets grundlæggende principper og mønstre.

Men tilbage til ideen om at genkende, hvad du ikke ved, er det ikke rimeligt at forvente, at alle seniorudviklere ved alt. Jeg ville ikke betragte en ekspert i Ruby som en Senior Developer, fordi de ikke kender Javascript, men jeg forventer, at de forstår, hvordan de anvender det, de ved, når de bygger ind og lærer et andet sprog.

Fremme af softwaremønstre

Oftere end ikke er det kodemønster, du lige kom op med, ikke nyt. Og det er okay! Målet med at oprette fantastisk software er ikke nødvendigvis at være unik med enhver løsning.

Og på grund af dette kan vi lære af tidligere arbejde ved at se, hvad der er lykkedes, og hvad der måske ikke er gået så godt at finde mønstre, der fungerer for dig og dit team.

Mønstre som MVC (Model View Controller) blev ikke populære uden grund. Udviklere lærte af fortiden og har lært af deres jævnaldrende, der har løst store softwareudfordringer. Med den viden kan de anvende løsningerne på deres eget arbejde. Det handler ikke om at genopfinde hjulet, det handler om at løse udfordringer og skabe et godt produkt.

Vi har alle vores egne unikke rejser fremad

Uanset hvad nogen fortæller dig, har vi alle vores egne unikke koderejser. Dette er ment til at opmuntre dig og inspirere dig til at blive en bedre samlet udvikler og forstå, hvordan dit arbejde påvirker resten af ​​teamet.

Selvom du helt sikkert måske lykkes uden at tage disse ting i betragtning, kan du gå glip af kerneegenskaber, der kan få folk til ikke at arbejde sammen med dig fra et menneskeperspektiv.

Uanset din rejse skal du huske disse ting, når du vokser til at blive en bedre udvikler!

Hvad synes du er en god seniorudvikler?

Tror du, jeg er spot on eller på vej væk? Del med mig på Twitter!

Følg mig for mere Javascript, UX og andre interessante ting!

  • ? Følg mig på Twitter
  • ? ️ Abonner på min Youtube
  • ✉️ Tilmeld dig mit nyhedsbrev