Wij weten wat werkt
Expertise
XPRTZ bestaat uit gedreven Cloud, Platform en Software Engineers en Architecten die allen een passie delen de best mogelijke oplossing te bouwen voor onze klanten. Wij zijn nieuwsgierig, leergierig, zelfkritisch en pushen elkaar om scherp te blijven en onszelf continu te verbeteren
Hierdoor hebben wij een duidelijke mening over de verschillende technologieën die wij dagelijks gebruiken en adviseren. Daarnaast verandert het technische landschap continue en vinden wij het noodzakelijk daarvan op de hoogte te blijven.
Om hier richting aan te geven hebben wij sinds de oprichting van XPRTZ een Technology Radar. De Technology Radar maakt zichtbaar hoe wij denken over bestaande, nieuwe en aankomende technologieën.
Technology Radar
Tools
Adopt
- 1. Open-Source Software register
Waarom organisaties een open-source software-register nodig hebben
Moderne softwareontwikkeling is sterk afhankelijk van open-sourcecomponenten uit ecosystemen zoals NuGet en npm. Hoewel deze componenten de ontwikkelsnelheid verhogen, brengen zij ook risico’s met zich mee op het gebied van governance, beveiliging en compliance wanneer zij zonder toezicht en regels worden toegepast.
Recente incidenten, zoals SolarWinds, Log4Shell en de Axios supply-chain attack, in de software supply chain laten zien dat afhankelijkheidsrisico’s niet theoretisch zijn, en de huidige mogelijkheden van AI bieden nieuwe manieren om deze risico’s verder te vergroten. Tegelijkertijd maakt het tempo van softwareontwikkeling het steeds lastiger om handmatig controle te houden. Veel grote organisaties hebben hiervoor al formele beheersmaatregelen ingericht, maar dezelfde noodzaak geldt ook voor middelgrote en kleinere organisaties. De drempel lijkt groot, maar met de juiste aanpak kan dit relatief eenvoudig worden ingericht en onderhouden.
- 6. GitHub
GitHub is een platform voor softwareontwikkeling en samenwerking op basis van Git. Het ondersteunt ontwikkelteams bij het ontwikkelen van software, van code-review tot documentatie en projectmanagement.
Met GitHub Actions biedt GitHub een volledig CI/CD-platform voor het automatiseren van het ontwikkelproces. Het hoge innovatietempo maakt het een goede keuze voor organisaties die snel willen ontwikkelen. Voor organisaties met veel aandacht voor governance-, compliance- of release-eisen is GitHub waarschijnlijk niet voldoende. Kijk dan naar Azure DevOps voor een hosted oplossing of GitLab voor een self hosted oplossing.
Daarnaast investeert GitHub sterk in AI-ondersteunde softwareontwikkeling via GitHub Copilot, waarmee ontwikkelaars ondersteuning krijgen bij het schrijven, testen, documenteren en onderhouden van code. Hierdoor ontwikkelt GitHub zich steeds meer tot een integraal platform voor de volledige softwareontwikkelcyclus (DevOps).
- 9. Cursor
Cursor is een AI-gedreven code-editor die vibe coding praktisch toepasbaar maakt binnen softwareontwikkeling. In plaats van handmatig alle code te schrijven, beschrijft een ontwikkelaar functionaliteiten, wijzigingen of bugs in natuurlijke taal, waarna Cursor code kan genereren, aanpassen en verbeteren binnen de bestaande codebase.
Trial
- 8. Automatische dependency trackers
Moderne softwareapplicaties zijn afhankelijk van een groot aantal open-source componenten die voortdurend worden bijgewerkt. Het handmatig beheren van deze afhankelijkheden is tijdrovend en wordt in de praktijk vaak uitgesteld. Hierdoor blijven verouderde componenten langer in gebruik en neemt het risico op beveiligingsproblemen en compatibiliteitsproblemen toe.
Het automatiseren van dependency-updates zorgt ervoor dat nieuwe versies en beveiligingspatches sneller worden geïdentificeerd en toegepast. Daarnaast vermindert automatisering de kans op menselijke fouten en krijgen ontwikkelteams meer tijd voor het ontwikkelen van nieuwe functionaliteit. Hoewel automatisering veel werk uit handen neemt, blijven testen en een goede governance noodzakelijk om wijzigingen gecontroleerd door te voeren.
Technieken
Adopt
- 12. Modular Monolith
Een Modular Monolith is een architectuur waarbij een applicatie wordt opgedeeld in individuele modules die zoveel mogelijk ontkoppeld zijn van elkaar. De modules worden echter nog wel als een geheel gebouwd en deployed. Daarmee onderscheid het zich van een Microservice architectuur, waarbij de individuele modules (services) ook allemaal los gebouwd en deployed worden.
Omdat je de overhead van het ondersteunen van meerdere verschillende services zoals bij een Microservice architectuur niet hebt is een Modular Monolith een stuk eenvoudiger te implementeren. Tegelijkertijd heb je wel de losse koppeling tussen modules waardoor het beter onderhoudbaar en uitbreidbaar is dan een tradionele monoliet. Daarom wordt een Modular Monolith wel gezien als de "gulden middenweg" tussen die twee architecturen.
- 14. Vibe coding
Vibe coding is een softwareontwikkelingsmethodiek waarbij een ontwikkelaar niet langer zelf de code schrijft, maar dit grotendeels overlaat aan een AI-agent op basis van featurebeschrijvende opdrachten (prompts). In plaats van handmatig functionaliteit te programmeren, beschrijft de ontwikkelaar wat de software moet doen, waarna de AI de bijbehorende code genereert.
Deze aanpak maakt het mogelijk om prototypes zeer snel en efficiënt te ontwikkelen. Ideeën kunnen in korte tijd worden gevalideerd en iteratief worden verbeterd. Met de juiste kwaliteitscontroles, zoals code reviews, testen, architectuurkeuzes en beveiligingschecks, kan vibe coding daarnaast ook leiden tot productierijpe software. De rol van de ontwikkelaar verschuift hierbij van primair programmeren naar het sturen, beoordelen en verfijnen van de output van de AI.
Trial
- 3. Mutation Testing
Wat is het?
Code coverage vertelt je welke regels code worden uitgevoerd door je tests, maar niet of je tests ook daadwerkelijk fouten detecteren. Een test zonder asserts haalt immers ook 100% coverage. Mutation testing vult dit gat: het meet de kwaliteit van je testsuite in plaats van alleen de dekking.
Het principe is simpel. Een mutation-testingtool introduceert automatisch kleine wijzigingen ("mutaties") in je productiecode: een
>wordt een>=, een+wordt een-, een boolean wordt omgedraaid, een return value wordt vervangen. Vervolgens draait de tool je testsuite tegen elke gemuteerde versie. Faalt er minstens één test, dan is de mutant "gekilled" — je tests hebben de fout gevangen. Slaagt de hele suite, dan heeft de mutant het "overleefd" en heb je een blinde vlek gevonden. Het resultaat is een mutation score: het percentage gekillde mutanten.Tooling
Voor de meeste ecosystemen bestaat een volwassen tool: Stryker voor JavaScript/TypeScript, .NET (Stryker.NET) en Scala, PIT (Pitest) voor de JVM, mutmut en cosmic-ray voor Python en cargo-mutants voor Rust. Stryker en PIT zijn het meest volwassen, met goede CI-integratie, incrementele runs en heldere HTML-rapportages.
Assess
- 13. Passwordless Login
Passwordless login is een authenticatie methode waarbij een gebruiker toegang krijgt tot een applicatie zonder het gebruik van een wachtwoord. In plaats daarvan wordt een andere methode gebruikt om de identiteit van de gebruiker vast te stellen. Die andere methode valt meestal in twee categorieen: "iets dat de gebruiker heeft" (een telefoon of een OTP token) of "iets dat de gebruiker is" (vingerafdruk, gezichts- of stemherkenning).
Passwordless authenticatie is niet hetzelfde als 2FA of MFA, waarbij een of meerdere extra lagen van beveiliging worden gebruikt bovenop een wachtwoord. Bij Passwordless authenticatie is een wachtwoord helemaal niet meer nodig waardoor het een betere gebruikerservaring kan bieden.
Hold
- 11. Microservice Architecture
Een microservice architectuur is een architectuur pattern waarbij een applicatie is opgedeeld in een verzameling van services die zo veel mogelijk ontkoppeld zijn van elkaar.
Deze architectuur stelt het ontwikkelteam in staat alle services los van elkaar te ontwikkelen, deployen en te schalen. Daar staat tegenover dat het een aanzienlijke extra complexiteit met zich mee brengt ten opzichte van een monolitische applicatie.
Platformen
Adopt
- 4. Scaleway
Scaleway is een Europese cloudprovider met datacenters in onder andere Parijs, Amsterdam en Warschau. Wat voor ons het platform interessant maakt is dat het een echt Europees alternatief biedt voor AWS en Azure. Data blijft onder Europese jurisdictie, buiten het bereik van wetgeving zoals de Amerikaanse CLOUD Act. Waar veel "soevereine" alternatieven blijven steken bij een handjevol basisdiensten, biedt Scaleway ruim honderd producten, van managed Kubernetes en databases tot serverless, GPU-clusters en objectopslag. Je hoeft dus niet in te leveren op mogelijkheden om aan datasoevereiniteit te winnen.
De overstap is redelijk makkelijk als je al op AWS draait. De Object Storage is volledig compatibel met de Amazon S3 API, waardoor bestaande AWS-tooling (CLI, SDK's en backup-software) zonder aanpassingen blijft werken. De Terraform/OpenTofu-provider wordt behandeld als first-class citizen en dekt zo goed als alle producten die ze bieden. De prijzen zijn transparant en direct in het portaal zichtbaar zodat je vooraf weet wat de resources die je deployed gaan kosten. Wat ons daarnaast vertrouwen geeft, is het tempo waarmee het platform zich ontwikkelt: Scaleway brengt in hoog tempo nieuwe diensten uit (denk aan AI-inference, nieuwe regio's en observability) dit allemaal met zo veel mogelijk opensource technieken. Ook is Scaleway toegankelijk en responsief richting gebruikers over product gaps en hun roadmap om die gaps te vullen. Wij draaien er naar volle tevredenheid productie-infrastructuur op.
- 5. Kubernetes
Kubernetes is inmiddels een volwassen technologie die zonder terughoudendheid in productie ingezet kan worden. Het is de facto standaard geworden voor het orkestreren van containers en heeft zich de afgelopen jaren bewezen op schaal, bij zowel kleine teams als grote enterprises.
Het grootste voordeel zit in het declaratieve, self-healing karakter van het platform. Je beschrijft de gewenste eindsituatie en Kubernetes bewaakt en herstelt dit automatisch. Crasht een Pod, dan wordt deze automatisch herstart. Valt een node uit, dan worden workloads naar een andere node gebracht. Gecombineerd met Horizontal/Vertical Pod Autoscaling schaalt de infrastructuur mee met de belasting, zonder handmatig ingrijpen. Dit is het onderdeel dat dagelijks waarde oplevert.
Kubernetes biedt een vorm van portabiliteit. Workloads die volgens de standaarden zijn gebouwd, zijn relatief eenvoudig te verplaatsen tussen omgevingen, mits er niet te zwaar geleund wordt op cloud-specifieke extensies zoals load balancers, storage classes of IAM-integraties. Een deployment die on-premise draait, kan met beperkte aanpassingen ook op een managed dienst als Azure Kubernetes Service (AKS) of Amazon EKS draaien. Dit beperkt vendor lock-in en geeft flexibiliteit in de keuze van cloudprovider.
Je profiteert van een enorm ecosysteem (Helm, operators, service meshes, GitOps-tooling) en een actieve open source community. Bovendien staat het platform onder governance van de CNCF, met bijdragen van alle grote cloudproviders en techbedrijven — dat betekent geen single-vendor afhankelijkheid in de ontwikkeling van het project zelf en een breed gedragen roadmap.
De nadelen zitten vooral in de complexiteit. Kubernetes heeft een steile leercurve en vraagt om specifieke kennis van concepten als networking, RBAC en storage. Zelfbeheerde clusters brengen operationele last met zich mee (upgrades, security patches, etcd-beheer), wat voor kleinere teams zwaar kan wegen. Managed varianten zoals AKS en EKS verlichten dit aanzienlijk, maar brengen weer eigen beperkingen en kosten met zich mee. Ook kan het platform voor eenvoudige workloads simpelweg overkill zijn.
Talen & Frameworks
Adopt
- 10. Functioneel Programmeren
Functioneel programmeren is een programmeerstijl die draait om het gebruik van functies. Deze functies beschrijven wat de computer moet berekenen in plaats van hoe de computer stappen opeenvolgend moet uitvoeren.
In functionele programmeertalen zijn functies "first-class entities", wat betekent dat je ze als variabelen mee kan geven aan andere functies en het resultaat van een functie kan ook weer een nieuwe functie zijn. Hierdoor kan je heel makkelijk kleine, makkelijk te begrijpen en testen functies combineren tot grotere functies en modules.
Assess
- 7. Python
Python is een veelzijdige, high-level programmeertaal die bekendstaat om zijn leesbare syntax en brede toepasbaarheid. De taal wordt ingezet voor uiteenlopende doeleinden: van data-analyse en scripting tot webdevelopment en systeemintegraties.
Wat Python onderscheidt is de positie als de facto standaard binnen AI en machine learning; een domein dat steeds meer opdrachten raakt. Het ecosysteem is volwassen, de community enorm, en voor vrijwel elk probleem bestaat al een goed onderhouden bibliotheek.
Hold
- 2. Blazor
Wat is Blazor?
Blazor is Microsofts framework voor het bouwen van interactieve web-UI's met C# in plaats van JavaScript. Het kent meerdere render-modi: Blazor Server (UI-events lopen via een SignalR-verbinding naar de server), Blazor WebAssembly (de .NET-runtime draait in de browser via WASM) en sinds .NET 8 een hybride model met server-side rendering en per component te kiezen interactiviteit. De belofte: full-stack ontwikkeling binnen één taal en één ecosysteem, met herbruikbare componenten en zonder aparte frontend-stack.
Over de radar
De radar geeft een inkijkje in onze werkwijze. Je ziet welke technologieën wij vertrouwen, welke wij mijden en waarom. Het vertegenwoordigt onze mening.
De radar is gebaseerd op de kennis en ervaring binnen XPRTZ. Het is geen complete lijst van alle mogelijke technologieën, dat is onmogelijk. We focussen op technologieën die wij actief gebruiken, tegenkomen bij onze klanten of interessant genoeg vinden om verder te verkennen.
De radar is net als ons vakgebied in beweging. Er komen constant nieuwe technologieën en bestaande technologieën veranderen of verdwijnen. Wij werken de radar daar op bij. Zo blijft de radar actueel en relevant en blijft het altijd een eerlijke afspiegeling van onze visie op het technische landschap waarin wij opereren.
Hoe werkt de radar?
De radar is onderverdeeld in twee dimensies: Kwadranten en Ringen.
Kwadranten
De kwadranten groeperen de verschillende technologieën in vier gebieden:
Tools
Specifieke software applicaties die ons werk ondersteunen.
Technieken
Principes, praktijken en methodieken die wij toepassen om betere kwaliteit software te leveren.
Platformen
Ecosystemen en omgevingen waar wij onze applicaties ontwikkelen, testen en uitrollen.
Talen & Frameworks
Programmeertalen en frameworks die wij gebruiken om onze software te schrijven.
Ringen
De ringen geven de adoptie lifecycle van elke technologie weer. Dit zegt iets over de volwassenheid van de technologie en of wij deze technologie wel of niet zouden aanraden.
Adopt
Bewezen technologieën die wij zonder meer zouden aanraden om toe te passen als ze voldoen aan de behoefte van het project.
Trial
Opkomende technologieën die het waard zijn om mee te experimenteren in projecten die dat toelaten.
Assess
Veelbelovende technologieën om in de gaten te houden en verder te evalueren.
Hold
Technologieën waarvan wij adviseren om deze niet toe te passen voor nieuwe projecten. Het is prima om ze te blijven gebruiken in bestaande projecten, maar als we de keuze hebben dan gebruiken we ze niet meer.