ERP
ERP is de afkorting van Enterprise Resource Planning. ERP systemen ondersteunen productiebedrijven bij het plannen van de materialen en mensen. Dit wordt ook wel logistiek genoemd.
De productiebedrijven van onze klanten zijn tegenwoordig heel innovatief en gespecialiseerd. En de ERP systemen moeten dit ondersteunenen en zijn dus ook heel complex. Een eenvoudige handeling (bijvoorbeeld het uit magazijn halen van een materiaal) heeft gevolgen voor de voorraadadministratie, voor de financiële administratie, voor de productieplanning en voor nog veel meer. Al die gevolgen worden direct bepaald enonline doorgevoerd.
Bij mijn werkgever Infor werk ik als software engineer aan het Infor LN systeem. Ik hou me bezig met de volgende dingen:
- Ontwikkeling nieuwe functionaliteit voor nieuwe versies
- Onderhoud bestaande versies
- Opzetten en coördineren van automatische testen
Ontwikkeling nieuwe functionaliteit voor nieuwe versies
Twee keer per jaar brengen we een nieuwe release van onze software uit, met nieuwe functionaliteit. Dit betekent voor mij: ontwerpen, programmeren, testen en concept help-teksten aanleveren.
Programmeren doen we in een 4GL programmeertaal met daarin SQL-opdrachten om de database te benaderen. Verder natuurlijk report- en form editors. Dit maakt allemaal onderdeel uit van de eigen ERP LN ontwikkelomgeving.
Als ik het zo formuleer, dan lijkt het nog wel eenvoudig. Maar niets is simpel in een ERP-pakket dat door duizenden totaal verschillende bedrijven in totaal verschillende landen wordt gebruikt om totaal verschillende producten te maken.
Het begrijpen en gebruiken van de programmeeromgeving is nog wel het meest eenvoudige onderdeel. Veel moeilijker is het begrijpen van de functionaliteit. Daar zit de echte uitdaging.
In het verleden heb ik veel gewerkt aan de modules voor kostprijsberekening en voor- en nacalculatie van productieopdrachten. Tegenwoordig werk ik aan de MRP Plannings modules.
Onderhoud bestaande versies
Naast de ontwikkeling van nieuwe versies, werk ik ook aan het onderhoud van de bestaande versies. Hierbij gaat het om het oplossen van fouten in bestaande versies.
Ook bijzonder boeiend, omdat ik hierdoor meer inzicht krijg in de manier waarop klanten met ons systeem werken. Wij hebben veel klanten, over de hele wereld. Elke klant heeft weer zijn eigen werkwijze, met eigen combinaties van instellingen, met andere data waardoor het systeem zich bij elk klant weer anders gedraagt.
En zo kan het voorkomen dat er een fout wordt gemeld, en dat de oorzaak van die fout uiteindelijk in een onderdeel van de software blijkt te zitten, dat al 20 jaar niet gewijzigd is. En dus ook al 20 jaar lang zonder problemen door vele klanten is gebruikt. Maar juist bij deze ene klant gaat het dan wel fout.
Opzetten en coördineren van automatische testen
Iedereen heeft met automatisering te maken. Ook wij software-ontwikkelaars ontkomen er niet aan: software wordt tegenwoordig automatisch getest, door test-software. Dus maken wij bij Infor tegenwoordig ook software om onze software te testen.
In de afgelopen jaren heb ik hiervoor de benodigde technieken en werkwijzen ontwikkeld. Dat viel niet mee, want erp systemen vallen in een categorie die erg moeilijk automatisch te testen is (database intensieveonline transactiesystemen).
Er waren dus veel problemen en uitdagingen waar creatieve oplossingen voor gevonden moesten worden. Een bijzonder interessant traject! En het resultaat mag er zijn: onze software wordt nu automatisch getest. We hebben nu vele duizenden automatische testen. Elke nacht draait er een job, die al die testen uitvoert. Daarnaast worden de testen op ad-hoc basis uitgevoerd. Als ik nu een verandering maak in de software, dan start ik eerst een aantal automatische testen op, voordat ik die aanpassing vrijgeef. Dat bespaart veel tijd; anders had ik al die testen handmatig moeten doen.
Wij (software engineers) werken nu sneller en leveren betere software op. We doen nu aanpassingen in de software die we vroeger nooit konden doen, omdat we dan maanden lang bezig zouden zijn met testen.