Beschouwen we het verloop van de technologische ontwikkelingen in de wereld, dan is zonder uitzondering een periode nodig waarin processen volwassen moeten worden.
In de automobielindustrie is dit het geval – en er blijken steeds meer oldtimers rond te rijden, ondanks hun ‘oude technieken’. Dat de huidige auto technisch beter is dan een oldtimer, is niet in de laatste plaats te danken aan nieuwe materialen en produktietechnieken. Toch blijven de oude beestjes het volhouden. De kwaliteit van sommige blijkt zelfs beter te zijn dan die van enkele van het huidige fabrikaat, waarvan de levensduur de twintig jaar niet haalt. Dat is een compliment voor de bouwers van die oldtimers. Dat het nieuwe beter lijkt, betekent nog niet dat het oude slechter is.
Dat geldt ook in de automatisering. Het heeft lang geduurd voordat het beheer van met name de grotere systemen (mainframes) goed geregeld was, maar nu zijn het volwassen systemen. Systeemsoftwarehuizen hebben daar voor een groot deel aan bijgedragen. Door gebrek aan middelen of verbetering van primair ontwikkelde tools zijn sommige softwarehuizen groot geworden. Het zou niet eerlijk zijn als ze zouden neerkijken op al dat andere. Tenslotte danken ze er hun bestaansrecht aan. Iemand moet ergens beginnen. Als dat later beter blijkt te kunnen, betekent dat nog niet dat de bron niet deugt. Er bestaan nog legio systemen die probleemloos volcontinu draaien, 24 uur per dag, zeven dagen in de week.
Hetzelfde geldt voor de ontwikkeling van de systeembouw. Ondanks de bijna heiligverklaring van object-oriëntatie bestaan er nog steeds talloze oude systemen die probleemloos oude (en nieuwe) processen verwerken, tienduizenden salarisstrookjes produceren en nog veel meer gigantische hoeveelheden werk verzetten waarvoor kleinere systemen nauwelijks toereikend zijn. Toch lijken met de komst van object-georiënteerde technieken diverse bedrijven, die daarmee hun geld verdienen, te vergeten dat ze hun bestaansrecht danken aan de in hun ogen achterlijke, verouderde programmatuur en technieken voor systeemontwikkeling van vroeger. Ook hier is een periode nodig om volwassen te worden – hoewel dat ook betrekkelijk is; tien jaar geleden dacht men ook vaak de oplossing te hebben.
Het kan altijd beter
Tijdens een recent seminar werd gedemonstreerd dat nieuwe methodieken de oplossing brengen. Om duidelijk te maken dat al die oude toepassingen op kromme methoden en spaghetti-technieken berusten, betrad een dansgroepje ongeregeld het podium. De deelnemers vielen na korte tijd over elkaar heen en de chaos was compleet. De (onkundige) ‘klant’ werd verteld dat het hier oude mainframeprogrammatuur betrof en dat het veel beter kon. Object-georiënteerd ontwikkelen was het toverwoord. Om dat te benadrukken verscheen nu een opgewekt swingend dansgroepje dat een perfect dansje uitvoerde.
Het herinnerde me aan een wasmiddelenreclame waarin via moderne technieken de klant door de vezels van de was wandelt om de kijker te doen geloven dat dit het summum is; witter kan niet. Een half jaar blijkt er toch weer een witter middel te bestaan. Hieruit valt de conclusie te trekken dat het achteraf bezien toch nog beter kan. De klant is een illusie armer.
In de tijd dat alles in assembleertaal geprogrammeerd werd, leek het werken met hogere programmeertalen de oplossing, totdat bleek dat het toch weer beter kon. Gelukkig voor de organisatie veroorzaakte dat geen blessures. Object-georiënteerd is heel mooi, maar dan moet je wel de middelen hebben. Op het podium werd niet gezegd dat het oude programmatuur betrof, nee, het was oude mainframeprogrammatuur. Nogal wiedes: de meeste programmatuur werd al gemaakt op mainframes toen van PC’s nog geen sprake was, en ook op andere computers dan mainframes wordt heel wat spaghetti-programmatuur in elkaar gedraaid. Wat te denken van virussen: rotzooien op applicatie-niveau in de systeemprogrammatuur – fantastisch dat het allemaal kan op die PC’s.
Van professionals mag je andere uitlatingen verwachten. Het is niet fair en toont weinig respect jegens programmeurs en ontwerpers. Die hebben vaak goed en gestructureerd werk afgeleverd, terwijl ze zonder goede hulpmiddelen en met gebrekkige middelen en een dosis gezond verstand tot een oplossing moesten zien te komen, op systemen zonder de technische mogelijkheden van vandaag.
Weinig geleerd
Nog afgezien van het gegeven dat programmatuur door voortdurend veranderende wensen van gebruikers tot spaghetti is verworden, is spaghetti-programmeren niet zozeer de schuld van het systeem of van de programmeertaal. Het heeft ook te maken met de kwaliteit en de denkwijze van de programmeur. Een programmeur kan met een object-georiënteerde taal als C++ bij gebrek aan discipline ook spaghetti produceren. Slechte programmatuur en systemen (lees: mainframes) zijn per saldo aparte ‘objecten’. In besturingssystemen valt al helemaal niet te rommelen en gestructureerd werken bij het programmeren van ‘exits’ en reentrant-programmatuur is een vereiste. Daar zijn regels voor opgesteld, anders werkt het systeem niet meer – laat staan de onderliggende, al dan niet object-georiënteerde applicatieprogrammatuur.
Gestructureerd werken, waartoe object-oriëntatie behoort, is te prefereren. Bij ons staat object-oriëntatie ook hoog in het vaandel, maar het is niet zo simpel als het dansgroepje voorstelde. Het is goedkoop om op die manier al het oudere als negatief te bestempelen. Dit soort arrogantie zou, zeker in de IT-dienstverlening, tot het verleden moeten behoren, juist vanwege vergissingen en bijgestelde ideeën uit het verleden. De opvatting dat decentralisatie de oplossing biedt heeft men ook al genuanceerd, gezien de onvoorziene beheerkosten. De uitstekende tools van nu zijn ontstaan in een leerproces. Vergeet ook niet dat een oldtimer-techneut met minder gereedschap vaak meer inzicht en vakmanschap toont dan menig moderne monteur die vanaf een monitor de diagnose kan aflezen.
Een (groot) aantal specialisten die in de PC-wereld is opgegroeid en die omgeving als ideaalbeeld ziet, heeft geen benul van wat er in grote rekencentra op mainframes gebeurt. Hun ‘kennis’ van mainframes hebben ze opgedaan van horen zeggen en daar laten ze het bij. Ze hebben dus nog weinig geleerd, want dat gebeurde tien jaar geleden ook al. Ze houden de ontwikkelingen aan de andere kant kennelijk ook niet bij, want als we om ons heen kijken, zien we dat het mainframe nog lang niet uit is en dat de ontwikkelingen op de huidige generatie niet stil staan. Rechtstreekse toegang tot Internet, TCP/IP, grafische systemen, object-georiënteerde tools (ondermeer Java), gangbare connecties en netwerkinterfaces met andere platformen en veel andere, nieuwe technieken zijn beschikbaar.
Hoofd koel
Mainframes blijven voorlopig een belangrijke rol spelen in ‘het netwerk als de computer’. Daarin spelen beveiliging, netwerkbeheer en de juiste netwerkkeuze een cruciale rol. Neem niet automatisch Internet omdat de buurman dat ook heeft en vergeet vooral niet de integratie met bestaande informatiesystemen. Daar komt meer bij kijken. Daarbij is object-oriëntatie met rapid development-tools belangrijk, maar niet voldoende. Kennis van andere methodieken is eveneens een vereiste. Een vakman met uitstekend gereedschap in huis is ideaal. Of je zo’n professional in huis krijgt moet nog maar blijken. ‘Hoofd koel en beide benen op de grond’ zei mijn vroegere manager altijd. Wie weet ontwikkelen de mainframesceptici straks hun object-georiënteerde applicaties op mainframes.
Hans Bladergroen,
IT-consultant,
Mosion Systems