Hva er de viktige tingene du bør vurdere når utviklingsavdelingen skal lage et nytt produkt? Sammen med budsjett og ressurser, må du velge riktig ‘Tech Stack’ for å få prosjektet ditt til å lykkes.
Når vi snakker om ‘Tech Stack’, så refererer vi gjerne til alle de viktigste teknologiene som utgjør programvaren din. Det er den teknologien som får de underliggende verktøyene, rammeverk og bibliotekene som brukes til å bygge og kjøre et nettsted, en webapplikasjon eller mobilapplikasjon.
En tech-stack er stort sett delt inn i to: klientsiden (frontend) og serversiden (backend). Front-end er det brukerne ser når de samhandler med et nettsted eller applikasjon. Front-end utvikling fokuserer på grafikk, knapper og hvordan ting oppfører seg når noen samhandler med dem.Backend fokuserer på data (informasjon), beregninger, forretningslogikk, tilgangsstyring osv. og gir frontend all informasjon den skal vise til brukeren.
Front-end tech-stack består vanligvis av tre elementer:
Backend-siden består som regel av:
Det finnes for øvrig flere lag med serverteknologi. Hardware, skyteknologi (cloud) som Azure eller AWS, Operating system som Windows eller Linux og flere.
Når du bygger programvare, vil du starte med riktig grunnlag. Du må velge en teknologi basert på problemet du vil løse. Konkurranseevnen, skalerbarhet og levedyktigheten til nettstedet eller applikasjonen du lager vil avhenge av teknologi du velger.
Det er lett å bli forvirret og skille fordeler og ulemper med de alternativene du har. Hver teknologi har sine styrker og svakheter, og du vil ikke bruke tid og penger på en løsning som ikke er skalerbar med selskapets vekstambisjoner.
Les mer: Hva er teknisk gjeld?
Valg av endelig tech stack vil ha innflytelse på flere ting. Som f.eks;
Det vil også ha en innvirkning på hva slags utviklere du skal rekruttere. De fleste utviklere spesialiserer seg gjerne på spesifikke teknologier fordi det er for mange for en enkelt person å lære og vedlikeholde over tid.
Hver teck stack har styrker og svakheter. Noen tillater for eksempel avansert tilpasning. Andre er mer skalerbare. Noen er bedre for prosjekter som trenger mye plass til å vokse.
Les mer: Hva bør du se etter når du rekrutterer nye IT-utviklere?
Jo større nettverk bak et språk er, jo bedre for utvikleravdelingen. Et stort nettverk betyr gjerne mange gratis ressurser for utviklere å lære av og mange open source-biblioteker som en utvikler enkelt kan utnytte for å spare tid.
Like viktig som antall medlemmer, er hvor aktive medlemmene og nettverket er. Noen teknologier som Basic eller Cobol, som er 50+ år gamle, har åpenbart mange tilgjengelige ressurser, men samfunnet er nok ikke like oppdatert og aktivt lenger.
Å ha muligheten til å ta del i et aktivt nettverk kan være en enorm tidsbesparelse for utviklere når de møter på komplekse utfordringer i utviklingsprosessen. Da har de ulike forum og kanaler hvor de kan finne hjelp og støtte, som Github, og spørsmål og svar-nettsteder som StackOverflow, Medium eller Reddit.
Sett bort fra tilgjengelige ressurser og nettverk, så er noen flere faktorer du bør vurdere:
Noen nye teknologier som Ionic eller React Native er veldig unge, men de blir raskt populære fordi det er en kostnads- og tidseffektiv teknologi som lar deg raskt bygge mobilapplikasjon for alle store plattformer på en kodebase.
På den annen side eldes noen gamle teknologier, som Python eller C++, aldri og er fortsatt veldig populære og de utvikles videre. Uansett hvilken tech stack dere benytter dere av, er det utviklerteamet som faktisk skal gjøre jobben og som skriver koden for deg.
Les mer: Hvordan tiltrekke seg nye it-utviklere?
Som du ser, handler det både om mulighetene i teknologiene, men også om populariteten og utviklingen.
Ulike mobil- og webapplikasjoner krever forskjellige utviklingsverktøy.
Dessverre finnes det ingen beste sammensetning av front- og backend verktøy som kan brukes på alt. Når du velger en tech stack, må du gjøre det basert på hva dere faktisk skal lage og hvem som skal lage det.