De full-stack mythe

Koen Kivits

Een aantal jaar geleden was het web nog een stuk eenvoudiger. We gebruikten HTML en CSS om onze websites te maken, met eventueel wat JavaScript om het geheel een beetje schwung te geven. Had je dynamische content, dan maakte je een back-end in bijvoorbeeld PHP met eventueel een MySQL-database erachter. Als web developer was het niet ongewoon om op deze manier van voor tot achter met een website bezig te zijn.

Maar de tijd heeft niet stil gestaan. Onze computers werden beter, onze browsers werden beter en onze tools werden beter. Niet alleen de techniek is veranderd, vooral ook de rol ervan. Het web heeft heeft een centrale plek in de maatschappij gekregen - tot het punt dat we bijna allemaal altijd en overal verbonden zijn - waardoor we hogere eisen stellen aan toegankelijkheid, gebruiksvriendelijkheid, en veiligheid.

Ons werk is complexer geworden en er wordt meer van ons verwacht. Ieder aspect van het werk is nu een volwaardig expertisegebied geworden. Waar we eerst web developers waren, zijn we nu UX developers, accessibility experts, back-end engineers, DevOps engineers, ga zo maar door. Het is simpelweg niet meer realistisch om van iemand te verwachten om alle kneepjes van web development te beheersen. En toch zijn er talloze developers - waaronder ikzelf - die zichzelf 'full-stack' noemen en zijn er vele vacatures die erom vragen. Hoe zit dat dan?

Wat betekent full-stack?

Een full-stack developer is een jack of all trades en daarmee tegelijk doorgaans ook een master of none. Full-stack is een bewuste keuze om niet te specialiseren, of juist te specialiseren in niet-gespecialiseerd zijn. Als full-stacker ben je breed inzetbaar en kun je systemen in principe van voor tot achter ontwikkelen. In plaats van dieptekennis van één of enkele technieken zorg je dat je kennis hebt van wat er op dat moment nodig is. Is er een tijdje meer behoefte aan front-endwerk dan ben je een tijdje vooral front-ender, ligt er meer back-endwerk dan ben je even back-ender. Een voordeel dat je ook hebt is dat je als een soort 'lijmlaag' kan dienen binnen een team: je kunt eenvoudiger communiceren met verschillende gespecialiseerde developers omdat je een basis deelt.

Die afwisseling is alleen niet gratis. Omdat je je aandacht verdeelt over verschillende onderwerpen zul je niet zo productief zijn als een specialist in het gebied, óf je moet concessies doen op kwaliteit. Uiteindelijk is full-stack niets meer dan een compromis tussen kwaliteit en productiviteit aan de ene kant en flexibiliteit aan de andere. En dat laatste wil nog weleens over het hoofd gezien worden. Er heerst bij werkgevers vaak nog de mythe dat je developers kunt vinden die alles kunnen. Vacatures vragen regelmatig om developers die zowel front- als back-end beheersen, want waarom zou je meerdere specialisten inhuren als je ook developers in kunt schakelen die gewoon alles kunnen? Het scheelt gewoon gedoe. Wat ook niet helpt is dat front-end op sommige plekken nog steeds een ondergeschoven kindje is, iets 'voor erbij'.

Een full-stack developer is niet beter dan een gespecialiseerde developer, en vice versa. Vraag je jezelf af wat voor jou de beste keus is, dan is het enige korte antwoord daarop: It Depends™. Het hangt van de situatie af.

De juiste keuze

Voor developers hangt die keuze op dit moment vooral af van persoonlijke voorkeur. We zitten voorlopig nog in een situatie dat er aan vacatures geen tekort is, dus écht verkeerd kun je niet gaan. In alle gevallen moet je zorgen dat zorgen dat je de fundamentele bouwstenen van je vakgebied beheerst. Frameworks en libraries komen en gaan, maar talen en protocollen, bijvoorbeeld HTML, CSS en HTTP, zijn here to stay en geven in alle gevallen een stabiele basis om op voort te borduren. Als full-stacker moet je meer fundamentals beheersen, als gespecialiseerde developer bouw je er vooral meer op.

Kies je ervoor om full-stack developer te zijn of te worden? Weet dat je niets weet: accepteer dat ieder onderdeel van je werk een complex en dynamisch vakgebied is en dat je nooit alles kunt bijhouden. Denk je daar anders over, dan is dat waarschijnlijk dunning-kruger in actie. Er hoeft echter ook niet van je verwacht te worden dat je alles meteen kan en de sleutel tot succes is vooral het kunnen focussen op wat er op dat moment qua skillset nodig is.

Ben je werkgever en zoek je naar nieuwe developers? Zoek dan niet automatisch naar full-stack developers omdat dat het makkelijkst lijkt. Wees je bewust van de voor- en nadelen en besluit op basis van wat jij specifiek nodig hebt. Als klein team met onvoorspelbaar werk kun je waarschijnlijk het beste uit de voeten met developers met bredere kennis. Heb je een groter team of is je werklast voorspelbaarder dan heb je waarschijnlijk het meeste aan meer gespecialiseerde ontwikkelaars. Weet je nog niet helemaal wat je nodig hebt, probeer dáár dan eerst achter te komen voordat je een full-stack vacature uitzet waarmee je gespecialiseerdere developers vaak buiten de deur houdt.

Balans

De laatste jaren is 'full-stack' binnen de front-endwereld bijna een vies woord geworden, een symbool voor hoe front-end onderschat wordt en voor onrealistische verwachtingen in vacatures. Dat is jammer, want ik denk dat zowel full-stack als meer gespecialiseerde developers een enorme toegevoegde waarde hebben op het web. Persoonlijk haal ik mijn voldoening uit de afwisseling, maar tegelijk werk ik het liefst samen met experts omdat we daardoor veel van elkaar kunnen leren. Uiteindelijk is het vooral belangrijk om hier een balans in te vinden, want daar zal ons werk alleen maar beter van worden.

Over Koen Foto van koen Koen Kivits is een full-stack web developer in Eindhoven. Hij hobbyt op zijn Github, tweet op zijn Twitter en blogt op zijn website. Koens donatie gaat naar Bits of Freedom.)