Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn

Callista medarbetare Anders Forssell

Callista Tech Radar 2023

// Anders Forssell

För tredje året i rad presenterar vi Callistas Tech Radar - en undersökning som görs bland våra medarbetare och visar hur teknikanvändningen ser ut i våra uppdrag. Svaren inhämtades mot slutet av 2023.

Tidigare Tech Radar:s hittar du här:

1. Introduktion

Det är tredje gången vi genomför vår Tech Radar och nu börjar man kunna få en bild av vissa trender gällande teknikanvändningen. Vi ser att diversifieringen gällande programmeringsspråk fortsätter. Java är fortfarande det dominerande primära språket men ligger nu på mindre än 30 %, samtidigt som användningen av Kotlin och Python har ökat markant. Vi pejlar också läget kring arbetsformer och mjukare värden - och där kan vi bland annat konstatera att frågan om arbetsplats (ny från förra året) visar att andelen hemarbete minskar.

2. Programmeringsspråk

2.1 Primära och sekundära språk

Första frågan handlar om respektive medarbetares primära programmeringsspråk i sitt uppdrag. Medarbetare som inte arbetar med utveckling är undantagna.

programmeringsspråk 1

Figur 1: Primärt programmeringsspråk – ett val per person.

Java leder även denna gång som primärt programmeringsspråk, men framförallt Kotlin och Python har ryckt fram kraftigt. Java låg på 50 % 2021 och 40 % 2022, så vi ser att trenden fortsätter och Javas betydelse minskar något över tid. JVM-plattformen som helhet (Java + Kotlin) har dock fortfarande en stark ställning med sammanlagt 47 %. Värt att notera är att C# för första gången tagit sig in på listan.

Som komplettering har vi frågat vilket sekundärt språk vi oftast använder. Det kan t.ex. vara för DevOps-arbete, scripting-ändamål eller frontend. Vi redovisar denna gång även andelen som inte använder något sekundärt språk för att få en bättre bild av proportionerna (2022 angav 24 % att de endast använde det primära språket).

programmeringsspråk 2

Figur 2: Sekundärt programmeringsspråk – ett val per person.

Även här finns C# med för första gången vilket är värt att notera.

Nästa fråga handlar om hur nöjd man är med sitt primära språk. Svaret anges på en skala mellan 1-10, där 10 är mest nöjd. Diagrammet nedan visar genomsnittet per språk. Vi kan se att skillnaderna mot 2022 & 2021 är relativt små.

satisfaction

Figur 3: Jämförelse 2021–2023, nöjdhet med primärt programmeringsspråk, 1-10.

Att notera: Värden saknas när ingen angivit ett språk som primärt, detta gäller C# (2022 & 2021), Python (2022) och Scala (20223)

Generellt är vi ganska nöjda med de språk vi huvudsakligen arbetar med, möjligen med undantag för JavaScript som har en dalande trend och detta år hamnar på betyg 5.

2.2 Vart är vi på väg?

Som komplement till vad vi sysslar med idag så är det intressant vad man utifrån helt personlig preferens skulle vilja arbeta med som man inte arbetar med idag. Man fick välja upp till tre språk.

programmeringsspråk #5

Figur 4: Programmeringsspråk man gärna hade jobbat med, upp till tre val per person

Här kan vi se att Kotlin seglat upp som det mest populära alternativet vilket är speciellt intressant då antalet personer som redan idag arbetar med Kotlin ökat markant. Intresset för Rust är fortsatt stort och har till och med ökat från föregående år. Den faktiska efterfrågan på Rust-kompetens i uppdragen är dock alltjämt låg. På tredje och fjärde plats hittar vi Go respektive Python, populariteten för dessa har dock minskat något jämfört med tidigare år.

3. Hur körs tjänster och applikationer?

3.1 Driftsmiljöer

Här tittar vi på hur fördelningen av driftsmiljöer ser ut i offentlig respektive privat sektor.

Offentlig sektor: drift

Figur 5: Driftsmiljöer offentlig sektor. Flera alternativ möjliga

