Når du har et stort behov for raskt å opprette et utviklingsteam og finne godkjente fagfolk for langsiktig ansettelse, kan anskaffelses- og intervjuprosessen være ganske vanskelig. Dette er tilfellet hvis du ikke har så mye erfaring med å undersøke talentfulle utviklere og vurdere deres soft skills.
I denne guiden vil vi forklare hvilke områder innen programvareutvikling din utvikling bør være innenfor, og hvordan det kan være nyttig å ansette eksterne programvareutviklere.
Hvilke typer programvareutviklere finnes?
Programvareindustrien er en jungel, og for de uerfarne kan det være forvirrende med alle de ulike typene av programvareutvikling, fulgt av enda flere teknologier, språk, rammeverk, biblioteker og andre tekniske termer som en ikke-utvikler vil ha vanskeligheter med å forstå. Det vil altså være en god idé å gjøre seg kjent med det grunnleggende først.
Front-end utviklere er ansvarlige for å gjøre om et konsept eller ide (laget av en designer, en kunde eller andre) til et fullt funksjonelt nettsted ved hjelp av kode.
Front-end utvikleren sørger for at elementer som logoer, knapper, brukerinteraktivitet og den komplette layouten til nettstedet samhandler med back-end og gir en sømløs opplevelse og en fungerende estetikk.
Utviklerne er dessuten ansvarlige for å få nettstedet til å se bra ut på en rekke enheter, inkludert smarttelefoner, nettbrett og stasjonære datamaskiner (en prosess kjent som responsiv design).
Front-end design inkluderer bruk av kodespråk og funksjonaliteten som av og til kan overlappe mellom de to store utviklingsparadigmene (front-end og back-end). Hvis en front-end utvikler har erfaring med både front-end og back-end, har vi å gjøre med full-stack utvikling.
Noen av de mest betydningsfulle programmeringsspråkene innen front-end, og rammeverk, er JavaScript, TypeScript, React, Gatsby, Angular og Vue.
Den delen av en programvare, nettside eller tjeneste som brukere ikke ser, kalles back-end. Back-end refererer til datatilgangslaget innen programmering, mens front-end refererer til presentasjonslaget. Se for deg en klokke: front-enden er pilene og tallene, mens back-enden er tannhjulet som får pilene til å gå rundt.
For eksempel er de fleste av dagens nettsider dynamiske. Dette betyr at innhold lages i sanntid. En dynamisk side inkluderer vanligvis ett eller flere skript som kjøres på en webserver hver gang du besøker nettstedets sider. Skriptene lager alt materialet på siden, som deretter overføres og vises på brukerens nettleser.
Back-end inkluderer alle prosessene som finner sted før en side vises i en nettleser.
Betydningsfulle teknologier der back-end utviklere er produktive: JavaScript (gjelder også innen back-end), Node.js, C++, C#, .NET, .NET Core, Go, ASP.NET, Java, Ruby on Rails og mange flere.
Full-stack utviklere er webutviklere som har kunnskap, og er erfarne, innen både front-end og back-end teknologier som er nødvendige for å kunne kode programvare.
Ofte bør programvareutviklingsprosjekter tilnærmes med målet om full-stack utvikling i tankene. Fullstack-teknologier er svært nyttige for å øke produksjonen og kan hjelpe deg med å spare penger ved ikke å måtte ansette front-end og back-end utviklere separat.
Noen av de viktigste full-stack teknologiene er HTML, CSS, ASP.NET, .NET Core og JavaScript.
Mobil-utvikling, ofte kjent som utvikling av mobilapper, er den vanligste typen av programvareutvikling.
Sammenlignet med de fleste andre typer for programvareutvikling, bruker mobil-utvikling et helt nytt sett med teknologier.
For eksempel må en Android-applikasjonsutvikler kunne programmering i Java, Blazor eller Kotlin. En iOS-utvikler må være dyktig i Objective C eller Swift-utvikling.
Andre velger en hybrid- eller tverrplattformsutvikling for å overvinne ressursbegrensningene til mobilutvikling, og bruker ett enkelt verktøysett for kompatibilitet med flere plattformer. Teknologier som kan brukes for både Android- og iOS-apputvikling er React Native, Cordova, Ionic, Flutter og Dart.
Nettapp utviklere
En nettapplikasjon er en side man kan samhandle med. Den lar brukere bidra til data og samhandle med dem på en rekke måter.
Nettapplikasjoner kan sammenlignes med tradisjonelle apper, men den primære forskjellen er at de forblir online og kan nås via en nettleser. Resultatet er tett kontakt med serveren, som mottar et stort antall forespørsler.
Nettapper og nettsteder er ikke det samme, og webapputviklere er ikke det samme som nettutviklere.
Nettskjemaer, handlekurver, tekstbehandlere, regneark, video, bilderedigering og -visning, filkonvertering, filskanning og sending av e-poster er alle eksempler på nettapper. Noen kjente nettapper du sannsynligvis har brukt før er blant annet Netflix, Google Drive, Adobe Acrobat, Dropbox og Hootsuite.
Teknologier som brukes til utvikling av webapper er Webflow, React, Magento, Drupal, WordPress, HTML, CSS og mange av JavaScripts rammeverk.
Dataforskere
Datavitenskap er en utviklingsgren som kombinerer programmering og dataanalyse for å undersøke store mengder data og avdekke trender og repetisjoner.
I stedet for å lage kommersielt tilgjengelig programvare på klientsiden, bygger dataforskere mikro- til storskala-programmer spesielt utviklet for dataanalyse.
Selv om data kanskje ikke fremstår som det mest spennende emnet, har datavitenskap et bredt spekter av bruksområder for blant annet finansinstitusjoner, medisinsk teknologi og analyse samt reklame.
Som i alle programvareområder bruker dataforskere mange teknologier, men noen av de mest benyttede er TensorFlow, Keras, Scikit-learn, Pandas og PyTorch.
Desktop utviklere
Desktop utvikling er byggingen av apper som opererer på systemer som Windows, Mac OS X eller Linux, eller enkelt forklart-bare skrivebordssystemer.
Den vanligste typen programvareutvikling pleide å være skrivebordsutvikling. Men med den økende bruken av smarttelefoner og mobilapper, har skrivebordsutvikling blitt betydelig mindre utbredt.
Skrivebordsprogrammer brukes fortsatt daglig. For eksempel er Google Chrome et skrivebordsprogram som hjelper deg med å surfe på Internett. Noen av de mest kjente teknologiene innen skrivebordsutvikling er UWP, WPF, Windows Forms, Cocoa, Electron og Swing.
Skyingeniører
Tjenester, programmer og applikasjoner som kjører i skyen kalles cloud computing. Det betyr at de kan være tilgjengelige fra praktisk talt alle steder så lenge brukeren har en internettforbindelse og en gyldig pålogging. De har mange fordeler, blant annet skalerbarhet.
Noen programmerere spesialiserer seg på å bygge skyplattformer. De lager skyapper, hjelper til med skydistribusjon og migrering, administrerer skytjenester og gir brukerstøtte.
Betydningsfulle cloud computing-teknologier er blant annet Microsoft Azure, Kubernetes, AWS, Google Cloud, IBM Cloud, Oracle Cloud Infrastructure og Cloud Linux.
Sikkerhetsingeniører
Programvareingeniører innen sikkerhet jobber for å garantere sikkerheten til ulike tekniske systemer. De har en grundig forståelse av teknikken, metodene, verktøyene og mønstrene som brukes av nettkriminelle til å hacke programvare, slik at de kan hjelpe til med å forhindre slike overgrep.
Et eksempel på denne typen profesjonelle er etiske hackere. De samarbeider med klienter for å hacke programvare for å identifisere og avsløre feil, slik at de kan fikse disse.
DevOps er et sett med metoder og ideer som brukes for å levere programvare på en tidsriktig, effektiv og kundefokusert måte. Det brukes av programvareingeniører og team over hele verden som fokuserer på problemløsning og effektivitet, samt kvalitet og å lage programvare.
DevOps-ingeniører samarbeider med team som utvikler programvare. De er involvert i QA-testing og distribusjon.
Vanligvis konsentrerer de seg om flere ulike oppgaver, inkludert programmering, integrasjon, skripting og QA-testing. De må kombinere teori og praksis for å kunne hjelpe, og samarbeide med, resten av teamet som kan inkludere programvareutviklere og kvalitetssikringsspesialister.
Databaseutviklere
En databaseutvikler er ansvarlig for å lage databaser. De designer og endrer eksisterende eller nye systemer og sørger for at de møter brukernes behov. Oppgavene til databaseadministratoren og utvikleren kan noen ganger overlappe hverandre, avhengig av behovene til klienten eller arbeidsgiveren.
Videospill-utvikling
Enkelt sagt er programvareutvikling for videospill fokusert på å utvikle videospill. Avhengig av kompleksiteten til spillet, og teknologien det er bygget på, kan et gjennomsnittlig videospill bygges, og oppgraderes, over mange år.
Det mest avgjørende aspektet ved en god brukeropplevelse, og dermed populariteten til et videospill, er den visuelle tilbakemeldingen. For å sikre at den interaktive programvaren skal være intuitiv og enkel å bruke på datamaskiner, konsoller og mobile enheter, bruker videospillutviklere teknologier som Creation Engine, Unity, Unreal Engine, Anvil og CryEngine.
Hva er gode intervjuspørsmål å stille til potensielle utviklere?
Når du gjør et intervju i forbindelse med forhåndsscreening av potensielle utviklere fokuserer du mest sannsynlig på de generelle tekniske ferdighetene og soft skills. Her er noen nyttige, generelle, spørsmål som kan brukes uavhengig av teknologi og ferdigheter:
- Hva er funksjonene til X?
- Hvorfor bruke X fremfor andre rammeverk, som for eksempel Y?
- Hvordan lager du en Xt app eller nettsted?
- Hvor mange års erfaring har du innen dette feltet eller rammeverket?
- Hva var ditt favorittprosjekt, og hvorfor?
- Kan du vise meg noen av dine personlige prosjekter, eller prosjekter du har vært involvert i som du brenner for.
- Bortsett fra hoved-ekspertisen din, hvilke andre teknologier behersker du godt?
Hvilke ferdigheter du bør se etter i en bakgrunnssjekk?
Bortsett fra en ekspertkunnskap i deres viktigste teknologistabel, bør utviklerne ha gode soft skills. Hvis du ansetter eksternt er det også viktig med gode engelskkunnskaper.
I følge vårt HR-team er de viktigste ikke-tekniske ferdighetene presentabilitet, åpenhet, omgjengelighet, ærlighet, nysgjerrighet og fleksibilitet.
Når de ser etter folk til selskapet vårt, er det ofte soft skills som blir viktigst for å skille mellom to kandidater med tilsvarende faglige ferdigheter og teknologistabel:
- En klar og profesjonell kommunikasjonstilnærming
- Middels høyt til høyt engelsknivå
- Evne til å komme overens med ethvert team
- Ambisjoner om ledelse
- En evne til å støtte og veilede juniorkollegaer
- Punktlighet når det gjelder møtedeltakelse og fullføring av oppgaver
Konklusjon
Den gode nyheten er at det er mange dyktige mennesker verden over som jobber med programvareutvikling. Den dårlige nyheten er at det er tusenvis av ledige stillinger og muligheter. Det kan være ganske vanskelig å finne en person med den riktige teknologistabelen, erfaringen og de riktige soft skills i løpet av kort tid.
Sjekk våre tjenester og priser, og kanskje kan den rette personen begynne hos deg i løpet av få dager.