Nico Meijerman - Trainer
Nico Meijerman is bij NTS komen werken om de softwarecompetentie van het bedrijf op te bouwen en uit te breiden. Kort na zijn aankomst bij het hardware bolwerk begon hij te werken aan het overbruggen van de kloof tussen software engineering en de wereld van natuurkunde, mechanica en hardware gerelateerde disciplines. Het resultaat is een workshop waarin Meijerman zijn niet-software collega’s de basis van software engineering leert. Inclusief specifieke klant- en bedrijfsspecificaties.
Eersterangsleverancier NTS Group heeft de afgelopen jaren stilletjes vorm gegeven aan zijn software engineering competentie. Je zou dit misschien niet verwachten van een bedrijf dat nog steeds het meeste geld verdient met het buigen van plaatstaal, het frezen van onderdelen en het assembleren van systemen.
Het omarmen van software-expertise is echter een natuurlijke stap voor sommige eersterangsleveranciers. De afgelopen decennia heeft NTS actief gewerkt aan haar systeemontwikkelingscapaciteiten. Het bedrijf ontwikkelt en produceert nu complete machines en modules die door klanten van een merk worden voorzien en op de markt worden gebracht. Nu de waarde van eindproducten verschuift naar software, lijkt het voor NTS een logische stap om de competenties te ontwikkelen om de digitaliseringsgolf te vangen.
De afdeling Development and Engineering (D&E) van de NTS telt ongeveer tweehonderd engineers, waarvan 15 procent zich bezighoudt met software. Voor een leverancier die high-end systemen en ontwerpen levert, is dit nog aan de lage kant, stelt Meijerman. “Het zal groeien omdat we zien dat software steeds essentiëler wordt voor het creëren van waarde voor onze klanten. We zien de software-inspanning in onze projecten toenemen.”
“We zien de software-inspanning in onze projecten toenemen”, zegt Nico Meijerman.
Een intrigerend aanbod
Meijerman bewandelt al zijn hele carrière het hardware-softwarepad. Hij leerde chips ontwerpen tijdens zijn studie in Twente en ging aan de slag bij Sagantec, een bedrijf dat zowel werkte aan een silicium compiler als applicatiespecifieke IC’s ontwikkelde voor klanten. Daar begon hij met het ontwerpen van chips, maar al snel stapte hij over op programmeren omdat de embedded software meer inspanning bleek te kosten dan de hardware zelf.
Later doceerde Meijerman informatica-gerelateerde vakken op verschillende afdelingen van de hogeschool (HTS) in Arnhem. Vervolgens ging hij werken bij Philips CFT, waar ze een software engineer nodig hadden die begreep wat er in het mechanische en elektrische domein gebeurde. Daar ontwikkelde hij motion control software voor de eerste PAS 5500 lithoscanners van ASML. Kort daarna werkte hij ook aan MRI-scanners voor Philips Healthcare.
In 2010 besloot Meijerman dat het tijd was om zijn eigen adviesbureau te beginnen, maar een paar jaar later benaderde NTS hem met een intrigerend aanbod: of hij geïnteresseerd was om groepsleider machinebesturing te worden, een team dat zich richt op software en elektrotechniek. Helpen bij het opbouwen van de softwarecompetentie leek hem een uitdagende, maar zeer aantrekkelijke uitdaging.
Na zijn aankomst in het hardwarebolwerk wist Meijerman dat hij moest werken aan zijn relatie met de NTS-mechanica en mechatronica. Hij dacht aan een korte workshop zou helpen om zijn nieuwe collega’s meer vertrouwd te maken met software.
Volgens Nico Meijerman van de NTS “hebben werktuigbouwkundigen te maken met de beperkingen van natuurkunde, software beheert complexiteit.”
Meijerman begon collega’s te interviewen om een idee te krijgen van hun behoeften. Eerst sprak hij met de systeemingenieurs – de mensen die meestal een mechanische achtergrond hebben. “De meest gehoorde reactie was dat ze geen verstand hadden van software. Ik hoorde opmerkingen als ‘Die jongens zijn altijd te laat’, ‘Ze maken nooit de dingen die ik echt nodig heb’ en ‘Ik kan niet met ze werken omdat ze er niets van begrijpen’. Er heerste een cultuur van beschuldigen en het was duidelijk dat onze systeemingenieurs niet wisten wat software deed. Ze zagen het als een onvoorspelbare zwarte doos.”
In Meijermans contact met de systeemarchitecten begon het meer te leven. “Ze kregen in ieder geval een idee over wat ze wilden weten over software. Ze wilden meer weten over programmeertalen, third-party, multitasking, real-time, Agile en andere basisconcepten. Ze wilden ook weten hoe een softwareontwikkelingsproces eruitzag.”
' We saw the need to involve clients early in the software development process.'
Meijerman en de systeemarchitecten kwamen al snel tot de conclusie dat het klantperspectief van enorm belang is. “We zagen de noodzaak om klanten vroeg in het softwareontwikkelingsproces te betrekken. Voor de NTS was dit een hoge prioriteit omdat de meeste klanten een werktuigbouwkundige achtergrond hebben. Ze weten dat er software in moet zitten, maar ze moeten worden voorgelicht over de specifieke aspecten – bijvoorbeeld over het feit dat software nooit bugvrij is. Daarom gaat een deel van mijn workshop ook over bedrijfsmodellen en alles wat volgt op onze ontwikkelingsactiviteiten.”
Nico Meijerman is de trainer voor ‘Software engineering voor niet-software engineers’..
Verkeerde aannames
In de hightechindustrie hoor je vaak dat communicatie het probleem is in omgevingen met verschillende disciplines. Maar bij de NTS heeft Meijerman ervaren dat het meer gaat om begrip en in andermans schoenen kunnen staan. “Mensen proberen wel te communiceren. Ik zie dat er zeker bereidheid is om te praten,” zegt hij. “Maar hardware- en software-ingenieurs leven vaak in totaal verschillende werelden.”
'Mechanics is about managing the limits of physics, while software is about managing complexity.'
Meijerman legt uit dat werktuigbouwkundig ingenieurs vooral kijken naar de beperkingen van de natuurkunde. “Het gaat om nanometers, om milliseconden. De stijfheid van een constructie bepaalt wat je kunt bereiken. Componenten slijten als je ze te lang gebruikt.” Software-ingenieurs daarentegen houden zich niet bezig met natuurkunde; zij proberen de complexiteit te beheersen. “Mechanica gaat over het beheersen van de grenzen van de fysica, terwijl software gaat over het beheersen van complexiteit.”
De problemen komen vaak voort uit verkeerde aannames. “Monteurs vragen een software engineer zelden naar de mate van complexiteit. Daarom zal een software engineer in de meeste gevallen zeggen dat hij een besturingsprobleem van een machine kan oplossen – met uitzondering van enkele zeer moeilijke problemen. Maar als je ze vraagt hoeveel moeite het gaat kosten en hoe complex het is, krijg je misschien een heel ander antwoord. Een werktuigbouwkundig ingenieur bekijkt dingen vanuit natuurkundig oogpunt, niet vanuit complexiteitsoogpunt. Maar hij zou moeten weten hoeveel werk zijn vraag kan genereren. Het gebrek aan begrip van zulke basisconcepten maakt het moeilijk om met elkaar te communiceren. Ook software-ingenieurs moeten zeker hun kennis op het gebied van werktuigbouwkunde verbeteren.”
Onderdeel van Meijermans workshop is begrijpen dat software engineering niet hetzelfde is als programmeren. “Jongeren leren programmeren op de universiteit of tijdens technische opleidingen. Veel mensen denken dat software engineering gewoon meer programmeren is, maar dat is niet minder waar. Bij programmeren is complexiteit meestal niet aan de orde, want je eindigt met enkele honderden regels code. Pas als je te maken hebt met meer dan honderdduizend regels code wordt het ingewikkeld. In hightechsystemen is dit het geval: er zijn soms miljoenen regels code en de enige manier om uitdagingen van deze omvang aan te pakken is een manier vinden om door het probleem heen te werken. Dat betekent het afbreken en ervoor zorgen dat je werk correct is. Engineering gaat over het focussen op architectuur en ontwerp, maar ook over het beheren van complexiteit.”
“Mijn doel is om deelnemers alle aspecten van software engineering te leren,” besluit Meijerman. “Als ze zich dat realiseren, begrijpen ze dat ze hun neefje dat met Arduino boards speelt niet kunnen vragen om in het weekend een programma voor hen te schrijven.” Aan het eind van de workshop begrijpen de deelnemers meer over de intrigerende wereld van software engineering en over de verschillen en overeenkomsten tussen software engineering en andere disciplines, wat resulteert in betere samenwerking, betere oplossingen en hopelijk meer plezier in hun werk.
Dit artikel is geschreven door René Raaijmakers, tech-redacteur van Bits&Chips.

