Full stack development is een populair onderwerp. Zo struikel je over de vacatures waarin een full stack developer wordt gevraagd. Dit is iemand die kennis heeft over alle aspecten van softwareontwikkeling, inclusief de onderliggende infrastructuur.
Denk hierbij aan de netwerkcomponenten, de benodigde rekenkracht en eventuele databases, maar ook aan de beveiliging hiervan. Maar kan dat eigenlijk wel? Kan zo’n alleskunner over al deze onderwerpen over voldoende kennis beschikken? Of is development daarvoor simpelweg te complex?
Wat is een full stack development?
Een full stack developer is een term die ontwikkelaars met een brede kennis en takenpakket beschrijft. Zij houden zich bezig met de volledige ‘stack’ van softwareontwikkeling. Gerelateerde taken lopen sterk uiteen en variëren van het ontwikkelen van softwareapplicaties tot het ontwerpen van de front-end of monitoren van uitgerolde software. Denk echter ook aan het bouwen van databases, implementeren van API’s, beveiligen van systemen en reviewen van code geschreven door andere software engineers.
Bestaat een full stack developer in de praktijk?
Maar bestaat zo’n full stack developer in de praktijk eigenlijk wel? De meningen hierover lopen sterk uiteen. Zo stellen sommigen dat de titel full stack developer in feite een lege claim is. Iedere developer heeft volgens hen kennis nodig van de database, het besturingssysteem (de back-end) en de gebruikersinterface (de front-end). Zij wijzen erop dat ook in andere beroepsvelden professionals niet melden ‘full stack’ te zijn. Heb jij bijvoorbeeld weleens gehoord van een full stack brandweerman? Of een full stacks arts?
Wil je eens met True van gedachten wisselen hoe wij de externe, flexibele schil buiten jouw applicatieteam kunnen zijn? Bekijk het aanbod van managed services van True en neem contact met ons op.
Anderen erkennen juist de toegevoegde waarde van full stack developers. Zo worden deze ontwikkelaars gezien als een soort ‘duizendpoten’, die van een breed scala aan technologieën kennis in huis hebben. Zij kunnen hierdoor bij projecten veel toegevoegde waarde leveren. Bijvoorbeeld door het identificeren van mogelijkheden, kansen en uitdagingen gerelateerd aan technologieën en programmeertalen die voor het project worden overwogen.
Deze tweede groep erkent in veel gevallen overigens wel de beperkingen van full stack developers. Zo is het aanbod aan databases, besturingssystemen, gebruikersinterfaces en gerelateerde technologieën zeer divers. Full stack developers hebben dan ook een brede kennis nodig om met alle relevante technologieën aan de slag te kunnen. Zij hebben dan ook slechts een beperkte kennis van deze technologieën en zijn hierin geen experts.
Wat zijn de voordelen van full stack development?
Full stack development biedt voordelen. Doordat ontwikkelaars over meer technieken kennis hebben, kunnen zij meer onderdelen van een softwareproject oppakken. Ook hebben zij een breder zicht op het project en kunnen zij dit overzicht gebruiken voor het in goede banen leiden van het project. Bijvoorbeeld door het vroegtijdig identificeren van mogelijkheden of juist uitdagingen en het op elkaar afstemmen van verschillende onderdelen van het project.
Ook kan een full stack developer dankzij zijn uitgebreide kennis andere teamleden ondersteunen. Doordat zij sneller op weg worden geholpen kan dit zowel tijd als geld besparen. Ook voor kleine bedrijven kunnen full stack developers uitkomst bieden. Zo beschikken kleinere bedrijven vaak over een relatief beperkt budget voor softwareontwikkeling. Een full stack developer kan dankzij diens brede kennis al snel een klein team met gespecialiseerde ontwikkelaars vervangen, ondanks dat zijn of haar kennis wellicht beperkter is.
Full stack kent ook nadelen
Tegelijkertijd kent full stack development ook nadelen. Zo beschikt een full stack developer over een zeer brede kennis en zijn niet gespecialiseerd in een specifieke programmeertaal, raamwerk of library. Dit brengt uitdagingen met zich mee. Zo kunnen zelfs eenvoudige functies in verschillende programmeertalen volledig anders zijn vormgegeven. Full stack developers moeten dan ook vaker teruggrijpen naar handleidingen dan gespecialiseerde ontwikkelaars, wat extra tijd kost.
“Een alternatief voor full stack developers zijn gespecialiseerde ontwikkelaars.”
Bijblijven bij alle ontwikkelingen in de markt kan voor full stack developers eveneens een uitdaging zijn. De ontwikkelingen volgen elkaar immers razendsnel op, terwijl een full stack developer over een breed aantal onderwerpen kennis nodig heeft. Dit wordt verder bemoeilijkt door hun brede takenpakket, wat een (over)volle agenda kan opleveren en de beschikbare tijd voor bijleren beperkt.
Full stack of gespecialiseerde ontwikkelaars
Een alternatief voor full stack developers zijn gespecialiseerde ontwikkelaars. Zij spitsen zich volledig toe op bijvoorbeeld een specifieke programmeertaal en zijn op dit vlak experts. De specialisten weten van de hoed en de rand, en zijn volledig op de hoogte van de laatste ontwikkelingen. Ook hebben zij vanuit eerdere projecten in veel gevallen ervaring met vergelijkbare ontwikkelingen. Niet alleen komt dit hun productiviteit ten goede, ook kunnen de ontwikkelaars je hierdoor vroegtijdig wijzen op eventuele uitdagingen die zij op hun pad zien verschijnen.
Krapte op de arbeidsmarkt
De vraag naar ontwikkelaars is daarnaast groot, terwijl het aanbod tegelijkertijd beperkt is.
Hoewel je wellicht een gespecialiseerde Java-developer wilt inschakelen, kan het vinden van deze expert in de praktijk een uitdaging zijn. Door het neerleggen van taken bij een full stack developer heb je deze specialist niet nodig.
Ook het aantrekken van een full stack developer kan overigens een uitdaging zijn. Ben je hierin echter geslaagd? Dan kan deze ontwikkelaar meer taken op zich nemen dan een gespecialiseerde ontwikkelaar en -afhankelijk van jouw organisatie – wellicht meer toegevoegde waarde opleveren. Het inzetten van een combinatie van full stack- en gespecialiseerde ontwikkelaars biedt eveneens voordelen. Zo kunnen full stack ontwikkelaars het overzicht houden over het volledige project, zorgen dat onderdelen van het project correct op elkaar zijn afgestemd en obstakels vroegtijdig identificeren.
Gespecialiseerde ontwikkelaars richten zich op het ontwikkelen van specifieke componenten van het project en schrijven de hiervoor benodigde code in de gewenste programmeertaal. Hun specialistische kennis maakt dat zij in veel gevallen sneller werken dan hun full stack tegenhangers.
Wat is de beste keuze voor jouw organisatie?
Welke soort ontwikkelaar voor jouw organisatie de beste keuze is hangt onder meer af van de omvang en het budget van je organisatie, de beschikbaarheid van ontwikkelaars op de arbeidsmarkt en het soort projecten die je uitvoert. Door hun gespecialiseerde kennis zijn deze gespecialiseerde ontwikkelaars bijvoorbeeld goed in het schrijven van code in een specifieke programmeercode, wat onder de streep betere code kan opleveren. Ook kunnen zij dankzij hun kennis in sommige gevallen sneller resultaten opleveren. Bij complexe softwareprojecten leveren gespecialiseerde ontwikkelaars dan ook voordeel op. Heb je echter ook code in een andere programmeertaal nodig? Dan kan het zijn dat je hiervoor een andere ontwikkelaar met andere kennis nodig hebt. Je schakelt in dit geval meerdere gespecialiseerde ontwikkelaars in voor hetzelfde project.
Specialisme vs generalisatie
Een belangrijke afweging voor het samenstellen van je team is dus of je generalisten of specialisten wilt aannemen. Het is de mening van True dat de wereld van applicatieontwikkeling inmiddels zo complex is geworden en dat de snelheid van innovatie zo hoog ligt, dat het aannemen van full-stack generalisten de meeste bedrijven niet verder helpen. Verder is het aantal specialismes wat je nodig hebt bij het ontwikkelen van een applicatie ook aan het toenemen (front-end, back-end, storage, netwerk, security, database, hosting, ux/ui, etc), waardoor het steeds lastiger is om als full-stack developer waarde te kunnen toevoegen. Wij denken dat de meeste bedrijven er beter aan doen om een mix van interne en externe (freelance) specialisten aan te trekken, gecoördineerd door een sterke product owner en scrum master.
Wil je op de hoogte blijven van alle ontwikkelingen en nieuws rondom True? Schrijf je dan in voor onze nieuwsbrief!