Veel goede software in de academische wereld wordt ontwikkeld door promovendi of postdocs. Beide groepen hebben tijdelijke contracten en heel vaak sterft de software aan het einde van het contract.
Je kunt academische software vergelijken met een Formule 1-raceauto: het is erg snel, mooi, technologisch geavanceerd. Maar erg moeilijk te besturen en heeft regelmatig onderhoud nodig. De enige manier om hem op de weg te houden, is door de bestuurder en de ontwerper nauw samen te laten werken.
Om de technologie die is ontwikkeld voor de Formule 1-raceauto in de praktijk te kunnen gebruiken, moet de auto opnieuw worden ontworpen:
- Iedereen met een normaal rijbewijs moet ermee kunnen rijden.
- Het moet mogelijk zijn om op verschillende soorten wegen te rijden, niet alleen op een gepolijst racecircuit.
- Het moet mogelijk zijn voor een regelmatig opgeleide servicemonteur om het te onderhouden.
- Het onderhoudsinterval moet verhoogd worden van 200 km naar 25000 km.
Het is duidelijk dat bij het ontwerpen van auto's deze veranderingen niet de verantwoordelijkheid zijn van de ontwerpers in het Formule 1-team. Er zijn andere ontwerpers die gespecialiseerd zijn in normale auto's.
De equivalente concepten in softwareontwerp zijn:
- Het programma moet gebruiksvriendelijk worden gemaakt. Het moet bruikbaar zijn voor incidentele gebruikers die niet ook computerhackers zijn.
- Het moet robuust genoeg zijn om te werken met echte gegevens zoals echte gebruikers die tegenkomen.
- Het gebruik en de installatie moeten goed worden gedocumenteerd.
- Het moet voor veel datasets zonder toezicht kunnen werken en niet na een beperkte tijd kapot gaan, b.v. via een ogenschijnlijk niet-gerelateerde upgrade van het besturingssysteem of een kleine wijziging in een onderliggende webservice.
Grappig genoeg wordt bij veel grotere projecten verwacht dat de ontwerpers van de Formule 1-software dit redesign ook gaan doen. Dit is een sterk contrast met auto-ontwerp! In NBIC-II zullen we deze fout niet maken. Software de extra stap vooruit helpen wordt één van de belangrijke taken van ons Central Engineering Team. En dit team zal specialisten bevatten op het gebied van industriële software-engineering.
We gaan van de Ferrari's Volkswagens maken. En we zullen er trots op zijn!