Er zijn meer dan 8,9 miljoen mobiele apps en meer dan 1,1 miljard websites.
Al deze apps en websites zijn gebouwd met meerdere technologieën, tools, programmeertalen, databases.
Als je een app bouwt, is één van de belangrijkste beslissingen die je zult nemen welke technologieën jouw developers gaan gebruiken. De keuze voor technologie is belangrijk omdat het invloed heeft op de schaalbaarheid, hoe makkelijk je je team kunt uitbreiden en de kosten voor ontwikkeling.
In deze blogpost bespreken we wat een tech stack is en hoe je de juiste kiest voor jouw start-up!
Wat is een tech stack?
Simpel gezegd is een tech stack een combinatie van technologieën die worden gebruikt om een app te maken. Denk hierbij aan software, programmeertalen, frameworks, libraries en cloud-oplossingen.
Waar wordt een tech stack voor gebruikt?
Bij het samenstellen van je tech stack probeer je een goede afweging te maken tussen de efficiëntie, productiviteit, prestaties en veiligheid.
Met de juiste tools tot hun beschikking kunnen developers sneller en efficienter een app ontwikkelen. Op deze manier worden beschikbare middelen optimaal benut.
Een tech stack heeft invloed op:
- Hoe het product functioneert - nu en in de toekomst
- Hoe makkelijk de app te onderhouden is
- Hoe schaalbaar de app is
- Hoeveel de app kost om te ontwikkelen
Waarom is het belangrijk om de juiste tech stack te kiezen?
Het kiezen van de juiste tech stack heeft grote invloed op de toekomst van jouw start-up. Een foute of gehaaste keuze kan veel kosten: geld, tijd, resources, en misschien wel de gehele toekomst van jouw app.
Niet een lichte beslissing dus! Besteed dus voldoende tijd aan het uitdenken van de juiste tech stack.
Wat te doen als je start-up founder bent, maar zelf geen technische kennis hebt
Heb je zelf geen technische achtergrond en werk je samen met een externe tech partner? Vraag dan altijd van tevoren welke tech stack zij adviseren om te gebruiken.
Wij krijgen er energie van om hierover met je mee te denken. Plan dus vooral een (gratis) adviesgesprek met ons in om jouw ideeën voor jullie tech stack te bespreken.
Wat zijn de categorieën van een tech stack? + Voorbeelden
Je kunt je tech stack onderverdelen in front-end en back-end.
De front-end houdt zich bezig met alles wat de gebruiker kan zient. De back-end is verantwoordelijk voor het opslaan en organiseren van gegevens, en wordt door de front-end aangesproken, dit kan bijvoorbeeld via een API.
Laten we eens kijken naar wat voorbeelden van tech stack categorieën en technologieën die je kan overwegen:
- Het besturingssysteem: afhankelijk van je ervaring en soort app (mobiele app of webapp), zal je hierin een keuze maken. Je kiest een besturingssysteem voor je backend server (denk aan Linux, of Microsoft Azure) en welke besturingssytemen je wilt ondersteunen voor je frontend. Dit kan voor een mobiele app bijvoorbeeld iOS en Android zijn.
- Programmeertalen: Welke programmeertaal ga je gebruiken? Dit is afhankelijk van het besturingssysteem die je kiest. Denk hierbij aan Ruby, Swift, Java of Python.
- Gegevensopslag: ook moet je beslissen waar je alle gegevens van je app gaat opslaan. Wil je een relationele database zoals MySQL gebruiken? Wil je een NoSQL-database zoals MongoDB?
- Backend frameworks: een framework is een verzameling bibliotheken en tools die je helpen een app te bouwen. Enkele populaire backend frameworks zijn Laravel, Node.js, Ruby on Rails en Django.
- Frontend framework: dit zijn frameworks die je gebruikt om een fantastische gebruikerservaring te creëren. Denk hierbij aan frameworks als Vue, React en Angular.
- Server en load balancing: deze categorie omvat servers, content distributie netwerken, routing, en caching services. Waarom? Omdat je app natuurlijk wel al het verkeer aan moet kunnen! Hierbij kan je gebruik maken van services zoals AWS, Google Cloud, Azure en Apache.
- API-services: met behulp van een API (Application Programming Interface) kunnen verschillende softwarecomponenten met elkaar communiceren. Het meest gebruikelijk hierin is een REST API, maar tegenwoordig is GraphQL ook terrein aan het winnen.
Waar moet je rekening mee houden voordat je een tech stack kiest?
Nu je de basis kent van wat een tech stack is, is het tijd om een beslissing te nemen! Maar hoe doe je dat? Hier zijn enkele dingen om te overwegen:
- Het doel van je app: wat moet je app doen? Welke functies moet hij hebben? Een app met alleen een enkele statische pagina's zal niet dezelfde tech stack nodig hebben als een app met een complexe gebruikersinterface, of een app die veel gegevens moet verwerken.
- De vaardigheden en ervaring van jouw team: met welke technologieën is je team al vertrouwd? Het kan gemakkelijker (en goedkoper) zijn om te werken met technologieën die zij kennen.
- Jouw budget: sommige technologieën zijn duurder dan andere. Als je met een beperkt budget werkt, kun je gratis en open-source technologieën overwegen.
- De toekomst van je app: moet je app in de toekomst kunnen schalen? Zo ja, dan moet je ervoor zorgen dat je tech stack dat aankan, of dat je eenvoudig technologieën kan toevoegen of vervangen.
Wat zijn de criteria waaraan je de technologieën in je tech stack moet toetsen?
Nu je weet waar je rekening mee moet houden bij het kiezen van een tech stack, is het ook belangrijk om te weten wat de criteria zijn waar je elke technologie aan kan toetsen.
#1 Het probleem dat je wil oplossen
De grootste fout die je kan maken is het kiezen van een technologie puur omdat het werkt voor andere bedrijven in jouw industrie, of omdat het op dat moment populair is. Stel in plaats daarvan vast welk probleem je wil oplossen en vervolgens of een technologie daar geschikt voor is.
Als je bijvoorbeeld veel gegevens moet opslaan, heb je een database nodig die goed is in het verwerken van grote hoeveelheden gegevens.
Als je een gebruikersinterface moet maken, heb je een taal nodig die goed overweg kan met grafische elementen.
#2 De flexibiliteit van de technologie
Misschien lost de technologie wel een acuut probleem op, maar kan het ook meegroeien met jouw app? Is het gemakkelijk om nieuwe functies toe te voegen of bestaande functies te wijzigen?
Zo niet, dan moet je je app waarschijnlijk op een gegeven moment helemaal opnieuw schrijven. Dit hoeft natuurlijk geen probleem te zijn - het gebeurt vaker dat een app opnieuw geschreven moet worden. Dit is alleen wel iets om bewust van te zijn bij het kiezen van jouw tech stack.
#3 De kosten van de technologie
In het vorige gedeelte benoemden we het al even - het is belangrijk om van tevoren het budget vast te stellen voor jouw tech stack. Beoordeel vervolgens per technologie of de kosten ervan passen binnen het gestelde budget.
Bedenk daarbij dat de kosten van een technologie niet altijd harde kosten zijn. Soms is een technologie gratis, maar kost het meer tijd en moeite om hem te leren en te gebruiken.
#4 De volwassenheid van de technologie
Je wil natuurlijk niet dat je app afhankelijk is van een bepaalde technologie die elk moment kan stoppen of veranderen. Dit kan bijvoorbeeld wel eens gebeuren als je gebruik maakt van APIs.
Kijk daarom bij de technologieën die je overweegt naar:
- Hoeveel jaar bestaat deze technologie al?
- Wordt het ondersteund door een groot bedrijf of slechts een paar individuen?
- Hoe groot is de gemeenschap (bijv. StackOverflow, GitHub) rond deze technologie?
Hoe volwassener een technologie is, hoe kleiner de kans dat deze stopt of verandert.
Natuurlijk kunnen nieuwe technologieën heel goed zijn en grote voordelen bieden ten opzichte van bestaande. Maar als je niet zeker bent van een nieuwe technologie is het waarschijnlijk het beste om een paar jaar te wachten tot het al een tijdje bestaat en zich bewezen heeft.
#5 De veiligheid van de technologie
We hebben het in een eerdere blog al gehad over het uitvoeren van een security audit voor jouw tech start-up. Het is verstandig security in het achterhoofd te houden bij het kiezen van je tech stack.
Er zijn vele manieren om dit te doen - onderzoek of er grote veiligheidsinbreuken zijn geweest met betrekking tot de technologie, wat voor soort encryptie het gebruikt, enzovoort.
Vergeet niet dat zelfs volwassen en bekende technologieën veiligheidsproblemen kunnen hebben.
#6 Compatibiliteit met andere technologieën
Het is belangrijk dat de technologieën die je kiest met elkaar kunnen samenwerken, anders zul je moeite hebben om ze in je app te integreren.
Controleer daarom bij het kiezen van je tech stack of de verschillende technologieën compatibel zijn met elkaar.
Blijft mijn tech stack altijd hetzelfde?
Kortgezegd: nee. Naarmate je app groeit, zullen je behoeften veranderen en zal je waarschijnlijk technologieën moeten toevoegen of vervangen. Dat is volkomen normaal en niets om je zorgen over te maken.
Het belangrijkste is dat je een tech stack kiest die voldoet aan je huidige behoeften en gemakkelijk kan worden aangepast als die behoeften veranderen.
Heb je hulp nodig bij het kiezen van je tech stack? Dan kan het fijn zijn om te kunnen sparren met een tech partner met veel ervaring met het kiezen van tech stacks. IGNE is zo’n tech partner. We hebben ervaring in het samenwerken met start-ups en het kiezen van de juiste tech stack voor jouw fase. Schroom dus niet om contact op te nemen voor een kop koffie, want we denken graag met je mee!