Verdieping

Koppijn door koppelingen? Deze tips werken beter dan paracetamol

0

Een webshop runnen is geen eitje. Net als in een ‘gewone’ winkel moeten bijvoorbeeld de voorraden worden bijgehouden en moet de boekhouding op orde zijn. Koppelingen tussen verschillende online toepassingen maken dit mogelijk. Als het over koppelingen gaat, transformeren mooie webprojecten vaak tot monsterlijke hoofdpijndossiers. Voor iedereen die koppelingsprocessen zonder al te veel hoofdbrekens tot een goed einde wil brengen: tips die beter werken dan paracetamol.

Stel, je hebt een webshop en je verkoopt keukenspullen. Op je webshop kunnen mensen verschillende pannensets kopen. Die sets bestaan aan de achterkant van je webshop niet als zodanig, dus je wilt van elke pan altijd weten hoeveel je er nog op voorraad hebt. Hoe doe je dat zonder een turflijst of Excel-bestand bij te houden? Hoe zorg je dat het aantal stuks dat nog leverbaar is volgens de website altijd klopt?

Koppelingen

Koppelingen maken de communicatie mogelijk tussen verschillende online systemen. Bijvoorbeeld tussen je webshop en je administratiepakket. Of tussen je webshop en je voorraadbeheersysteem. Of tussen je website en je salessysteem. Zo zijn er diverse online systemen die het leven van webshophouders een stuk aangenamer kunnen maken. Het bekendste voorbeeld van een koppeling is een webshop met ERP. ERP staat voor Enterprise Resource Planning. ERP-systemen brengen de automatische afhandeling van logistieke, administratieve en financiële bedrijfsprocessen onder in één managementsysteem. Meerdere vliegen in een klap dus. Mooi! Alleen, het koppelen van een webshop aan een dergelijk systeem is helaas wel tig keer ingewikkelder dan het hangen van een aanhanger aan een trekhaak.

Zo communiceren online systemen

Online systemen communiceren met elkaar via een tussenlaag. Die tussenlaag is de eigenlijke koppeling. Het is belangrijk dat deze laag goed aansluit bij beide systemen. Kant-en-klare koppelingen bestaan wel voor bepaalde online systemen, maar het is slechts bij uitzondering dat dit soort koppelingen goed aansluit bij beide systemen. Vrijwel altijd zijn er aanpassingen nodig. Bij complexere systemen kom je onder een maatwerkkoppeling eigenlijk niet uit.

Wat kan er mis gaan?

Bij koppelingen die niet goed gebouwd zijn, blijkt na ingebruikneming van de shop vaak al snel dat bijvoorbeeld het voorraadbeheer niet klopt. Er zijn bijvoorbeeld vijf producten X verkocht via de webshop, maar de voorraad in het ERP-systeem blijft gelijk. Of iemand stelt een aanbieding in, maar de tijdelijke prijs komt niet mee naar de voorkant van de website. In beide gevallen gaat er iets mis met de communicatie tussen beide systemen. Waarschijnlijk is het verschil tussen beide systemen complexer dan verwacht en communiceren de velden die met elkaar zouden moeten communiceren dus niet met elkaar. Hierdoor kunnen er en duizend-en-een dingen mis gaan.

Hoe moet het wel?

Om een koppelingsproces van begin tot eind goed te volbrengen en gevaarlijke hick-ups te omzeilen, moet het hele traject goed verlopen. Het helpt om het traject uit te splitsen in vier fasen die nauw verband met elkaar houden. Voor elk van de volgende fases hebben we aan aantal tips voor je.

  • Inventarisatiefase
  • Technisch ontwerpfase
  • Creatie/realisatiefase
  • Testfase

1. Inventarisatiefase

Het eerste dat je altijd in je achterhoofd moet houden, is dat een succesvolle koppeling wordt gerealiseerd door twee partijen. Doorgaans is het internetbureau dat de website of webshop bouwt de ene partij. Wie de andere partij is, hangt af van het systeem waarmee gekoppeld moet worden. Stel, het internetbureau werkt met het webshopplatform Magento en de webshop moet gekoppeld worden met het ERP-systeem van SAP. Dan moet het internetbureau op zoek naar een partij die gespecialiseerd is in het realiseren van koppelingen vanaf de zijde van SAP, of het bureau moet samenwerken met de huidige SAP implementatiepartner. Bij voorkeur is dit een partij die vaker met het gekozen webshopplatform koppelt.

