Når du har hårdt brug for at skabe et udviklingsteam hurtigt og finde gennemprøvede fagfolk til langtidsansættelse, kan det være ret vanskeligt at finde interviewe folk. Dette er tilfældet, hvis du ikke har meget erfaring med at gennemtjekke talentfulde udviklere og vurdere deres bløde færdigheder.
I denne guide giver vi dig svar på hvilke softwareudviklingsområder din udvikler bør arbejde inden for, og hvordan det kan være nyttigt at ansætte eksterne softwareudviklere.
Hvilken slags softwareudviklere findes der?
Softwarebranchen er en sjov jungle, og for den uerfarne kan det være forvirrende at lære at der findes mange forskellige typer af softwareudvikling, efterfulgt af endnu flere teknologier, sprog, frameworks, biblioteker og andre tekniske termer, som en ikke-udvikler vil have svært ved at forstå. Så det vil være en god idé at sætte sig ind i det grundlæggende først.
front end-udviklere er ansvarlige for at omdanne et koncept (lavet af en designer, en kunde eller en anden) til et fuldt funktionelt websted ved hjælp af kode.
front end-udvikleren sørger for at elementer som logo, knapper, brugerinteraktivitet og hele websitets layout interagerer med back end og giver en problemfri oplevelse og et velfungerende æstetisk udtryk.
Udviklerne er også ansvarlige for at få websitet til at se godt ud på en række forskellige enheder, herunder smartphones, tablets og computere (en proces der kaldes responsivt design).
Front end design omfatter brugen af kodningssprog, hvis funktionalitet lejlighedsvis kan overlappe mellem de to store udviklingsparadigmer (front end og back end). Hvis en front end-udvikler har erfaring med begge dele, skifter paradigmet til full stack-udvikling.
Nogle af de mest bemærkelsesværdige front end-programmeringssprog og frameworks er JavaScript, TypeScript, React, Gatsby, Angular, og Vue.
Den del af en software, et website eller en service som brugerne ikke kan se, kaldes back end. Back end kaldes data access laget i programmering, mens front end kaldes præsentationsniveauet. Forestil dig det som et ur: front end er pilene og tallene, mens back end er det tandhjul der får pilene til at dreje.
F.eks. er de fleste af nutidens websites dynamiske. Det betyder at indholdet oprettes i realtid. En dynamisk side indeholder typisk et eller flere scripts, der implementeres på en webserver hver gang du besøger en side på det pågældende website.
Scripts’ene skaber alt materialet på siden, som efterfølgende overføres og vises til brugerens browser.
Back end omfatter alle de processer der finder sted før en side vises i en webbrowser.
Bemærkelsesværdige teknologier som back end-udviklere er meget aktive inden for er JavaScript (også back end), Node.js, C++, C#, .NET, .NET Core, Go, ASP.NET, Java, Ruby on Rails, og mange andre.
Full stack-udviklere er webudviklere der behersker både de front end og back endteknologier, som er nødvendige for at kunne skrive kode.
Ofte bør softwareudviklingsprojekter gribes an med målet om full stack udvikling for øje. Derfor er full stack teknologier meget nyttige til at sætte produktionen i gang og hjælpe med at spare penge på at ansætte front end og back end udviklere separat.
Nogle af de mest essentielle full stack teknologier er bl.a. HTML, CSS, ASP.NET, .NET Core, JavaScript, samt flere andre.
Mobiludvikling, ofte kendt som udvikling af mobilapps, er den mest almindelige form for softwareudvikling.
Sammenlignet med de fleste typer softwareudvikling bruger mobiludvikling i virkeligheden et helt nyt sæt teknologier.
En android-programudvikler skal f.eks. kunne programmere i Java, Blazor eller Kotlin for at kunne udvikle native applikationer. En iOS-udvikler skal være flydende i Objective C eller Swift-udvikling.
Andre vælger hybridudvikling eller udvikling på tværs af platforme for at overvinde ressourcebegrænsningerne i forbindelse med mobiludvikling, idet de benytter et enkelt værktøjssæt til at sikre kompatibilitet med flere platform. Teknologier der kan anvendes til udvikling af både Android- og iOS-apps, er React Native, Cordova, Ionic, Flutter og Dart.
Udviklere af webapps
En webapplikation er en side som man kan interagere med. Den giver brugerne mulighed for at bidrage med data og interagere med dem på en række forskellige måder.
Webapplikationer kan sammenlignes med traditionelle apps, men den primære forskel er, at de opbevares online og kan tilgås via en browser. Derfor har de tæt kontakt med serveren, som modtager et stort antal forespørgsler.
Webapps og websites er ikke det samme, og webapp-udviklere er ikke det samme som webudviklere.
Onlineformularer, indkøbsvogne, teksbehandlingsprogrammer, regneark, video, fotoredigering og -visning, filkonvertering, filskanning og afsendelse af e-mails er alle eksempler på webapps. Nogle kendte webapps som du sikkert har brugt før er bl.a. Netflix, Google Drive, Adobe Acrobat, Dropbox og Hootsuite.
De teknologier der anvendes til udvikling af webapps er Webflow, React, Magento, Drupal, Wordpress, HTML, CSS og mange JavaScript frameworks.
Dataloger
Datavidenskab er en udviklingsgren der kombinerer programmering og dataanalyse for at undersøge store mængder data og afdække tendenser og gentagelser i målpersonernes adfærd.
I stedet for at skabe kommercielt tilgængelig software på klientsiden udvikler dataloger mikro- til storskala-programmer, der er specielt designet til dataanalyse.
Selvom data måske ikke synes at være det mest tiltalende emne, har datalogi en lang række anvendelsesmuligheder, lige fra finansielle institutioner, medicinsk teknologi og analyse til reklame.
Som indenfor alle andre softwareområder er der mange teknologier som dataloger bruger, men nogle af de mest bemærkelsesværdige er TensorFlow, Keras, Scikit-learn, Pandas og PyTorch.
Desktop-udviklere
Desktopudvikling er udvikling af apps der fungerer på systemer som Windows, Mac OS X eller Linux, eller som det ganske enkelt forklares-kun desktop-systemer.
Den mest almindelige form for softwareudvikling var tidligere dektopudvikling. Men med den globale stigende brug af smartphones og mobilapps er desktopudvikling blevet betydeligt mindre udbredt.
Folk fortsætter med at bruge dektopprogrammer dagligt. Google Chrome er f.eks. et dektopprogram, der hjælper dig med at surfe på internettet. Nogle af de mest kendte desktopudviklingsteknologier er UWP, WPF, Windows Forms, Cocoa, Electron og Swing.
Cloud-ingeniører
Tjenester, programmer og applikationer der kører i skyen kaldes cloud computing.
Det betyder at de kan være tilgængelige fra stort set alle steder så længe brugeren har en internetforbindelse og et gyldigt login. De har en masse fordele, herunder også skalerbarhed.
Nogle programmører har specialiseret sig i at opbygge cloudplatforme. De skaber cloud-apps, hjælper med implementering og migrering i skyen, administrerer cloudtjenester og yder brugersupport.
bemærkelsesværdige cloud computing teknologier er Microsoft Azure, Kubernetes, AWS, Google Cloud, IBM Cloud, Oracle Cloud Infrastructure, Cloud Linux, og mange andre.
Sikkerhedsingeniører
Sikkerhedssoftwareteknikere er dedikeret til at garantere sikkerheden i forskellige tekniske systemer. De har et indgående kendskab til de teknikker, metoder, værktøjer og mønstre, som cyberkriminelle bruger til at hacke software, hvilket gør det muligt for dem at hjælpe med at forebygge sådanne angreb.
Et eksempel på denne type fagfolk er etiske hackere. De samarbejder med kunderne om at hacke software for at identificere og afsløre fejl så de kan rette dem.
DevOps er et sæt metoder og idéer, der har til formål at levere software rettidigt, effektivt og kundeorienteret. Det bruges af et stort antal softwareingeniører og teams verden over, der fokuserer på problemløsning og effektivitet samt kvalitet og udvikling af software.
DevOps-ingeniører samarbejder med teams der udvikler software. De er involveret i QA-testning og implementering.
De fokuserer normalt på flere forskellige typer opgaver, herunder programmering, integration, scripting, QA-testning og meget andet. De skal også kombinere teori og praksis for at assistere og samarbejde med resten af teamet, som kan omfatter softwareudviklere og kvalitetssikringsspecialister.
Databaseudviklere
En databaseudvikler er ansvarlig for at oprette databaser, ændre og designe eksisterende eller nye systemer og sikre at de opfylder brugernes behov.
Databaseadministratorens og -udviklerens opgaver kan undertiden overlappe hinanden, afhængigt af kundens eller arbejdsgiverens behov.
Udvikling af videospil
Kort sagt er softwareudvikling af videospil fokusere på at udvikle videospil. Afhængigt af spillets kompleksitet og den teknologi det er bygget på, kan et gennemsnitligt videospil blive udviklet i årevis.
Det mest afgørende aspekt af en god brugeroplevelse, og derfor er videospillets popularitet er den visuelle feedback. For at sikre at den interaktive software bliver intuitiv og nem at bruge på computere, konsoller og mobile enheder, bruger videospiludviklere teknologier som Creation Engine, Unity, Unreal Engine, Anvil og CryEngine.
Hvilke gode spørgsmål kan man stille udviklere?
Når du gennemfører et indledende interview med udviklere, vil du højst sandsynligt også fokusere på generelle tekniske færdigheder og soft skills. Når det drejer sig om generelle spørgsmål, der gælder for enhver teknologi eller færdighed, er her nogle nyttige spørgsmål:
- Hvad er X’s funktioner?
- Hvorfor bruge X i stedet for andre frameworks, såsom f.eks. Y?
- Hvordan opretter man en Xt-app/website?
- Hvor mange års erfaring har du inden for det pågældende område eller det pågældende framework?
- Hvad var dit ynglingsprojekt og hvorfor?
- Vis mig nogle af dine personlige projekter eller projekter som du har været involveret i og som du har være passioneret omkring.
- Ud over din primære ekspertise, hvilke andre teknologier er du så flydende i?
Hvilke færdigheder skal man lede efte hos udviklere i forbindelse med vettingprocessen.
Ud over ekspertviden om deres vigtigste teknologiske stack, skal udviklerne også have bløde egenskaber og hvis du ansætter eksternt skal de også have engelskkundskaber.
Ifølge vores HR team er de vigtigste ikke tekniske færdigheder præsentationsevne, åbenhed, omgængelighed, ærlighed nysgerrighed og fleksibilitet.
Når de søger efter medarbejdere til vores virksomhed er der to kandidater med de samme faglige kompetencer og teknologiske stack som kan skille sig ud fra hinanden ved at have nogle bløde kompetencer:
- Tydelig og professionel kommunikation
- Engelsk på mellemniveau eller højere
- Evne til at komme godt ud af det med ethvert team
- Ambitioner som leder
- Evne til at støtte og vejlede de yngre kolleger
- Punktlighed når det drejer sig om at deltage i møder eller udføre opgaverne til tiden.
Konklusion
Den gode nyhed er at der er mange dygtige mennesker fra hele verden der arbejder med softwareudvikling. Den dårlige nyhed er at der er tusindvis af ledige stillinger og muligheder og oven i købet er det ret svært at finde en person med den nøjagtige teknologiske stack, erfaring og bløde færdigheder som man kan ansætte på kort tid.
Tjek vores tjenester og priser, og måske kan du ansætte den rette person i løbet af få dage.