Angular upgraden: waarom uitstellen leidt tot meerwerk

Thierry van der Vloet is CTO en IT-architect bij Vormer. In zijn dagelijks werk houdt hij zich bezig met bouwen, verbeteren en vooruitkijken, vooral als technologie onder je voeten blijft bewegen.

Maar wat hij vooral doet? Complexiteit terugbrengen tot iets wat je kunt overzien. En dat komt goed van pas bij één onderwerp waar bijna elk developmentteam vroeg of laat tegenaan loopt: upgrades.

We spraken Thierry over het upgraden van Angular binnen Pass Software, de haken en ogen die daarbij horen en waarom “even een versie omhoog” soms voelt alsof je je hele applicatie opnieuw moet leren kennen.

Software developer zit achter zijn bureau

PASS Software: software die wereldwijd zorgprocessen ondersteunt

Binnen Vormer werken we aan de volgende versie van PASS Software: slimme softwareoplossingen voor de zorg. PASS Software wordt onder andere gebruikt binnen klinisch-genetische centra en vaat- en lipidencentra en ondersteunt zorgprofessionals in complexe en datagedreven processen.

Met inmiddels meer dan 50 organisaties in landen zoals Nederland, België, Duitsland, Zwitserland, Engeland en Nieuw-Zeeland, wordt PASS wereldwijd ingezet. Achter die software staat een team dat continu werkt aan ontwikkeling, verbetering en stabiliteit. Als CTO en IT-architect is Thierry eindverantwoordelijk voor de technische doorontwikkeling van PASS  en daar horen ook structurele updates bij.

Volgens Thierry begint het belang van regelmatig upgraden bij een simpele realiteit: technologie staat nooit stil. “Risico’s ontstaan wanneer onderdelen op een gegeven moment niet meer compatibel zijn.” En dat risico is reëel, juist omdat software nooit op zichzelf staat.

“Eén applicatie is nooit een ‘enkele’ applicatie,” zegt hij. “Het koppelt met van alles en nog wat: authenticatiecomponenten, API’s, databases, security en dataweergave.”

Binnen de vernieuwing van PASS Software werd dit duidelijk merkbaar. “Op het moment dat we PASS Software opnieuw onder handen namen, was Angular versie 17 de standaard. In opvolgende versies werden nieuwe API’s en werkwijzen geïntroduceerd. Als dat verandert en alles reageert op elkaar, dan moet je mee.”

En juist daar zit volgens Thierry vaak de onderschatting. “Het lijkt soms een kleine update van de ene versie naar de andere, maar uiteindelijk raakt het je hele applicatie van voor naar achter en van links naar rechts.”

Het logo van Pass Software

Dependency-chaos: het pakket dat achterloopt bepaalt jouw tempo

Als je vraagt waar upgrades bij sommige bedrijven écht stuklopen, komt Thierry snel bij dependencies uit. Niet per se Angular zelf, maar alles eromheen.

“Daar zit een risico in. Vooral packages die koppelingen maken met externe systemen, zoals authenticatie-oplossingen, moeten ook mee geüpgraded worden.”

En dat maakt je afhankelijk. “De package dat het verst achterloopt houd je uiteindelijk tegen om te upgraden.” Als het niet compatible is, heb je maar twee smaken: wachten, of vervangen. Lukt het niet om te vernieuwen, dan moet je overstappen op een alternatief of tijdelijk werken met workarounds.

Standalone en signals: een andere manier van denken

Angular verandert structureel. “Angular-componenten gaan steeds meer richting een standalone-based systeem. De basis opzet van een Angular applicatie is veranderd en daardoor verandert de structuur van je applicatie fundamenteel.

Ook signals passen in die beweging. Thierry begrijpt waarom Angular dit doet. “De oude manier zorgde ervoor dat dingen vaak opnieuw werden geüpdatet terwijl dat niet nodig was. Updates konden worden getriggerd door algemene events, zoals muisklikken, ook als die geen zichtbare wijziging veroorzaakten. Daardoor werd meer herberekend dan nodig was en kon een update aanvoelen als een soort big bang, in plaats van een gerichte aanpassing.”

Met signals wordt dat preciezer. “Angular kan beter volgen wat afhankelijk is van wat. Performance wordt beter, packages worden kleiner en data wordt gerichter geladen.”

Maar er zit ook een prijs aan. “Het vergt een compleet andere manier van bouwen,” zegt Thierry.

