Een blik op een willekeurig bureaublad of smartphonescherm zegt genoeg; ze staan vol met apps. Sommige gebruiken we dagelijks, andere eenmalig, maar laten we gemakshalve op het systeem staan. Moeten we dan nog altijd meer software bouwen?
Heeft het it-platform dat we gebruiken niet genoeg flexibiliteit en aanpasbare opties om ons de juiste functionaliteit te geven? Vaststaat dat als gevolg van de veranderende wereld en de digitale transformatie er een grote behoefte blijft aan meer software. Om dit in goede banen te leiden, is het verstandig om de levenscyclus van softwareontwikkeling onder de loep te nemen.
Trendwatcher
De roep om nieuwe apps komt voort uit de noodzaak om wendbaar en flexibel te zijn. Organisaties dienen zich aan te passen aan de veranderingen in de wereld om hen heen. Om in de woorden van trendwatcher Peter Hinssen te spreken: we bevinden ons in het ‘never normal’-tijdperk. Op het snijvlak van economie, politiek en sociologie is de dynamiek groot en je wordt als organisatie continu uitgedaagd hierop in te spelen. Soms gaat het om verstoorde aanvoerketens door internationale spanningen.
Maar je hebt ook te maken met veranderende wensen van de consument, mede door de inflatie en hoge energieprijzen. Door deze veranderingen ontstaan behoeftes aan ondersteuning van nieuwe it in de vorm van apps en datadiensten. Deze hebben één ding gemeen: agile. Je moet snel over nieuwe oplossingen kunnen beschikken, je moet ze snel kunnen ontwikkelen en aanpassen.
Legacy-systemen
Hoewel er altijd een drijfveer is om nieuwe it-oplossingen te implementeren, is het onvermijdelijk dat we sommige legacy-systemen zullen moeten behouden (ze werken immers nog, daarom zijn ze legacy). Dit zien we vooral in sectoren zoals de financiële dienstverlening. Hierbij zal je wel rekening moeten houden met kernsystemen die veelal standaard zijn opgeleverd en vervolgens zijn aangepast met maatwerk. Het is complex om dit te onderhouden en veilig te houden. Door low-code-ontwikkeltechnologie in te zetten, kun je dit beheersbaar houden.
Je moet dus iets doen om applicaties en maatwerk snel te kunnen ontwikkelen en alles veilig en beheersbaar te houden. De vraag is vervolgens: hoe beslissen we welke applicaties we moeten herschrijven of herconfigureren en migreren versus welke we moeten behouden? Als we het bekijken vanuit het oogpunt van functionaliteit, zullen er altijd een aantal systemen in de backend van een organisatie zijn die een vorm van legacy zijn. Dit zijn zeker geen toepassingen die hun waarde hebben verloren; ze doen nog steeds het werk waarvoor ze in de eerste plaats bestemd waren. De uitdaging is dat de applicatie qua modaliteit en vorm gedwongen wordt om te evolueren naar moderne platforms, protocollen en normen.
Het andere, niet te verwaarlozen probleem met legacy-systemen, zijn de vaardigheden en kennisoverdracht die nodig zijn om een vaak verouderd systeem te begrijpen, bij te werken en te onderhouden. Dit is des te belangrijker nu er sprake is van een grote schaarste op de arbeidsmarkt.
Evolutie
Wanneer het onderliggende platform waarop een applicatie werkt verandert, dwingt dat doorgaans tot een hoger niveau van refactoring, herformulering en migratie. Dit is niet allemaal slecht nieuws. Dit proces biedt organisaties de kans om die applicatie op dat moment te optimaliseren. Lehmans wet van software-evolutie stelt dat, zodra we iets aan een gebruiker geven, zijn verwachtingen veranderen en de softwarecomplexiteit van een systeem voortdurend zal toenemen tijdens zijn levensduur.
Deze realiteit maakt het argument sterk voor software evolutie op elk niveau. Daar bedoelen we mee dat zelfs wanneer software zijn werk doet, het onderhevig zal zijn aan toenemende complexiteit. Dit betekent dat we uiteindelijk die toepassing zullen moeten evolueren, ook wanneer het goed functioneert. Om de cirkel rond te maken: we kunnen nog steeds legacy-functionaliteit behouden, maar de applicatie zelf moet op termijn worden overgezet naar een moderner platform.
De conclusie is dat organisaties in de levenscyclus van software niet moeten wachten op een seintje van een leverancier dat applicaties ’end of life’ worden. Zij zullen zich continu moeten inspannen om complexiteit te beteugelen en functionaliteit van applicaties te garanderen. En wanneer je de denkwijze van Peter Hinssen volgt, dat we ons staande moeten houden in een tijd waarin niets normaal is, dan moet je blijvend monitoren welke functionaliteit je nodig hebt. Nu we steeds meer gebruik maken van low-code- en no-code-platforms binnen softwareontwikkeling, heb je als organisatie de kans om dit voortvarend aan te pakken.
(Auteur Wouter Baeten is manager solution bij Architecture.)
Het bureaublad op een desk/laptop is wat anders dan het scherm van een smartphone. Laatste kent een pandemie aan apps omdat steeds meer organisaties op die manier met hun klanten willen gaan communiceren. De afnemende service van selfservice stelt namelijk niet de klant centraal maar de data. Nieuwe digitale loket kan echter nog altijd niet zonder achterliggende legacy systemen omdat het om de zoveelste laag bovenop de bestaande lagen gaat. De dertien-in-een-dozijn presentatielaag van apps maakt dingen alleen maar complexer en niet beter als we kijken naar de serviceketens.
Je staande houden in een tijd waarin niets normaal is betekent dat je nuchter moet blijven door niet achter elke hype aan te rennen. Want Lehmans wet over softwareontwikkeling kent onderscheidt in een soort van 3-lagen model, de onderste laag van gedefinieerde regels en wetmatigheden veranderd namelijk veel minder snel en vaak dan de bovenste laag van de presentatieschil. En zo ook voor een tussenliggende laag aangaande de bedrijfsprocessen welke om de voorspelbare uitkomsten gaan.
Misschien dat Jack nog wat over Enterprise Architectuur kan roepen en zijn aversie tegen processen want ergens heb ik het idee dat de koppelvlakken tussen de verschillende lagen belangrijk zijn. Niet in de laatste plaats door zoiets als controles als we kijken naar de waarheid, integriteit van de data is belangrijk als je er rechten eraan kunt ontlenen.