De uitdaging
Via de online kanalen kwam DNV bij JDI terecht. Tijdens een eerste kennismaking maakten zij ons deelgenoot van zaken waar zij tegenaan liepen.
- Verouderde desktop applicatie uit 2003
- Behoefte aan nieuwe functionaliteiten
- Verouderde programmeertaal
- Verouderde UI/UX vormgeving
- Complexe formules
- Standalone applicatie
- Veel handmatig werk, doordat codepakket fysiek opgestuurd wordt naar de klant
- Niet persoonsgebonden
DNV plaatste haar stip aan de horizon: nog beter aan de wensen van haar eindklant voldoen door de oude desktop applicatie te vernieuwen middels een app en hier extra functionaliteiten aan toe te voegen.
Het resultaat: iOS app met backoffice webapplicatie
Een moderne backoffice webapplicatie en iOS app, zowel in vormgeving als in programmeertaal, met nieuwe functionaliteiten is ontwikkeld. Het resultaat is een iOS app waarmee leveranciers van stroomvoorzieningen een noodvoorziening van hoogspanningsmasten in 24/7 online en offline in beeld krijgt. Volledig onderbouwd en aangestuurd door complexe berekeningen. Waarbij de locaties van de hoogspanningsmasten volledig inzichtelijk zijn via een plattegrond. Op de website van DNV vind je volop informatie over deze applicatie. Een kleine opsomming van het behaalde resultaat van de nieuwe app staat hieronder vermeld:
- Backoffice met functionaliteiten is beschikbaar
- Nieuwe look and feel
- Beveiligd per gebruiker met 2FA
- Snellere berekeningen van 3 seconden naar 3 milliseconden
- Vernieuwde interface
- Locaties hoogspanningsmasten inzichtelijk via MapBox
- Ook offline te gebruiken
- Wereldwijd inzetbaar
- Code met 50% verkort en vernieuwd met behoud complexiteit
- Meekijken met de klant mogelijk
- Mogelijk om meerdere klanten tegelijk te ondersteunen
- App beschikbaar via de App Store
- Gebruiksvriendelijker, klant kan direct gebruik maken van nieuwe features
- Handmatig werk gereduceerd met 80%
Aan dit mooie resultaat ging een uitgebreid proces vooraf.
Organiseren: start van het project
Een lang en intensief proces ging vooraf aan de daadwerkelijke start van het project. Dit om ervoor te zorgen dat het project ingericht werd volgens de door DNV gestelde kaders. Tijdens deze kopfase van het project is ook een prototype gemaakt om enerzijds de scope vast te stellen en anderzijds om een helder beeld te geven van de plannen. Met behulp van het prototype konden we toetsen of we op het juiste pad zaten. Het project zelf was door DNV al goed in beeld gebracht, aangevuld met een wensenlijst. Hierdoor was het mogelijk om het project af te trappen via een online kick -off sessie. Het gehele team, inclusief developers en stakeholders vanuit DNV waren hierbij aanwezig. Tijdens deze sessie is de oude app uitgebreid in beeld gebracht en is DNV meegenomen in de werkwijze die wij hanteren.
In de maanden die volgden waren de tweewekelijkse overleggen, na de sprints, erg belangrijk. Vooraf aan de sprints werd besproken welke werkzaamheden er uitgevoerd gingen worden, waarbij ook de nieuwe gewenste functionaliteiten uitgebreid aan bod kwamen. Door de nieuwe gewenste functionaliteiten goed in beeld te brengen, was het mogelijk om deze nog strakker en beter neer te zetten. Was de gewenste functionaliteit echt nodig? Waren er andere nog andere opties om de betreffende functionaliteit in te richten. Waardevolle optimalisaties in de functionaliteiten, waardoor de scope werd bijgesteld.
De uitdaging in dit project lag in de complexiteit van de oude applicatie. Het heeft 10 tot 15 jaar geduurd om te komen tot de code in de oude applicatie met formules die zijn opgesteld door een ervaren engineer. Deze code en formules moesten nu geheel nieuw ontwikkeld worden. Waarbij alle variabelen voor de juiste validaties kloppend moeten zijn. We hebben het dan bijvoorbeeld over de afstand tussen de hoogspanningsmasten of de afstand van de kabels tot aan de grond of de locatie van de vervangende hoogspanningsmasten die geplaatst dienen te worden. Een mooie uitdaging waar wij ons samen met DNV in hebben vastgebeten.
Ontwikkelen: omzetten van complexe code
Het JDI platform is de backoffice voor de app en dient tevens als basis tijdens het ontwikkelproces. Dit werd als eerste ingericht en voorzien van verschillende functionaliteiten.
Eén van de nieuwe functionaliteiten is een integratie, middels een API, van Mapbox. Deze integratie zorgt ervoor dat alle locaties van de hoogspanningsmasten inzichtelijk zijn. Tegelijkertijd is er gewerkt aan de nieuwe look en feel van de app.
De focus lag in het begin op het inrichten van het dataverkeer tussen de backoffice en de app. Toen dit goed was ingericht, zijn we aan de slag gegaan met het omzetten van complexe berekeningen in oude code en formules. Berekeningen inzake de gewichtsbelasting van de kabels en hoogspanningsmast met en zonder ijs, diverse windbelastingen, reactiekrachten, trekkrachten en nog veel meer berekeningen passeerden de revue. In nauwe samenwerking met de engineer van DNV gingen we aan de slag met het vertalen van deze berekeningen van de programmeertaal Fortran naar de programmeertaal ‘Dart’. De nieuwe code zorgt ervoor dat het aantal karakters van de code met 50% is teruggebracht met behoud van de complexiteit. Stap voor stap zijn de berekeningen doorgenomen, getest en aangescherpt.
Naast de programmeertaal Dart is ook Flutter als programmeertaal gebruikt. Dit voor het visuele aspect en de extra mogelijkheden die dit biedt. Door het gebruik van Flutter is het namelijk mogelijk om in een volgende fase als doorontwikkeling de app ook als webapplicatie beschikbaar te maken en/of als Android app.
Tijdens de ontwikkelfase zorgden we ervoor dat het JDI Platform altijd twee stappen voor bleef in de ontwikkeling ten opzichte van de app. Dit om zo efficiënt mogelijk te werk te gaan en zeker te weten dat de complexe code en formules kloppen. De werking van de oude en nieuwe app werden continu met elkaar vergeleken en getest. Hierbij hebben we gewerkt met een soort van compiler, waarbij de SWAP-file van de oude app als het ware uitgekleed wordt. Dit net zo lang tot het punt bereikt wordt waarop te herleiden is hoe de oude app tot een bepaald resultaat komt. Dit proces voeren we zowel uit bij de oude applicatie als de nieuwe app. Beide uitkomsten worden vervolgens met elkaar vergeleken, waardoor we zeker weten of het klopt en het op de juiste manier werkt.
Optimaliseren: altijd een stap voor op de concurrent
Nu de nieuwe iOS app in gebruik is, staan er alweer mooie doorontwikkelingen te wachten. Hierbij kan je denken aan het vernieuwen van nog meer functionaliteiten uit de oude app. Of aan het toevoegen van een ander type toren met daarbij nieuwe calculaties. De app naast iOS ook beschikbaar maken voor Android behoort ook tot de mogelijkheden.
Welke doorontwikkeling dan ook, het uitgangspunt is altijd het gebruiksgemak en een stap voor blijven op de concurrent.
Wil jij ook een app laten ontwikkelen of wil je sparren over jouw idee voor een app?
Laat dan jouw gegevens hieronder achter en dan nemen wij zo snel mogelijk contact met jou op.