Kritische stappen in de inventarisatiefase:

  • Leer elkaar kennen. Architecten en developers van de twee koppelende partijen krijgen van tevoren helder of iedereen de wensen van de klant begrijpt. Door samen te beginnen, ontstaat gezamenlijk commitment om het project tot een goed einde te brengen en, bijvoorbeeld, de webshop en het ERP optimaal met elkaar te laten communiceren.
  • Verzamel alle relevante kennis over beide systemen. Om uiteindelijk passende koppelingen te maken, is het nogal essentieel om te weten waar de koppelpunten van beide online systemen zitten en hoe die eruitzien. Om een simpele vergelijking te maken: je hebt een aanhangwagen die verplaatst moet kunnen worden. Dan heb je een auto nodig met een trekhaak. Het koppelstuk van de aanhangwagen moet wel passen op de trekhaak, anders moeten er aan een of aan beide zijden aanpassingen worden gedaan. Zo werkt het ook met koppelingen. Om een goede doorloop van het project mogelijk te maken, is het slim om in het eerste stadium al te inventariseren wat er al aanwezig is en wat er eventueel nog aangepast moet worden. Een document met daarin de verschillende koppelingen in Jip & Janneke-taal geschreven, vormt een goede basis voor de samenwerking in het vervolgtraject en zorgt ervoor dat eventuele conflicten eerder opgelost of zelfs ondervangen kunnen worden.
  • Businessman holding bank card in flat design styleVoldoende zicht krijgen op processen en de complexiteit ervan. Stel, een bedrijf verkoopt fietsen. Aan de voorkant van de webshop is een fiets te zien. Kant en klaar, om zo mee weg te fietsen. Aan de achterkant van het systeem bestaat de fiets echter niet als zodanig. Na bestelling wordt de fiets namelijk samengesteld uit een frame, wielen, spaken, tandwielen en een fietsbel. Stel nu: de fiets wordt verkocht. Hoe weet het voorraadbeheersysteem dan welke afzonderlijke producten verkocht zijn en welke onderdelen mogelijk bijbesteld moeten worden om voldoende voorraad te houden? Bovendien zijn er misschien wel dertig soorten frames, acht soorten wielen, zes soorten spaken en tien soorten tandwielen en vijftien soorten fietsbellen op voorraad. De koppeling moet zo gebouwd worden dat beide systemen begrijpen dat de fiets uit de webshop relateert aan onderdelen x, y & z uit het ERP-pakket. Als onderdeel x niet op voorraad is, mag de fiets niet op voorraad getoond worden in de webshop. Om problemen in het bestelproces en het voorraadbeheer te voorkomen, moet zeker zijn dat de webshop en het ERP-systeem elkaar begrijpen.
  • Legacy-problemen moeten voorkomen worden. In koppelingsprojecten blijken er vaak problemen te zijn met de ‘nalatenschap’. Dat houdt meestal in dat klanten een verouderd systeem hebben dat ze willen koppelen. Maar de koppeling moet meteen een aantal gebreken fixen. Eigenlijk zou een compleet nieuw systeem gewenst zijn, maar er is bijvoorbeeld voorlopig geen budget. Dan moet er dus een koppeling komen tussen hun website of webshop en het online systeem dat de gewenste functionaliteiten biedt. Vaak is er wel een oplossing mogelijk, maar in dit soort gevallen kan het geen kwaad om de klant nog eens te wijzen op redenen om prioriteit te geven aan een nieuw online systeem. Is dit echt geen optie, dan heeft het de voorkeur om te zoeken naar een oplossing waarbij de website of webshop leidend gemaakt wordt. Voorraadbeheer wordt dan bijvoorbeeld gedaan met een functionaliteit van de webshop zelf.

2. Technisch ontwerp

