Adres
Utrecht, Veenendaal

Werktijden
Maandag tot en met vrijdag: 9.00 tot 17.00 uur
Weekend: 10.00 tot 17.00 uur

a.s.r. Component Architecture Restructure

a.s.r. had een nieuwe identiteit nodig op zijn corporateplatform, en het obstakel was de componentlaag eronder. Ik herstructureerde eerst die laag, dekte hem af met geautomatiseerde tests en rolde de wijziging daarna uit over een live commercieel platform.

  • Opdrachtgevera.s.r., een van de grootste verzekeraars in Nederland
  • Periode2024 tot 2026
  • RolFreelance full stack engineer
  • TeamScrum team van 7 developers, 9 mensen in totaal
  • Afgestemd metMarketing en IT, rond de releasekalender
  • Een componentlaag geherstructureerd zodat een platformbrede wijziging één keer wordt gemaakt, niet op tientallen plekken.
  • Geautomatiseerde tests rondom alles wat de herstructurering raakte, zodat een wijziging niet stilletjes iets in het gedrag kon breken.
  • Uitgerold over een live commercieel platform zonder ook maar één lopende campagne te verstoren.

Context

Het a.s.r.-corporateplatform is een live commerciële site met lopende campagnes. De componentlaag was over de jaren gegroeid zonder consistente structuur, dus een wijziging die één keer gemaakt had moeten worden, moest op tientallen plekken worden gemaakt, en er was geen testdekking om vast te stellen of een van die wijzigingen het gedrag had verstoord.

De uitdaging

Iets uitrollen over een live commercieel platform is eerst een planningsprobleem en pas daarna een engineeringprobleem. Marketing had campagnes lopen en IT had releases gepland, en geen van beide zou pauzeren. Het werk moest dus worden ingepland tegen een releasekalender die al bestond, en elke wijziging moest aantoonbaar veilig zijn voordat die er ook maar in de buurt kwam.

Wat ik deed

  • De componentlaag geherstructureerd, zodat een platformbrede wijziging één keer wordt vastgelegd en daarna onderhoudbaar blijft, wat het verschil is tussen een identiteit aanbrengen en die volgend jaar opnieuw aanbrengen.
  • Geautomatiseerde tests om alles heen gezet wat werd aangeraakt, in Playwright, zodat een herstructurering niet stilletjes het gedrag kon veranderen op een pagina waar niemand naar omkeek.
  • Het werk aan codekwaliteit gedaan dat de herstructurering blootlegde, in plaats van eromheen te werken, want dat is wat de tweede wijziging goedkoper maakt dan de eerste.
  • De uitrol ingepland tegen de releasekalender, en met marketing en IT afgesproken wat wanneer veranderde, in beide richtingen.
  • De nieuwe identiteit op die structuur aangebracht, consistent, wat alleen mogelijk was omdat de structuur er eerst was.

Het resultaat

  • De nieuwe identiteit ging er consistent op, omdat de structuur eronder die kon dragen.
  • Een componentlaag die onderhoudbaarder uit het project kwam dan erin ging.
  • Testdekking waar die er niet was, op de gebieden waar het meest verandert.

Gebruikte technologieën

  • .NET: Backendservices achter het corporate platform.
  • C#: De taal van die services.
  • GraphQL: De API-laag over het platform.
  • Azure: Het cloudplatform waarop het werk wordt gebouwd, uitgebracht en gedraaid.
  • Azure Pipelines: De deployment-pipelines achter de releases.
  • CI/CD: Het releasepad waarlangs de uitrol werd ingepland.
  • TypeScript: De taal over de hele componentlaag.
  • Sitecore: Het CMS dat de content over de hele site beheert.
  • Vue.js: De componentlaag die is geherstructureerd en met tests is afgedekt.
  • Playwright: Geautomatiseerde dekking rond de gebieden die werden gewijzigd.
  • SCRUM: Hoe het werk werd gepland en opgeleverd.

Een componentlaag herstructureren onder live verkeer is vooral een kwestie van volgorde, en ik vertel je graag hoe ik zoiets inplan..

Ideeën tot werkelijkheid brengen
door elegante code.

Marten Den Heijer