Maatwerkkoppeling of gestandaardiseerde API integratie: wat is het verschil?
Ontdek hoe herbruikbare bouwstenen maatwerk integraties met Exact eenvoudiger, onderhoudbaarder en beter schaalbaar voor organisaties maken.
7 min leestijd

In dit artikel
“Dit wordt maatwerk.”
Wie al wat langer met software-integraties werkt, heeft die zin waarschijnlijk vaker gehoord.
Traditioneel betekende maatwerk vaak een uitgebreid traject. Consultants brachten processen in kaart, developers bouwden een specifieke koppeling en ergens tussen de applicaties kwamen een externe database, scripts, BPA-tooling en andere technische componenten te staan.
Dat kan prima werken.
Maar het betekent ook dat voor iedere nieuwe koppeling veel analyse-, consultancy- en ontwikkeluren nodig zijn.
En er ontstaat een tweede probleem: iedere maatwerkkoppeling wordt een unieke technische oplossing die vervolgens jarenlang onderhouden moet worden.
Bij Sense-Cloud zijn we daarom al geruime tijd gestopt met integraties op die manier bouwen.
Niet omdat er geen maatwerk meer nodig is.
Maar omdat we vinden dat je niet telkens opnieuw technische problemen moet oplossen die je al eerder hebt opgelost.
Het probleem met traditioneel maatwerk
Stel dat twee applicaties met elkaar moeten communiceren.
Bij een traditioneel maatwerktraject wordt eerst onderzocht hoe beide systemen technisch benaderd kunnen worden. Vervolgens wordt bepaald waar gegevens worden opgeslagen, welke tooling nodig is, hoe gegevens worden verwerkt en welke scripts of processen daarvoor moeten worden ontwikkeld.
Daarna wordt de koppeling gebouwd.
Bij de volgende klant begint een groot deel van dat traject opnieuw.
Dat kost niet alleen tijd. Het zorgt er ook voor dat organisaties na verloop van tijd een landschap kunnen krijgen van verschillende maatwerkkoppelingen, databases, scripts en BPA-processen.
Iedere koppeling heeft zijn eigen technische geschiedenis.
En vaak ook zijn eigen ontwikkelaar of consultant die precies weet waarom bepaalde keuzes ooit zijn gemaakt.
Wat gebeurt er als die kennis verdwijnt?
Daar zit een risico dat bij de aanschaf van een koppeling niet altijd zichtbaar is.
Maatwerkoplossingen zijn niet per definitie slecht gedocumenteerd. Maar sterk klantspecifieke oplossingen zijn vaak niet universeel opgebouwd en documentatie loopt in de praktijk niet altijd volledig mee met jaren aan wijzigingen.
Waarom staat die database ertussen?
Waarom wordt een bepaald veld eerst geconverteerd?
Waarom draait dat script iedere nacht?
Welke processen zijn afhankelijk van elkaar?
En wat gebeurt er als één onderdeel uitvalt?
Wanneer de oorspronkelijke consultant of developer niet meer beschikbaar is, moet een opvolger zich eerst verdiepen in een oplossing die iemand anders jaren geleden heeft bedacht.
Soms kan goede documentatie daarbij helpen.
Maar soms moet een aanzienlijk deel van de werking opnieuw worden uitgezocht.
En als vervangen te kostbaar of te risicovol lijkt, ontstaat een ander patroon: er wordt steeds verder gebouwd op bestaande techniek.
Een extra script. Een nieuwe tabel. Nog een workaround. Een aanpassing in de BPA-tooling.
Iedere afzonderlijke wijziging kan logisch zijn, terwijl het geheel steeds moeilijker te begrijpen en te beheren wordt.
Maatwerk is niet het probleem
Bedrijven werken nu eenmaal verschillend.
De ene organisatie verwerkt een order anders dan de andere. Een WMS kan bij bedrijf A een andere rol hebben dan bij bedrijf B. En ook Exact kan per organisatie anders zijn ingericht.
Dat willen we helemaal niet standaardiseren.
Het bedrijfsproces is juist het gedeelte waarin maatwerk waarde toevoegt.
De relevante vraag is daarom:
Welk gedeelte van een koppeling is écht klantspecifiek en welk gedeelte kunnen we één keer goed ontwikkelen en vervolgens hergebruiken?
Dat onderscheid vormt de basis van onze aanpak.
Clickker standaardiseert de toegang tot Exact
Aan de Exact-kant hebben we dat opgelost met Clickker® | De dedicated API voor Exact.
Clickker biedt API-toegang tot Exact Online, Exact Globe, Globe+ en Exact Financials.
Bij on-premise Exact-omgevingen draait Clickker op de server waarop Exact is geïnstalleerd. Er hoeft dus niet eerst een externe database tussen Exact en de andere applicatie te worden geplaatst waarin Exact-data wordt gekopieerd of gesynchroniseerd.
De verbinding kan rechtstreeks worden ingericht:
Externe applicatie ↔ Clickker ↔ Exact
Daarmee hoeven we de technische toegang tot Exact niet voor iedere nieuwe koppeling opnieuw te ontwikkelen.
Maar aan de andere kant van de koppeling staat natuurlijk nog steeds een andere applicatie.
Daarvoor gebruiken we een vergelijkbaar principe.
Herbruikbare connectivity blocks
Binnen Clickker Automation Suite (CAS) kunnen we voor externe applicaties connectivity blocks ontwikkelen.
Zo’n connectivity block bevat gestandaardiseerde bouwstenen voor de beschikbare functionaliteit van een applicatie.
Denk bijvoorbeeld aan functies voor:
- klanten;
- artikelen;
- orders;
- voorraad;
- statussen.
Zodra die technische connectiviteit eenmaal is ontwikkeld, kunnen we de bouwstenen opnieuw gebruiken bij een volgende integratie met dezelfde applicatie.
We hoeven dan niet opnieuw uit te zoeken hoe we een order ophalen of hoe we artikelinformatie aanspreken.
Die technische basis bestaat al.
En dat verandert fundamenteel hoe we een integratie kunnen bouwen.
Het maatwerk verschuift naar de flow
Want ook met twee dezelfde applicaties kunnen bedrijfsprocessen compleet verschillen.
De ene organisatie wil bijvoorbeeld:
Order ontvangen → controleren → verwerken in Exact → bevestiging terugsturen
Terwijl een andere organisatie nodig heeft:
Order ontvangen → debiteur controleren → artikelgegevens ophalen → gegevens verrijken → verwerken in Exact → status terugmelden
De technische bouwstenen kunnen grotendeels hetzelfde zijn.
Maar de flow verschilt.
Daar hoort het maatwerk volgens ons thuis.
Niet in het iedere keer opnieuw technisch ontsluiten van dezelfde systemen, maar in het bepalen wat er tussen die systemen moet gebeuren.
Van maatwerkcode naar herbruikbare bouwstenen
Daarmee verandert het integratieproject.
Traditioneel kan het proces er grofweg zo uitzien:
Klantvraag → consultancy → technische analyse → database en tooling → maatwerkontwikkeling → testen → koppeling
Onze aanpak verschuift dat naar:
Klantvraag → procesanalyse → bestaande connectivity blocks → klantspecifieke flow in CAS → testen → koppeling
Natuurlijk blijft er analyse nodig.
En soms moet er nieuwe functionaliteit worden ontwikkeld.
Maar als we iets nieuws ontwikkelen, kijken we direct of we het zo kunnen bouwen dat het ook bij een volgende implementatie opnieuw gebruikt kan worden.
Daardoor groeit niet alleen de oplossing voor één organisatie.
Onze bibliotheek met herbruikbare connectiviteit groeit mee.
Minder afhankelijk van individuele consultants
Daar zit voor ons een belangrijk voordeel.
Bij traditioneel maatwerk kan veel technische kennis uiteindelijk bij een beperkt aantal mensen terechtkomen.
Bij een platformgedreven aanpak proberen we die kennis juist zoveel mogelijk in gestandaardiseerde componenten en herbruikbare bouwstenen onder te brengen.
Een developer hoeft niet opnieuw uit te zoeken hoe Exact technisch wordt ontsloten.
Daarvoor is Clickker.
Bestaat er voor de andere applicatie al een connectivity block, dan hoeft ook die technische connectiviteit niet opnieuw vanaf nul ontwikkeld te worden.
En de specifieke bedrijfslogica wordt als herkenbare flow binnen CAS ingericht.
De kennis verschuift daarmee van:
“We moeten degene vinden die deze koppeling destijds heeft gebouwd.”
naar:
“Dit zijn de standaard bouwstenen en dit is de flow die voor deze organisatie is ingericht.”
Dat maakt oplossingen beter overdraagbaar, onderhoudbaar en herbruikbaar.
Geen verzameling losse maatwerkoplossingen
Het doel is uiteindelijk om te voorkomen dat rondom Exact na verloop van tijd een technisch landschap ontstaat van losse databases, scripts, BPA-processen en individuele maatwerkkoppelingen.
Want iedere extra technische component moet ook worden beheerd.
En iedere unieke oplossing creëert nieuwe kennis die ergens moet worden vastgelegd en onderhouden.
Wij kiezen daarom voor een andere architectuur.
- Clickker® | De dedicated API voor Exact verzorgt de gestandaardiseerde toegang tot Exact.
- Connectivity blocks standaardiseren de technische communicatie met andere applicaties.
- Clickker Automation Suite gebruikt die bouwstenen om de gewenste processen en businesslogica in flows in te richten.
En de monitoring add-on Watcher kan vervolgens worden ingezet om de werking van die integraties en flows te bewaken.
Zo ontstaat geen verzameling losse integratieprojecten, maar een architectuur waarop kan worden voortgebouwd.
Dus: standaard of maatwerk?
Wat ons betreft is dat eigenlijk niet de juiste keuze.
Een volledig standaard koppeling kan te rigide zijn voor organisaties met afwijkende processen.
Maar iedere integratie opnieuw als volledig maatwerkproject ontwikkelen is het andere uiterste.
Daarom kiezen wij voor:
Standaardiseren wat hetzelfde is. Configureren wat anders is. Ontwikkelen wat daadwerkelijk nieuw is. En wat we ontwikkelen zoveel mogelijk herbruikbaar maken.
Het resultaat is nog steeds een koppeling die aansluit op het specifieke bedrijfsproces van de klant.
Alleen hoeft daarvoor niet iedere keer opnieuw de volledige technische fundering te worden gebouwd.
Dat is voor ons het verschil tussen maatwerksoftware bouwen en maatwerk leveren met een herbruikbaar integratieplatform.