Software is geen wegwerpartikel
Auteur: Rick F. van der Lans
Geschreven: maart 1999
Gepubliceerd in: CM Corporate.Net, nummer 127
Stelt u zich eens voor dat elke keer als Boeing of Airbus een nieuw vliegtuigtype ontwikkelt, alle vliegvelden een aparte landingsbaan moeten aanleggen en dat er een extra bagage-afhandelingssysteem gebouwd moet worden. Stelt u zich ook eens voor dat als een autofabrikant een nieuw model op de markt introduceert, deze alleen kan rijden op een speciaal soort asfalt, waardoor nieuwe wegen aangelegd moeten worden. Of stelt u zich eens voor dat als er een nieuw, supersonisch televisietoestel geannonceerd wordt, dit helaas alleen kan werken als er een nieuw type, ultramoderne glasvezelkabel de grond ingaat.
Al deze voorbeelden zijn waarschijnlijk moeilijk voor te stellen. Als er nieuwe producten op de markt komen, dan gaan we er van uit dat ze inhaken op of gebruik maken van bestaande producten en infrastructuur. Dit geldt voor alle industrietakken, behalve de software-industrie! Want bestaande zaken worden hier niet herbruikt. Telkens wanneer een nieuwe programmeertaal, analysemethode of baanbrekend softwaretool geïntroduceerd wordt, kunnen we opnieuw beginnen met ontwikkelen. Bestaande applicaties en kennis kunnen nauwelijks herbruikt worden.
Laat ik enkele voorbeelden geven. Begin jaren tachtig werden de eerste relationele databaseservers geïntroduceerd. Wie deze nieuwe technologie wilde gebruiken, was verplicht bestaande databases te converteren. Databases moesten opnieuw gedefinieerd worden, data moest overgeheveld worden en applicaties moesten opnieuw geprogrammeerd worden, nu gebruikmakend van SQL. De bestaande applicaties, samen met alle opgebouwde kennis, konden de vuilnisbak in.
Bij de introductie van client/server-systemen aan het begin van de jaren negentig was het wederom raak. Het was niet mogelijk bestaande, monolitische applicaties te migreren via bijvoorbeeld automatische conversies. Elk client/server systeem moest opnieuw gebouwd worden. Het koppelen met oude systemen was wel mogelijk, maar dan via complexe en zeker niet snelle gateway-technologie. En nu met Internet zien we hetzelfde gebeuren. Veel bedrijven zien zich genoodzaakt bestaande applicaties te vervangen door geheel opnieuw geconstrueerde applicaties. Veel Internet-tools gaan er namelijk niet of nauwelijks van uit dat we reeds software hebben die misschien wel te herbruiken is.
Wat een hoeveelheid geïnvesteerde tijd, geld, mensen en software worden er in deze sector om de paar jaar weer weggegooid! De kosten van de introductie van een fundamenteel nieuwe technologie zijn elke ronde enorm, werknemers moeten opnieuw opgeleid worden, strategieën voor beheer bijgesteld, kinderziektes overwonnen en instabiliteit en bugs voor lief genomen, enzovoorts.
Als dit nu één keer per twintig jaar gebeurt, dan is dit nog wel bespreekbaar, maar zeker de laatste tien jaren hebben we werkelijk een stortvloed van nieuwe technologieën gezien. Frusterend is bovendien dat veel "oude" ideeën en inzichten na een aantal slagen weer terugkomen. Bijvoorbeeld, eerst konden we alleen maar thin client-applicaties ontwikkelen, toen moest het fat client worden en nu is thin client weer mode. TP-monitors waren vroeger van essentieel belang, maar degradeerde in de hoogtijdagen van het client/server-systeem tot een vies woord; nu worden applicatieservers, die toch zeer veel overeenkomsten met TP-monitors vertonen, weer gezien als het nieuwste van het nieuwste. Ondertussen hebben we wel onze applicaties twee keer herschreven. En elke keer moeten ontwerpers, programmeurs en beheerders weer opnieuw getraind worden en moet ervaring opgedaan worden.
In feite is de snelheid waarmee technologieën elkaar opvolgen nu zo hoog, dat we nog niet eens het optimum uit de ene technologie hebben gehaald voor we de volgende geacht worden te adopteren. Leveranciers krijgen (of nemen) ook niet de tijd hun tools volledig te optimaliseren; ze zijn nog niet halverwege of ze moeten al weer een ander tool ontwikkelen om bij te blijven.
Dit weggooien van applicaties leidt uiteraard tot een enorme desinvestering van ontwikkelde software en opgedane kennis. Dit zou allemaal nog niet zo'n ramp zijn als het ons werkelijk verder zou brengen, en als onze bedrijven hiermee veel slagvaardiger en meer competitief zouden worden. Maar dat valt allemaal tegen. Als we kijken waar we nu staan dan zijn we de laatste twintig jaar weinig opgeschoten.
Wordt het niet eens tijd dat we een hoger rendement uit onze bestaande investeringen halen en dat de leveranciers deze investeringen respecteren door ons onze aangeschafte producten verder te laten door ontwikkelen. Waren we echt in problemen gekomen als we aan COBOL de concepten hadden toegevoegd die we nu in Java terugvinden, als we CICS hadden laten uitgroeien tot een Applicatie Server, en als we SQL meer object-georiënteerd hadden gemaakt? Als we dit hadden gedaan, hadden we onze bestaande applicaties mee kunnen laten groeien en hadden we ons minder op de techniek hoeven richten en meer op de wensen van ons bedrijf.
We leven uiteraard wel in een consumptiemaatschappij, waar weggooien van nog goed functionerende voorwerpen heel normaal is, maar we hoeven dat niet door te trekken naar software. Het ontwikkelen van softwaresystemen is voorlopig nog te duur en te tijdrovend om ze als weggooi-producten te beschouwen.