Ontwikkeling
Producten ontwikkelen gebaseerd op data van sensoren vereisen als geen ander dat het ontwikkelproces goede verificatie en validatie procedures bevat. Afhankelijk van het product, de complexiteit en de ontwikkelstatus zal er focus moeten liggen op deze onderdelen. Tenslotte wil niemand een bug aantreffen terwijl 'het gisteren nog gewoon werkte'.
Iteratief
De projecten waar ik aan werk komen meestal voort uit een visie waarbij uitdagende vragen gesteld worden en dito problemen getackeld dienen te worden terwijl met state-of-the-art technieken gewerkt wordt. Gave projecten, maar het staat van te voren nooit helemaal vast of een vraag beantwoord kan worden en hoe bruikbaar het antwoord zal zijn.
Om met die onzekerheid zo goed mogelijk om te gaan werk ik vaak iteratief aan projecten. Hoe komen we zo snel mogelijk een stap verder in het project en waar zit de toegevoegde waarde? Door met deze instelling een project aan te gaan kan er zo snel mogelijk geschakeld worden. De Agile methodiek en scrums zijn mij dan ook niet vreemd.
Van prototype naar product
Met behulp van Matlab kan ik heel snel onderzoek doen naar mogelijkheden en deze ook delen. Dit kan in de vorm van droge Matlab code, maar gebeurd meestal via UI's die eenvoudig te gebruiken zijn, ook door Matlab leken. Dit noem ik de zogenaamde Prototype ruimte.
Om zo snel mogelijk succesvolle ontwikkelingen in de Prototype ruimte om te zetten naar een bruikbaar product gebruik ik Matlab Coder. Hiermee worden de bruikbare delen omgezet naar C/C++ code om gebruikt te worden in embedded apparaten. Dit kan gebruikt worden voor integratie met Android en iOs apps bijvoorbeeld, maar ook in hele kleine apparaten met minimale mogelijkheden qua geheugen en rekenkracht.
De kracht van Matlab en de verificatie en validatie trajecten die ik hiervoor opzet is dat in minimale tijd een nieuwe feature of bug fix van ruwe code tot eindproduct gebracht kan worden met maximale zekerheid dat het ook goed werkt.
Diff Analyzer
De Diff Analyzer heb ik ontwikkelt ter ondersteuning van het verificatie en validatie traject. Het probleem waar ik tegen aan liep is dat veel software en methodes rondom CI/CD uitgaan van een statisch testresultaat welke na eenmaal opgesteld te zijn in steen staat gebeiteld. Echter, onderzoeksprojecten laten zich vaak kenmerken door voortschrijdend inzicht en resultaten die op een complexe manier afhankelijk van elkaar zijn. Klassieke verificatie methodes hebben dan vaak als nadeel dat het volstrekt niet inzichtelijk is welke veranderingen er allemaal plaatsvinden en of deze veranderingen significant zijn.
Tevens wil je niet alleen verifiëren, maar in sommige gevallen ook gelijk valideren en accorderen. De Diff Analyzer kan in één keer complexe output structuren vergelijken en laat zien waar velden, dimensies, formaat toevoegingen of verwijderingen gedaan zijn en wat de verschillen zijn op het laagste data niveau. In één oogopslag zie je waar de verschillen zitten en of je deze al dan niet kan accorderen.
Diff Analyzer gebruik ik in mijn eigen CI/CD trajecten voor mijn klanten. Hierbij wissel ik tussen stand alone gebruik en integratie in het Matlab Unittest framework. Wil je meer weten over Diff Analyzer of zelf gebruiken? Neem dan contact met mij op.