Een koppeling bouwen op basis van trial & error is niet handig. Het technisch ontwerp is de basis. Behalve de zaken die uit de inventarisatiefase naar voren zijn gekomen, is het wijs om in ieder geval rekening te houden met een aantal zaken:

  • Zorg voor fallbacks. Stel, iemand doet een order via een webshop. Met de webshop is niks mis, maar het systeem waarmee de webshop communiceert ligt plat en de order wordt niet verwerkt in het ERP of in het boekhoudprogramma Exact. Niet handig, want je weet niet dat je een potentiële klant zonder bericht teleurstelt, of je boekhouding klopt niet en zoek dan maar eens uit waar dat aan ligt. Dit soort problemen voorkom je door te zorgen voor een fallback: een bevestiging van ontvangst van het andere systeem dat de bedoelde actie gelukt is.
  • Werk met handshakes. Check-check-dubbelcheck. Dat is een handshake. Met handshakes controleer je of de systemen die door de koppeling verbonden worden met dezelfde aantallen rekenen. Een handshake is dus een functionaliteit die bijvoorbeeld controleert of het aantal orders op een dag in het ene systeem klopt met het aantal orders in het andere systeem.
  • Denk aan logging en monitoring. Niks is zo vervelend als het opmerken dat de koppeling niet goed gaat, maar dat de fout niet te vinden is. Al snel staan beide partijen dan tegenover elkaar. Zorg daarom voor het goed monitoren en loggen van datgene wat afgehandeld is. Zo is het opsporen van bugs (eigenlijk missing features ;-)) een stuk makkelijker.
  • Stel alerts in. Bij het uitdenken en realiseren van de koppeling wordt vaak niet aan de mogelijkheid tot foutmeldingsalerts gedacht. Stel: het ERP ligt plat en orders komen niet door. Dat wil je dan eigenlijk meteen weten. Je ontvangt dan direct een melding van het monitoringsysteem dat er iets mis is. Dat kan bijvoorbeeld met een mailtje of sms.

3. Creatie/Realisatie

Zodra de creatiefase begint, zouden de meeste valkuilen al omzeild moeten zijn. Toch is er nog genoeg om scherp op te blijven:

  • Maak ruimte voor voortschrijdend inzicht. Tijdens de daadwerkelijke realisatie van de koppeling blijken er vaak toch nog problemen te zijn in een of beide systemen. Dat is bijna niet te voorkomen. Als het goed is, zijn dit geen levensgrote problemen, want die zouden in voorgaande fases ondervangen moeten zijn. Ontstaan er wel enorme problemen, dan is het wijs om te kijken welke kennis er blijkbaar ontbrak en bij wie, of wat er verkeerd is gegaan met de planning. Om de kleinere niet te voorkomen hick-ups goed op te lossen, is het essentieel om nu vooruit te plannen en ook tijd en menskracht in te calculeren voor aanpassingen naar aanleiding van voortschrijdend inzicht. Als je dit niet doet en je na oplevering van het project ineens ‘verrast’ wordt door kinderziekten in de koppeling, gaat er waarschijnlijk te veel tijd voorbij voordat je weer samen verder kunt. Dan is het project bij iedereen enigszins weggezakt en worden er makkelijker fouten gemaakt, waardoor er nog meer tijd verloren gaat. Kortom: om de doorlooptijd kort te houden, moeten beide systemen tijdens het koppelingsgesprek op orde zijn en er moet tijd ingecalculeerd zijn voor aanpassingen die nodig zijn op basis van voortschrijdend inzicht.
    Online transactions conceptZorg voor echte data! Na de creatiefase komt de testfase. Het kan verleidelijk zijn om in de testfase een routine-handeling te verrichten, maar vaak zal daarna in de praktijk blijken dat bijvoorbeeld karaktersets niet goed goed overkomen tussen verschillende online systemen. Om te voorkomen dat bijvoorbeeld iets simpels als een e-umlaut voor problemen zorgt, is het wel zo slim om in de realisatiefase echte data te verzamelen.

4. Testfase

Het moment van de waarheid. Hoewel, in een project waarbij de drie eerste fasen niet goed zijn verlopen, zijn dit vaak meerdere momenten van de waarheid.

Kies de juiste testomgeving. Dat alles perfect werkt in de testomgeving, betekent niet dat alles ook klopt als de site of shop live gaat. Een veelgemaakte fout is dat de server waarop getest wordt verschilt van de server waar de live site of shop op draait. Er kan bijvoorbeeld andere software opstaan of de server kan slecht onderhouden zijn.

Ten slotte: ‘bugs are missing features’

Hoeveel hoofdpijn een koppelingsproces uiteindelijk oplevert, is grotendeels afhankelijk van de aanwezige kennis en de inrichting van het proces. Veel valkuilen kunnen ruimschoots omzeild worden aan de hand van bovenstaande tips. Hobbels op de weg die zich alsnog voordoen kunnen ook voor grijze haren zorgen, maar in hoeverre dit het geval is, hangt af van je eigen benadering. Vandaar dat we zeggen: bugs are missing features. Niets meer, en niets minder.

Zorg verder voor voldoende ruimte om voortschrijdende inzichten te kunnen verwerken. Dat scheelt al met al weer een familieverpakking paracetamol!

Illustraties met dank aan Fotolia.