Privat sektor: drift

Figur 6: Driftsmiljöer privat sektor. Flera alternativ möjliga

Den offentliga sektorn hade förra året ett visst inslag av molndrift (Azure), 2023 är det dock uteslutande on-prem som gäller där.

Inom den privata sektorn har molnanvändningen ökat marginellt. AWS tycks ha vunnit mark och står nu för 40 % medan Azure landar på 25 %. Bägge låg jämsides på 29 % 2022.

3.2 Exekveringsplattformar

Under denna rubrik sorterar vi in vilken typ av underliggande plattform som våra applikationer exekverar på. Definitionerna kan vara något flytande, men oftast avses här att man redan har paketerat sin applikation i en docker-image, alternativt som en .war/.ear fil som man t.ex. kör på en Servlet-container.

plattformar

Figur 7: Exekveringsplattformar, flera alternativ möjliga

Notera att under “Annan containerorkestrator” ingår t.ex. Docker Swarm, Mesos, Apcera etc, dvs de containerorkestratorer som inte har Kubernetes i botten. Dock så särredovisar vi OpenShift eftersom det är en såpass vanlig variant av Kubernetes. Under “Kubernetes” ingår för övrigt också molnpaketeringar såsom AWS EKS eller Azure Kubernetes Service (AKS).

Utan tvekan är Kubernetes och dess kusin/syskon OpenShift klart vanligaste plattformen att exekvera sin mjukvara på och har sammanlagt 69 % (upp från 63 % 2022). OpenShift har gått gått om Kubernetes och är denna gång den ledande exekveringsplattformen.

Användning av Function-as-a-Service (FaaS) ligger, trots en ökning jämfört med 2022, fortfarande på en blygsam nivå. Trots att många av oss ser att FaaS kan bidra till smarta och kostnadseffektiva lösningar under rätt omständigheter verkar denna teknologi ännu inte ha slagit igenom på bred front, åtminstone inte i våra uppdrag.

3.3 Service Mesh

Service Mesh – såsom t.ex. Istio – har tidigare lyfts fram som en “het” teknologi, men av någon anledning har användningen tagit ett rejält kliv tillbaka detta år – från 15 % 2022 till endast 3 % 2023. Efter en rejäl uppgång 2022 är vi nu tillbaka i nivåer som liknar dem från 2021.

servicemesh

Figur 8: Används en Service Mesh?

4. Ramverk och produkter

4.1 Ramverk på JVM-plattformen

Vi har denna gång valt att visa vilka ramverk som används på JVM-plattformen snarare än rena Java-ramverk. Det ger ett litet bredare bredare perspektiv med några fler ingående alternativ. Spring behåller dock sin “förkrossande” dominans och ligger på 84 %.

ramverk

Figur 9: Ramverk som används på JVM-plattformen, flera alternativ möjliga.

4.2 API:er

Förra året hade REST-API:er ca 61%, GraphQL och SOAP båda ca 15% och Protobuffers/gRPC ca 10 %.

Så här ser det ut 2023.

API:er

Figur 10: API-typer som används, flera alternativ möjliga

Protobuffers/gRPC går framåt rejält med en fördubblad användning, REST behåller sin ställning medan både GraphQL och SOAP minskar.

4.3 Databaser

På hög nivå pratar man oftast tre typer av databaser för långtidslagring av data:

  • Relationsdatabaser
  • Dokumentdatabaser
  • Grafdatabaser

Vi har valt att även inkludera Key/value stores (Redis m.fl.) även om dessa kanske inte är att betrakta som regelrätta databaser i traditionell mening.

2022 såg det ut enligt följande:

  • Relationsdatabaser: 56%
  • Key/value stores: 25 %
  • Dokumentdatabaser: 19%

2023 års siffror: databaser

Figur 11: Typ av databaser som används, flera alternativ möjliga

Läget är relativt stabilt jämfört med 2022, men värt att notera att relationsdatabaser behåller och till och med stärker sin ställning jämfört med föregående år.

