De bouw en realisatie van een PMS zijn zeer uitdagend, het gaat écht ergens over!

Collega Alexander over het project Generieke PMS

Alexander van der kolk is bij Soltegro software-architect van het project “Generieke Prestatie Meet Systeem (PMS)”. Dit nieuwe PMS is recentelijk in gebruik genomen voor de exploitatie fase bij Sluis Limmel. Alexander geeft een kijkje in de keuken wat er allemaal komt kijken bij de ontwikkeling van een PMS.

“Een PMS is een belangrijk systeem binnen een DBFM-contract. Zowel in de realisatie als de exploitatie fase. In dit systeem worden alle contractuele afspraken tussen opdrachtgever en opdrachtnemer vastgelegd. Op basis van al deze gegevens wordt de beschikbaarheidsvergoeding vastgesteld en verwerkt tot een factuur. De afspraken zijn per contract en per fase anders. Maar er zijn ook veel overeenkomsten. Hierdoor kwamen we op het idee om een generiek PMS te bouwen.

Gemene deler
Voor de klant is het niets anders. Het is en blijft een PMS. Wij hebben de gemene deler van diverse contracten uitgeplozen. Deze overeenkomsten hebben we vertaald naar generieke eisen. Daar bovenop komen dan per project de specifieke eisen. Door de ontwikkelde generieke modules, kunnen we die inzetten bij verschillende projecten. Het systeem is gebaseerd op een lagenstructuur. In de basis is die algemeen en naar boven toe wordt die steeds specifieker richting een nat of droog project. En aan de top echt project specifiek. Vanuit een git repository (een code base) configureren we een specifiek project PMS. Hierdoor profiteren alle projecten van verbeteringen en doorontwikkeling. Dit resulteert in lagere kosten voor de ontwikkeling van een project specifiek PMS en lagere kosten voor onderhoud en beheer. Ons generieke PMS maakt gebruik van Microsoft ASP.NET core, waarmee het zeer toekomstbestendig is en vrijheid geeft in hosting keuze (on-premise of in the cloud).

Uitdagend
De bouw en realisatie van een PMS zijn zeer uitdagend, het gaat écht ergens over. De beschikbaarheidsvergoeding die een opdrachtgever krijgt, moet kloppen en het gaat over veel geld. Alle resultaten moeten in het systeem ingevoerd worden. Denk aan relevante verificaties, inspecties, metingen, toetsen en de tijdige uitvoering ervan. Ook moet op ieder moment actuele beschikbaarheidsgegevens van het object in het systeem vastgelegd en opgevraagd kunnen worden. Het is echt een interessante puzzel om de contractueel vastgestelde rekenregels zo te implementeren dat met een druk op de knop de beschikbaarheidsvergoeding vastgesteld kan worden. Daarbij gaat het in een exploitatie over een lange looptijd dus het systeem moet echt jaren mee kunnen.

Automatisch testen
Om de verschillen in contracten en per fase goed te verifiëren hanteren we de ambitie om alles automatisch te testen. Zodat we bij iedere wijzigingen alle verschillende versies van ons generiek PMS volledig automatisch kunnen regressietesten. Dit doen we door de browser via een interface, met het Selenium framework, te besturen en de juiste waarden in te voeren. We ontwikkelen verschillende UnitTesten voor alle mogelijke uitzonderingen, die we automatisch in de browser invoeren en daarna controleren we de verwachte bedragen op de gegenereerd factuur. Hierdoor kunnen we in 45 min een gehele acceptatietest automatisch uitvoeren.

Van tevoren is heel duidelijk opgeschreven wat het PMS moet doen, dit vertalen wij naar een systeem. Hierin moet je dus strakke eisen vertalen naar functionaliteit. Daarbij werken we volgens de Agile methode. Met scrum kunnen we – samen met de klant – prioriteren, waardoor we de werkzaamheden goed in kunnen plannen en op tijd kunnen leveren.

We hebben met Soltegro al meerdere PMS’en gerealiseerd en ook in productie zijn genomen. We weten inmiddels waar de uitdagingen zitten en alles werkt naar verwachting. De beschikbaarheidsvergoedingen die worden opgesteld kloppen en daar draait het om.”