9 redenen waarom een slechte systeemkoppeling je geld kost

Vincent Hagen
Vincent Hagen

24 januari 2023

Systeemkoppelingen

E-commercelandschappen worden steeds complexer. Om digitale klantreizen over tientallen touchpoints te ondersteunen, koppelen we steeds meer systemen aan elkaar. Gaat dat niet goed? Dan levert dat serieuze problemen op. We noemen er negen (en we geven 5 tips om het beter te doen).

E-commerceplatformen, maatwerkoplossingen, SaaS-toepassingen en systemen van andere bedrijven zoals leveranciers en payment providers moeten real-time samenwerken. 

Bouw je de koppelingen tussen die systemen niet goed, dan is het onvoorspelbaar wat er gebeurt als een systeem even niet werkt en weet je vaak niet precies wat er moet gebeuren om een systeem aan te passen.

Wat maakt een koppeling ‘slecht’?

Een goede developer ruikt een slechte systeemkoppeling van 20 meter afstand. Maar toch is het goed om nog even op te schrijven wat we nou precies bedoelen met ‘een slechte koppeling’:

  1. Te diep geïntegreerd. Systemen moeten met elkaar praten via duidelijke API’s. Zodra je die gaat ‘omzeilen’ en systemen intern van elkaar afhankelijk maakt, bijvoorbeeld door aannames te doen over dataformaten of naamgeving, leg je de basis voor latere problemen.
  2. Te afhankelijk van andere systemen. Een koppeling moet ook werken als een systeem even offline is, de internetverbinding hapert of data om een andere reden niet snel genoeg beschikbaar is. Is de voortgang van jouw proces, bijvoorbeeld het plaatsen van een order, afhankelijk van een externe gebeurtenis die nooit komt? Dan ‘hangt’ je proces en zit je gebruiker naar een wit scherm te staren.

Waarom een slechte systeemkoppeling je geld kost

Er zijn dus goede redenen om de koppelingen in je systeemlandschap netjes te bouwen. Al kost dat je in eerste instantie meer tijd en geld. Dit zijn de redenen dat een slechte koppeling je uiteindelijk meer geld kost:

1. Nieuwe functionaliteit bouwen wordt tijdrovend

Als je nieuwe functies bouwt, wil je maar één systeem tegelijk aanpassen. Dat moet ook gewoon kunnen, zolang je de afspraken in de API respecteert. Rekening houden met allerlei afhankelijkheden ‘onder water’ maakt het doorontwikkelen van je systemen traag, onvoorspelbaar en frustrerend.

2. Je landschap wordt instabiel

Slechte koppelingen laten eventueel instabiel gedrag van externe systemen binnen op jouw eigen systemen. Overbelasting, netwerk-issues of onderhoud bij anderen kunnen dus zorgen dat jouw proces uit de lucht is. En dat kost je klanten.

3. Je performance gaat achteruit

Gebruikers houden niet van wachten. Dus als een slechte koppeling ze op data of bevestiging laat wachten, haken ze af.

4. Je kunt niet meer plannen

Hoe kun je development plannen, als je niet weet waar de afhankelijkheden in je systeemlandschap zitten? Want dat is een belangrijk effect van te diepe integraties: niemand weet meer wat waar mee samenhangt. Dan wordt innoveren lastig en raak je achter op markt en concurrentie.

5. Je loopt grote privacy- en securityrisico’s

Als je geen overzicht hebt, weet je ook niet welke data je waarheen stuurt. En dat is een serieus probleem. De wet eist van je dat je precies weet (en aan je gebruikers meldt) welke persoonlijke gegevens je bewaart en bewerkt. En dat je ze kunt vinden en verwijderen als een gebruiker daarom vraagt. In een slecht georganiseerd systeemlandschap lukt dat niet. En dan hebben we het nog niet over de imagoschade als data via een slechte koppeling ineens op straat komen te liggen.

6. Uitbreiden en aanpassen zijn lastig

Een slecht gekoppeld systeem is moeilijk te ontkoppelen. Wil je van software-aanbieder wisselen of maatwerk uitfaseren? Dan moet je op zoek naar verborgen afhankelijkheden. 

7. Ontwikkeling en onderhoud kosten meer tijd, geld en maatwerk

Slechte koppelingen brengen het gevaar mee dat je ‘eromheen gaat werken’. Dat betekent: nog meer maatwerk, nog meer slordige oplossingen en nog meer technical debt. Bij het onderhouden van die workarounds ben je dan weer veel extra tijd kwijt met het uitvinden hoe een koppeling precies in elkaar zit en wat de gevolgen zullen zijn van een aanpassing. Dat kost uren en dus geld. Door netter te koppelen bespaar je jezelf die frustratie.

8. Je bent afhankelijk van anderen

Hoe onafhankelijker je bent van externe systemen, hoe beter je je klantreis kunt maken. Een goede systeemkoppeling blijft werken, ook als een externe aanbieder wijzigingen doorvoert. Bij te diepe integratie loop je het risico dat je veel code moet herschrijven, omdat een externe aanbieder bijvoorbeeld zijn datastructuur of naamgeving aanpast. Dat kan enorme gevolgen hebben en zelfs betekenen dat je tijdelijk uit de lucht gaat.

5 tips voor een goede koppeling

Dat zijn de risico’s van een slechte koppeling. Gelukkig is er inmiddels veel kennis en technologie beschikbaar om koppelingen wél goed te maken. 5 tips:

1. Isoleer het met een anti-corruption layer. Breng een complete scheiding aan tussen jouw code en die van het externe systeem met een extra laag die de vertaling doet tussen de twee. Dan kun jij gewoon zeggen: ‘stuur dit bericht naar gebruiker Pietje’ en weet het andere platform: ‘ik moet een SMS met inhoud x sturen naar 06-12345678’

anti-corruption layer

2. Zorg dat je een lokale backup hebt. Is een systeem niet beschikbaar? Zorg dan dat je recente data hebt om alsnog iets te kunnen laten zien aan je gebruiker.

3. Probeer een andere route. Veel e-commercepartijen werken bijvoorbeeld met 2 betaalproviders, zodat er altijd eentje is die het doet.

4. Doe alsof er niets aan de hand is en repareer het later. Kun je een opdracht nu niet uitvoeren, omdat een gekoppeld systeem offline is? Dan kun je hem op je eigen systemen bewaren en het later nog een keer proberen. Aan de gebruiker laat je dan een succes-scherm zien. Zo zorg je toch voor een goede gebruikerservaring. Lukt het later toch niet? Dan stuur je de gebruiker een mail. Deze manier van werken noemen we ook wel ‘optimistic updates’. Het verhaal gaat dat dit de reden was dat de app Pokémon Go zo goed en snel kon schalen toen hij ineens enorm populair werd.

5. Toon een nette foutmelding. Kun je echt helemaal niet verder? Zorg dan in ieder geval dat je je gebruiker goed informeert. In je eigen huisstijl en met een duidelijke instructie voor hoe het nu verder moet.

Wil je, naast deze praktische tips, strategisch en structureel aan het werk met het beter koppelen van je IT-landschap? Lees dan het Handboek API-management en schrijf je in voor ons webinar over Composable Commerce, samen met Alumio.