Der er en ældgammel kamp mellem frontend- og backend-udviklere: Hvilken af dem er den vigtigste færdighed? Og hvorfor skulle nogen bekymre sig om skænderier, når vi i stedet kan bruge ens tid på at fejlfinde kode?
Et muligt svar på dette spørgsmål er ganske enkelt: fullstack. Fullstack-ingeniører kan løse alt mellem backend- og frontend-udvikling og meget mere.
Fullstack-fagfolk er dog dyrere og sværere at finde. Så lad os indtil videre holde os til udvikling af backend-applikationer og forsøge at løse det som sådan.
Det vil sige, at jeg vil forsøge at besvare følgende spørgsmål:
- Hvor kan du finde backend-udviklere af høj kvalitet;
- Hvordan man tester deres færdigheder;
- Hvordan du vælger mellem flere kvalitetskandidater;
- Hvordan du håndterer dem på den mest effektive måde.
Lad os starte.
Hvad er backend-udvikling?
Backend-softwareudvikling, som omfatter alt fra desktop og web til cloud- og databasestyring, er den vigtigste kompetence, der driver hele internettet. Det sker så problemfrit, at de fleste brugere ikke rigtig er klar over backend-udviklingsprocessen–hvilket er præcis, hvad en IT-projektleder gerne vil høre.
Hvis noget går i stykker i backend’en, vil brugerne hurtigt blive opmærksomme på, at noget er gået glat. Eller man kan sige så længe den gennemsnitlige bruger ikke er klar over de snørklede ting, der sker bag kulisserne (på et website), jo bedre bliver brugeroplevelsen.
En backend-udvikler (også kendt som en backend-ingeniør) er primært ansvarlig for at opbygge fundamentet for et website og sikre at websitet fungerer. De finder på koden, de opbygger strukturen, og de sørger for at applikationslogikken fungerer efter hensigten.
De fleste besøgende er ikke engang klar over den teknologi, der driver applikationen; slutbrugerne er aldrig direkte vidne til den.
Backend-teknologier omfatter servere, applikationer, databaser, programmeringssprog, frameworks og meget mere.
Hvor populær er backend-softwareudvikling?
Backend-udvikling er ikke kun populært–det er absolut nødvendigt for at få internettet til at fungere. Uden backend-udvikling ville der ikke være noget frontend-softwareudviklingshold, ingen frontend-udviklere og ganske enkelt ikke noget internet.
Alligevel er nogle backend-programmeringssprog mere populære end andre.
Sådan ser det ud i øjeblikket:
Hvor finder man backend-softwareudviklere
Backend-udviklere er ikke svære at finde. Det er dog en helt anden sag at finde backend-udviklere af høj kvalitet.
For at ansætte de rigtig backend-udviklere (herunder projektledere, webudviklere, softwareingeniører og kodere) har du brug for enten et screeningsværktøj eller en platform der screener og tester ansøgerne grundigt til at begynde med.
Afhængigt af dit budget, engagement og dine nerver er begge disse muligheder potentielt gode. Den første kræver mere tid, mens den anden mulighed er lidt dyrere end den første.
Du kan finde backend-udviklere af høj kvalitet ved at besøge en af følgende platforme:
- Upwork
- Toptal
- Fiverr
- Turing
- Stepstone
- Proxify (det er os!)
Vi tilbyder backend-udviklere at topkvalitet, der er dygtige til de mest populære stacks i dag, herunder PHP, JavaScript, Java, .NET, Ruby, Ruby on Rails og mange andre.
Vores pakker omfatter både deltids og fuldtidsmuligheder, og vi er op til 50% billigere end nogle af de andre freelance-jobportaler på markedet.
Sådan interviewer du backend-softwareudviklere
Interview af ansøgere med kunnen inden for backend-softwareudvikling kræver en vurdering af kandidaternes 2 forskellige sæt færdigheder:
- Soft skills (kommunikation, engelskkundskaber, åbenhed, kreativitet, selvsikkerhed)
- Hard skills (kodning, fejlfinding, problemløsningsevner, teknisk viden, evne til at lære og anvende nye tendenser og paradigmer efter behov)
Top-5 tekniske færdigheder, som enhver backend-udvikler bør have
For at blive en alsidig backend-udvikler, der arbejder på flere projekter og løser problemer efterhånden som de opstår, skal kandidaten beherske flere programmeringssprog.
Disse omfatter:
Java: Det skrives i et IDE (Integrated Developement Environment), før det kompileres til et lavniveausprog, som kan forstås af softwarefortolkere. Java er en meget værdifuld færdighed for enhver lovende backend-udvikler, hovedsagelig på grund af dets høje ydeevne, robuste kvalitet (med hensyn til løsning af programmeringsudfordringer) og dokumenterede tilpasningsevne.
PHP: Det er det mest almindeligt anvendte server-side scripting sprog til udvikling af hjemmesider på verdensplan. I øjeblikket er der mere end 20 mio. websites som bruger PHP, og dette tal fortsætter med at vokse (om end i et langsommere tempo). Desuden giver PHP også mulighed for integration og understøttelse af MySQL, hvilket løser to udfordringer på én gang.
Python: Python er et af de vigtigste sprog til backend udvikling i dag, selv om det ikke har meget at gøre med den slange det er opkaldt efter. Faktisk viste en StackOverflow-undersøgelse fra 2019, at Python var et af de hurtigst voksende sprog på verdensplan, foran Java og det tabte kun til Rust. Python anvender funktionelle, proceduremæssige og objektorienterede programmeringskoncepter med lethed. Det er også relativt nemt at lære, hvilket gør det til det ideelle valg både for begyndere og erfarne backend-programmører.
SQL: Det såkaldte ”Structured Query Language”, eller SQL, ser ud til at bestå over flere årtier mod alle odds. Det giver programmører mulighed for nemt at indtaste, fjerne og manipulere databaseposter samt oprette nye tabeller og endda tildele tilladelser til de samme tabeller. På et tidspunkt vil en professionel backend-softwareudvikler skulle beskæftige sig med databaser. Til det formål er SQL en færdighed, som de absolut skal kende.
Git: At tilføje nye funktioner til en applikation uden at gennemtænke det, er en dårlig idé. Hvis det skal gøres rigtigt, skal udviklerne have et robust versionsstyringssystem, der kan spore ændringer og dokumentere kodekommitteringer i overensstemmelse med dette. Git findes til netop dette formål. Git er et open source-versionskontrolsystem, der håndterer alle slags projekter uanset omfang eller størrelse. Det er overflødigt at sige at en erfaren backend-udvikler skal kende Git rigtig godt.
Jeg havde nogle spørgsmål vedrørende backend-udvikling og var ivrig efter at finde ud af, hvordan vores omfattende netværk af Proxify-udviklere ville løse dem.
Mine spørgsmål var:
- Hvad er nogle af de vigtigste forskelle mellem backend- og frontend-udvikling?
- Hvad er dine foretrukne (hurtigste, mest optimerede, mest populære= sprog, frameworks og værktøjer til backend-udvikling?
- Hvad er fremtiden for backend-softwareudvikling?
Bagaa Mashtoub var klar til at tage imod udfordringen. Her er hans svar på det første spørgsmål:
”Backend- og frontend-udvikling er dele af udviklingsprocessen for softwareapplikationer. Målene for frontend-udvikling er forskellige fra backend-målene, og derfor er programmeringssprog/frameworks blevet udviklet for hver af dem. Når det kommer til frontend, er der flere områder at arbejde på, men det drejer sig mest om UI/UX, dvs. brugergrænseflade og brugeroplevelse.”
I forlængelse heraf uddybede Bahaa endnu mere.
”Når det er sagt, handler frontend-udvikling om at udvikle kode, der virker i klientens browser/app, og som brugeren interagerer med”, sagde han.
Med hensyn til udfordringerne mellem frontend- og backend-udvikling beskrev Bahaa flere afgørende forskelle mellem de to.
”Ud over Microsoft-teknologier, er der blevet udviklet og designet adskillige frameworks til at forenkle og sikre denne klientside/frontend-udvikling, såsom Angular, React, Vue og andre”, bemærkede han. Derudover sagde Bahaa også, at arbejdet med frontend har sine unikke udfordringer, f.eks. at designe en responsiv brugergrænseflade, hvor designet forbliver konsistent, hvis skærmopløsningerne ændres.
”End anden udfordring”, tilføjede han, ”er sikkerheden, da lagring af data i frontend er afhængig af cookies og lokal/sessionsopbevaring.”
“Når det drejer sig om backend er hovedfokus på at udvikle flerlagede, uafhængige/skalerbare, sikre og hurtige tjenester, der fungerer på serveren. Disse backend-tjenester kan kommunikere med hinanden og med eksisterende databaser for at udføre operationer og håndtere forespørgsler fra frontend og levere svar tilbage.”
”Så”, sluttede Bahaas første svar, ”hovedfunktionen er at skabe en stærk og sikker backend, der kan håndtere anmodninger fra brugerne og udføre operationer efter behov.”
Han bemærkede at der er flere udfordringer med backend-udviklingsprocessen, som f.eks.
- Sikkerhed
- Skalerbarhed
- Godkendelse
- Tilladelse
- Ydelse
- Og andre
”Et af de mest almindelige problemer, som mange virksomheder står overfor, er det som jeg kalder den monolitiske måde at udvikle backend-kode på. I den seneste måde at udvikle på er der blevet indført en microservices-arkitektur som hjælper med at opbygge skalerbare og sikre applikationer”, konkluderer Bahaa på det første spørgsmål.
Hvad med Bahaas foretrukne værktøjer til backend-udvikling? Han nævnte nogle få:
- C# (sproget)
- Microsoft Asp.net framework
- ASP.NET Core
- Entity Frameworks
- Linq
- Postman
- Visual Studio 2022
- Rider
- Web Apis
- Ocelot
- Microservices
- Unit tests
Endelig ønskede jeg at få et mere generelt overblik over fremtiden inden for backend-udvikling. Hvordan ser det ud fra en erfaren udviklers synspunkt?
”Jeg tror faktisk, at fremtiden vil blive ved med at give flere og flere værktøjer til hurtigere, mere skalerbar, genanvendelig og tilpasselig backend-udvikling, der hjælper med at udføre opgaver på en nemmere måde. For mange virksomheder tror jeg at deres fremtid ligger i microservices-arkitektur, især hvis de ønsker at skalere deres applikation globalt.”
De vigtigste brede koncepter, som backend-udviklere bør kende til
Det er helt sikkert et ønskværdigt træk at være et teknisk geni i topklasse, men at ansætte udelukkende på baggrund af dette er en dårlig idé.
Ud over teknisk kompetence bør en backend-udvikler af høj kvalitet også være fremragende til at kommunikere sine idéer til sin teamleder, sine kolleger og til virksomhedens øverste ledelse (CEO, COO).
Hvis du har veletablerede kommunikationsevner, er det lettere at samarbejde med alle på tværs af virksomheden, også med kolleger, der ikke behersker programmeringssprog og ikke kender til de indviklede detaljer i softwareudvikling.
Andre soft skills, som enhver udvikler bør tænke over, er:
Proaktivitet: Når det er relevant løser de problemer selv i stedet for at vente på at en anden træffer en beslutning.
Selvhævdelse: Aktiv deltagelse i udviklingen af projektet i stedet for passivt at følge opgaver og ordrer.
At være en teamplayer: At have tålmodighed til at forklare komplekse koncepter i enkle vendinger til folk, der ikke nødvendigvis er fortrolige med kode.
Punktlighed: Det er et MUST at arbejde med begrænsede ressourcer og få tingene gjort til tiden.
Kreativitet: Alle har brug for at nærme sig problemet fra et fugleperspektiv en gang imellem; med andre ord vil en ændring af synspunktet ofte føre til mere optimale løsninger på en given opgave.
Interviewspørgsmål om backend-udvikling
Her er nogle spørgsmål til backend-udviklere, der kan sætte gang i samtalen under interviewprocessen:
1. Hvad er dit foretrukne programmeringssprog?
- Forventet svar: Java, JavaScript, PHP, .NET
2. Hvordan griber du debugging an?
- Forventet svar: Jeg anvender den videnskabelige metode til fejlfinding. Først opstiller jeg en hypotese. Derefter laver jeg et eksperiment for at modbevise den. Til sidst gentager jeg trinene, indtil fejlen er fundet og rettet.
3. Hvad er ”high cohesion”?
- Forventet svar: ”High cohesion” er et koncept inden for programmering, hvor du opretter en class, der har en veldefineret opgave. På den anden side henviser ”low cohesion” til en class der udfører mange opgaver som ikke har meget til fælles.
4. Hvad er ”coupling”?
- Forventet svar: Coupling måler den grad, i hvilken forskellige softwaremoduler er indbyrdes afhængige af hinanden. En god applikation vil have lav coupling.
5. Hvad er en NoSQL-database
- Forventet svar: NoSQL-databaser adskiller sig fra SWL-databaser ved at gemme (og hente) poster i dokumenter i stedet for relationstabeller. Ud over at bruge dokumenter kan NoSQL-databaser også lagre oplysninger i key-values, wide-columns og grafer.
Hvorfor skal du ansætte backend-udviklere?
Backend-udvikling er en absolut nødvendighed for at sikre at en applikation bliver en succes. At forsøge at bygge en app uden backend-udviklere er som at forsøge at strikke en sweater uden strikkepinde!
Prøv at se på nogle af vores valgmuligheder, og du er velkommen til at bestille et kort opkald for at drøfte dine behov nærmere.
Den perfekte kandidat venter på dig!