4.4 Frontend-ramverk

Förra året hittade vi tre olika frontendramverk i undersökningen: React (74 %), VueJS (16 %) och Angular (10 %). I årets undersökning har VueJS fallit ifrån helt och därmed har såväl React som Angular ökat sina andelar, och React dominerar fortfarande stort.

2023 års frontend-ramverk.

frontend

Figur 12: Frontendramverk, flera alternativ möjliga

4.5 Byggverktyg

Förra året konstaterade vi att Jenkins, trots att det har några år på nacken, fortfarande håller ställningarna som det dominerande byggverktyget. I övrigt är det inga dramatiska skillnader från 2022 men några nya verktyg har tillkommit.

I våra projekt 2023 ser det ut så här. byggverktyg

Figur 13: Byggverktyg, flera alternativ möjliga

5. Arbetsformer och övriga verktyg

Vi avslutar med en sammanställning gällande litet “mjukare” parametrar.

5.1 Arbetsuppgifter

Vad gör vi på jobbet och vilka roller har vi i våra uppdrag? arbetsuppgifter

Figur 14: Roller i uppdragen

Helt klart har vi tonvikt på mjukvaruarkitektur/lösningsarkitektur och backend-utveckling, men vi har helt klart en skaplig bredd även när det gäller ansvarsområden.

5.2 Hemarbete

Man kan konstatera att hemarbetet är här för att stanna. Bland våra medarbetare är det i princip ingen som inte jobbar hemifrån åtminstone en dag per vecka. Synen på hemarbetets omfattning kan däremot variera och i många uppdrag ställs krav på att man ska vara på sin arbetsplats två till tre dagar i veckan. Man ser det som viktigt att teamet arbetar tillsammans IRL i någon omfattning för att främja samarbetet och teamkänslan.

Nedanstående diagram jämför hur många dagar man arbetar hemifrån per arbetsvecka i genomsnitt 2023 och 2022 (frågan var ej med 2021).

hemmajobb

Figur 15: Hemarbete, dagar per arbetsvecka.

Antal dagar med hemarbete har gått ner jämfört med förra året, och fördelningen är nu mer “normalfördelad” runt tre dagar. I genomsnitt arbetar man hemifrån 3,1 dagar jämfört med 3,8 dagar 2022.

5.3 Digitala hjälpmedel

Då vi på senare år arbetar alltmer distribuerat och i viss utsträckning remote eller hemifrån så ökar också betydelsen av digitala verktyg för planering, ärendehantering och dokumentation. Många möten sker också digitalt och verktyg för videomöten och skärmdelning är en viktig del i mångas arbetsvardag.

Hur ser situationen ut och vilka är de dominerande verktygen i våra uppdrag?

För digitala möten ser det ut så här. hemmajobb

Figur 16: Mötesverktyg

Microsoft Teams är tydlig etta på 84 %, en uppgång från 70 % 2022.

Samarbetsverktyg: hemmajobb

Figur 17: Projektverktyg, flera alternativ möjliga

Det är inga stora skillnader jämfört med 2022 och det är fortfarande Atlassians verktyg Jira och Confluence som dominerar stort med en användning på sammanlagt 85 %.

6. Sammanfattning

Det är inga stora revolutioner i årets “Tech Radar”, men vissa trender går att urskilja om man jämför med resultatet från 2022 och 2021.

  • Vi jobbar fortfarande mest med Java, men andelen minskar. Kotlin och Python står för största uppgången från föregående år.
  • Vi är i stort sett nöjda med de programmeringsspråk vi använder, undantaget JavaScript som dalat de senaste åren och landar på betyg 5 på skalan 1–10.
  • Molnet står står sig starkt i den privata sektorn men har ännu inte slagit igenom i den offentliga sektorn.
  • Andelen hemarbete är fortfarande stort men har minskat från tidigare år. Alla i vår undersökning arbetar minst en dag per vecka hemifrån.
  • Bland API-typer har Protocol buffers/gRPC gått framåt starkt medan SOAP och GraphQL minskar.
Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer