Passie voor grensvlakken


Gedreven door mijn werk en studie, moet ik de laatste tijd steeds vaker nadenken wat mij drijft in mijn professionele leven. Een passie, bijvoorbeeld voor je werk of studie, is soms moeilijk precies onder woorden te brengen. En soms weet je wel wat je voelt, maar niet wat het exact is. Door mijn werksituatie en aanstaande studierichtingkeuze heb ik daar een punt van zelfreflectie van gemaakt. Wat drijft mij nu precies, en waar ligt mijn passie? Hoe komt dat, waar komt dat vandaan? Dit wordt een verhaal van een kleine tweeduizend woorden. Maar wie de moeite wil nemen om het te lezen, zal daarna hopelijk precies begrijpen wat mij op het professionele vlak drijft. Voor de snelle versie:

Tijdens een keukentafelgesprek op een zondagmorgen probeerde ik uit te leggen wat voor werk ik doe, en hoe mijn houding is ten aanzien van kennis. Aan de hand van het ERP-systeem heb ik een manier gevonden om dit te verduidelijken.

Wat is een ERP-systeem?

Voor de lezer. Een ERP-systeem (Enterprise Resource Planning) is een systeem dat in veel organisaties wordt toegepast. In grote lijnen zou je het kunnen definiëren als een systeem dat door de gehele organisatie gebruikt wordt, gegevens opslaat in een centrale plaats, vraag en aanbod aan elkaar koppelt, en helpt processen te optimaliseren. Vaak kun je in een ERP systeem verkooporders vastleggen, inkopen verwerken, voorraad bijhouden en plannen naar behoefte, de productie monitoren en plannen, enz. Grote namen op dit gebied zijn SAP, Navision, Exact, Odoo en Infor ERP LN (waar ik in gespecialiseerd ben). Na deze beschrijving kan iedereen zich wel iets voorstellen bij een ERP systeem.

Terug naar de keukentafel op zondagmorgen. ‘Leg eens uit wat volgens jou een ERP systeem is’ vroeg ik mijn gesprekspartner. Bekend met Navision was het antwoord: ‘een systeem waar je inkooporders kunt inboeken, waar ze in de productie kunnen zien wat de voorraad is, waar de klant orders kan invoeren en waar de klant kan zien wat de status is. Waar documenten gekoppeld worden aan het werkproces.

Ik probeerde het gegeven antwoord wat te vertalen naar een soort algemeen model. ‘Dus, als ik jou goed begrijp zeg je eigenlijk een centrale plaats waar gegevens worden opgeslagen, en waar de verschillende afdelingen op het juiste moment informatie kunnen vinden en opslaan/bewerken, die in het verdere proces gebruikt kan worden.’ Terwijl ik het vertelde schetste ik het schema in de lucht. Vervolgens heb ik de luchtschets “de applicatie” genoemd.

Die applicatie draait op een besturingssysteem en op computers. De applicatie “leeft” in een eigen wereld waarin deze zich niet erg bewust is van zijn omgeving. Die wereld heet de applicatielaag. De applicatie doet binnen zijn eigen wereld zijn eigen dingen. Daarbij worden soms dingen naar de buitenwereld gestuurd, bijvoorbeeld een e-mail, rapport, of gegevensbestand. En de applicatie ontvang gegevens doordat gebruikers informatie invoeren, of bijvoorbeeld documenten uploaden.

Het fundament waarop de applicatie rust, bestaat uit het besturingssysteem en de computer(s). Die laag noem ik de systeemlaag. Het systeem weet dat er programma’s zijn die van zijn diensten gebruik maken. Maar ja...ieder zijn eigen verantwoordelijkheid. Het systeem zou kunnen zeggen ‘Ik ben er voor de programma’s, het bedje is gespreid, als ze wat nodig hebben, dan moeten ze het maar vragen.’ Het systeem is dienstverlenend naar de programma’s, maar stop er zelf niet heel veel moeite in om het voor de programma’s makkelijk te maken. Je zou dat een “niet pro-actieve houding” kunnen noemen.

Bij die twee werelden horen verschillende mensen. Bij de applicatielaag horen mensen als applicatiebeheerders die zorgen dat het programma lekker loopt en goed is ingericht. En bijvoorbeeld programmeurs die het programma maken. Bij de systeemlaag horen mensen als systeembeheerders die zorgen dat computers veilig zijn, over voldoende capaciteit beschikken en onderhouden worden. Maar ook netwerkspecialisten, backup operators, database specialisten.

De twee hiervoor beschreven werelden zijn virtueel te noemen, ze bestaan niet echt. Hoewel je een computer kunt aanraken, kan hij niets zonder dat het geleerd wordt. Een programma kun je al niet meer aanraken, en bestaat uit nullen en enen waarmee je meestal alleen iets kunt, als ze in de juiste volgorde staan en een beeldscherm en toetsenbord hebt. Er is echter nog een derde wereld: die van de gebruiker. Die staat als enige in de reële wereld. De gebruiker ziet “het programma”, de applicatielaag. Maar eigenlijk wil de gebruiker alleen dat rapport hebben of de order invoeren, en dan door naar een overleg, of een bestelling plaatsen of werk plannen. De gebruiker interesseert het eigenlijk weinig hoe het gebeurt, als het maar gebeurt.

En daar zit je dan, met je zelfgeschapen universum: drie werelden die allemaal in hun eigen zaakjes regelen, en wachten tot de ander ergens om vraagt, en dan pas iets gaan doen. Tegenwoordig zou je zeggen, allemaal in hun eigen bubbel.

Nu ik mijn model van de automatiseringswereld een beetje heb gevisualiseerd, wil ik dit verder doortrekken naar de werkgebieden waar mijn passie ligt. Voordat ik kan uitleggen wat mij drijft, is het goed even te kijken waar ik begonnen ben.

Ik ben als 10-jarig mannetje begonnen met het maken van programma’s, in BASIC. Mijn eerste programma was een backup programma, dat ik heb verkocht aan een bedrijf voor honderd gulden. Toen was ik twaalf jaar, en in die tijd was een backupprogramma nog best bijzonder, en iets om over na te denken. Waar je nu bij een pak wasmiddel een USB-stick cadeau krijgt waar je duizenden malen de hoeveelheid gegevens van de grootste harde schijf van midden jaren tachtig op kunt zetten, had je toen te maken met meerdere diskettes voor één bestand. Geboeid door het oplossen van alledaagse problemen met behulp van de computer ben ik mijzelf verder gaan verdiepen in automatisering.

Op dat moment had hardware nog met software te maken. Ik heb programma’s geschreven is “assembly”. Daar moest je opdrachten geven om stukjes data van het ene naar het andere register te verplaatsen, en er dan een bewerking op uit te voeren:

MOV AX, BX
ADD AL, AH
INT 13

Ik ben blij dat ik een vader had, die mij altijd enorm heeft gestimuleerd om daarmee door te gaan. Hij zag dat computers de toekomst waren. Van mijn opa en oma heb ik mijn eerste computer gekregen. “Heb je daar dan echt iets aan jongen?” Goed, dan helpen wij jou: koop die computer maar. Doordat ik die begintijd zo bewust heb meegemaakt en onderzocht, heb ik een groot begrip gekregen voor de basisbeginselen automatisering. Vooruit, sta mij toe om dit in mijn scheppingsverhaal ‘mijn oerknal’ te noemen.

Naarmate de tijd vorderde werden systemen complexer en zijn hardware en software als een soort aardschollen verder uit elkaar gedreven. De afstand tussen applicaties en besturingssysteem is steeds groter geworden. Tegenwoordig wordt er vaan een tussenlaag gebruikt, bovenop het besturingssysteem: een framework. Dat is een set van hulpmiddelen die je kunt gebruiken, en die op hun beurt weer met de laag daaronder communiceert (bijvoorbeeld het besturingssysteem of een database).

Kennisvisie

Essentieel is dat je weet welk onderdeel wat moet doen. Heel basaal, een soort van basistaak. Daarnaast is het van belang dat je weet hoe dat onderdeel die taak in principe moet uitvoeren. Een database bijvoorbeeld heeft verschillende verschijningsvormen. Om eens een paar bekende vormen te noemen SQL-server, Access, Oracle, MySQL, Postgress. Allemaal voeren ze in essentie de zelfde taak uit: gegevens efficiënt opslaan, snel kunnen ophalen, en ze kunnen vragen vanuit een extern systeem beantwoorden. In die zin komt in een databasesysteem nog steeds kennis van hard- en software van pas, en staat dat dicht bij de oergedachte (toen programma’s nog met hardware te maken hadden). Omdat ik die gedachte begrijp, en ik weet waarom een systeem doet wat het doet, maakt het niet uit hoe dat specifieke systeem dat doen. Dat idee is misschien het best begrijpen door het te vergelijken met communicatie. Als je weet waarom je communiceert, dan kun je de manier waarop aanleren. De taal of manier, kun je leren. De ‘waaromvraag’ is soms lastiger om in essentie te begrijpen, zeker als systemen complexer zijn.

Op de zelfde wijze is het met bijvoorbeeld programmeertalen. In de basis doen ze allemaal het zelfde. Het gaat om de ideeën die je vertaalt naar een bepaalde taal, zodat het een programma wordt. De taal (c++, java, python, C#, basic) of het framewerk (bijvoorbeeld .NET) kun je leren, creatieve oplossingen bedenken moet je in je hebben.

Hoe vertaalt zich dit alles naar het werkgebied waar mijn grootste interesse ligt?

Een van mijn kernwaarden is verbinding. Ik zie mijzelf als een bruggenbouwer, een verbinder. In relaties met mensen ben ik altijd op zoek naar raakvlakken. Als er verschillende opvattingen zijn, zoek ik het punt op waar er verbinding is. En, vanuit de andere kant redenerend, als er overeenstemming is, probeer ik dingen ook vanuit ander perspectief te bekijken, om zo te ontdekken of er nog meer is.

Zo ligt het ook in het werkveld van de automatisering. Even de beeldspraak van de drie werelden nog even oproepen: mens/gebruiker, applicatie, systeem. Mijn passie ligt ook hier op de raakvlakken.

Gebruiker/mens versus programma/applicatie.

De gebruiker wil iets. Wat? Waarom? De applicatie kan iets. Of niet! Waarom eigenlijk niet? Wat denkt de gebruiker wat hij wil, en wat wil hij éígenlijk? Hoe vertaalt zich dat van mens naar applicatie en van applicatie naar de gebruiker. Hoe kun je een applicatie laten doen, wat de gebruiker eigenlijk nodig heeft. Hoe vertaal je de vraag van de vrager naar de maker. Met alle respect, maar mensen die in de applicatiebubbel werken, denken meestal niet niet buiten die bubbel. Ze begrijpen vaak niet wat de gebruiker wil, en maken dingen die ze denken dat de ander wil. Communicatie en inleving, vertalen van vraag naar oplossing! Dit is raakvlak 1.

Mijn tweede interessegebied ligt op het grensgebied van de bubbels applicatie en systeem. Op dat raakvlak spelen eigenlijk soortgelijke vragen. De applicatie heeft iets nodig, een voorziening om e-mails te kunnen versturen bijvoorbeeld. Of de applicatie wil een pinautomaat aansturen. Of in een restaurantomgeving moet de order in de keuken uit een bonprinter komen. Er moet een rapport gemaakt worden met een logo, maar dat kan niet in de applicatie zelf. Of ‘s nachts moeten applicatie processen automatisch uitgevoerd worden, maar het programma draait dan niet. Of er moeten gegevens verwerkt worden die niet beschikbaar zijn in ‘de wereld’ van de applicatie. Of twee systemen die eigenlijk niet met elkaar kunnen communiceren, zouden dat eigenlijk wel moeten kunnen. Bij het opschrijven van deze opsomming heb ik allemaal concreet voorbeelden in mijn hoofd van vraagstukken waar de applicatie zelf geen oplossing had, maar waar ik zelf door creatief te denken praktische en werkbare oplossingen heb kunnen bedenken. Door over de grens heen te kijken en in de onderliggende laag (het systeem) een oplossing te zoeken.

Als iets voor onmogelijk wordt gehouden, dan komt dat meestal doordat mensen niet buiten de eigen bubbel kunnen denken. Doordat ik met automatisering ben begonnen toen ‘systeem’ nog met ‘applicatie’ te maken had, kan ik vaak wèl de ‘out-of-the-boxoplossing’ bedenken die op dat moment nodig is. Een vermeende onmogelijkheid daagt mij enorm uit. En even zo goed het achterhalen van het echte probleem en daar met de middelen die beschikbaar voor zijn, creatieve oplossingen voor bedenken.

Terug naar de keukentafel op zondagmorgen. Het gesprek over het ERP systeem ging over echte mensen, met echte vragen. De blackbox was het ERP-systeem. Het bleek een mooie opstap om mijn passie en drijfveren uit te leggen.

Ik vind het is fantastisch om een reële vraag te vertalen in een abstract herbruikbaar programmaobject, dat functioneert op het moment dat het nodig is. Zowel de systeemlaag als de applicatielaag boeien mij. Maar op de snijvlakken van die twee, zeker waar de virtuele wereld schuurt met de reële wereld, is het mooi op bruikbare oplossingen te bedenken. Door gebruik te maken van alle kennis en middelen, uit alle werelden, om dat ene doel te dienen: een goede oplossing in ‘de echte wereld’, waar iemand er iets aan heeft. Daar zit mijn uitdaging, daar ligt mijn passie. En dan is het fijn samenwerken met verschillende mensen, met hun eigen kennis en vakgebied, met respect voor elkaar, maar wel met allemaal diezelfde drijfveer.

Nog een leuke om mee af te sluiten: de onderstaande situatie wil je graag voorkomen!