“Ontwikkelaars die gewend zijn aan de oude aanpak moeten hun denkmodel aanpassen. Reactive state management vraagt een andere manier van kijken: als je het voor het eerst ziet, kan het verwarrend zijn. Maar zodra je begrijpt hoe signals en dependency-tracking werken, wordt duidelijk waarom Angular voor deze aanpak kiest.”

Stabiliteit in productie: het verraderlijke zit in wat je niet ziet

Een upgrade draait niet alleen om techniek, maar om hoe de software zich in de praktijk.

“Bij fundamentele wijzigingen zijn niet alle problemen direct zichtbaar,” zegt Thierry. “Ook als tests slagen, kan het gebeuren dat iets in de interface anders werkt dan verwacht. Dat soort issues zie je vaak pas wanneer je de functionaliteit daadwerkelijk opent.”

Niet alles resulteert daarbij in een duidelijke foutmelding. “Het kan bijvoorbeeld gebeuren dat een vertaling ontbreekt doordat ergens een import niet goed staat, zonder dat het systeem daar direct melding van maakt.”

Unittests lossen dat niet automatisch op. “Tenzij je heel specifiek test op bepaalde functionaliteit, worden dit soort effecten niet altijd afgevangen. Daarom is het belangrijk om na een upgrade niet alleen op tests te vertrouwen, maar ook kritisch te kijken naar het daadwerkelijke gedrag van de applicatie.”

Angular foto op een laptop

De belangrijkste les: beweeg mee, in plaats van later inhalen
Thierry’s grootste les is opvallend simpel: begin eerder.

“Je moet upgrades actief bijhouden en er op tijd naar kijken,” zegt hij. “Als je te ver achterloopt en er blijken incompatibiliteiten te zijn, wordt het al snel een enorme hoeveelheid werk.”

Daarom is zijn advies praktisch. “Hanteer vaste intervallen. Upgrade bijvoorbeeld elk kwartaal of elk half jaar.” Ook als er functioneel niets nieuws nodig lijkt. “Het is onderhoud dat je moet bijhouden.”

Daarnaast adviseert hij om regelmatig ruimte te maken om met nieuwe functionaliteiten te experimenteren. Door developers en organisaties die ruimte te geven, ontstaat er gevoel bij wat er aankomt. Dat betaalt zich later terug, omdat upgrades minder tijd en moeite kosten.

Want als je het jarenlang laat liggen, verandert onderhoud langzaam in verbouwen. “Dan moet je soms een complete applicatie ombouwen om mee te kunnen met nieuwe functionaliteit.”

APK of nieuwe versnellingsbak?

Thierry maakt een belangrijk onderscheid. Als je upgrades frequent uitvoert, blijft het beheersbaar. “Dan is het onderhoud,” zegt hij. “Een soort APK.”

Maar sommige veranderingen zijn fundamenteel. En daar is hij duidelijk over. “De introductie van signals en reactive state management is niet alleen onderhoud. Dat is alsof je een compleet nieuwe versnellingsbak inbouwt. Alsof je van handgeschakeld naar een automaat gaat.”

Thierry kijkt daarbij ook vooruit naar de ontwikkeling van Angular en het bredere front-end landschap. Hij verwacht dat het framework zich verder blijft ontwikkelen richting applicaties die kleiner, sneller en performanter zijn.

Tegelijk ziet hij een bredere beweging in de markt: front-end frameworks groeien steeds meer naar elkaar toe, terwijl browsers en JavaScript zelf steeds meer standaardfunctionaliteit bieden die voorheen alleen via een framework beschikbaar was.

“Persoonlijk ben ik een voorstander van standaardisatie,” zegt hij. “Als de browser iets standaard kan, gebruik dat dan. Los het niet onnodig op met extra libraries.”

Het advies voor teams die twijfelen

Voor organisaties die twijfelen of ze nu moeten upgraden, is Thierry pragmatisch: “Als je nu op versie 17 of 18 zit kan je relatief eenvoudig mee naar een recente versie waar oude en nieuwe manieren nog ondersteund worden, doe dat daarom nu.”

Waarom? Omdat het anders ineens hard gaat. “Oudere methodes worden rond versie 23 verwijderd. Als je dan nog niet mee bent, gaat veel stuk en wordt het bijna een herbouw.”

Wil jij werken in een team waar technische keuzes niet worden uitgesteld maar slim worden aangepakt en waar je bouwt aan producten zoals PASS Software? Kom langs. Thierry en zijn collega’s laten je graag zien hoe wij het doen.

Volgende
Volgende

AI in de logistiek: 5 bewezen toepassingen die direct waarde leveren