Toekomstige softwareontwikkeling

Luteijn Automatisering

(KvK: 60276037, BtwNr: NL062594862B01)

Artikelen over automatisering

 Datamodules, Uitgangspunten technisch ontwerp, Databaseontwerp, SQL-Server en Hoofdpagina


 

 

 

De afgelopen dertien jaar tal van aspecten van softwareontwikkeling aan de lijve mogen ondervinden. Begonnen als technical writer  na enkele jaren overgestapt naar de programmeerafdeling en doorgegroeid van simpele programmeur tot leider van het ontwikkelteam. De belangrijkste les uit dertien jaar ontwikkelen is het belang van korte communicatielijnen en nastreven van flexibiliteit in het programmaontwerp. Een omvangrijk project kent een groot aantal schakels van klant naar verkoop naar functioneel ontwerper naar technisch ontwerper, programmeur en systeemontwerper.

 

Niemand uit deze reeks van onmisbare schakels voor het welslagen van een project lijkt enig begrip te hebben voor de moeilijkheden en belevingswereld van de ander. Tal van malen heb ik een functioneel ontwerper welhaast op de knieën zien gaan voor de programmeur om een in zijn ogen onmisbaar onderdeel van het programma ook werkelijk voor elkaar te krijgen. Jarenlang is mijn bedrijf gevangene geweest van een hopeloos verouderde database. In de begintijd waren we ons niet bewust van het belang van replacable database drivers. Geleidelijk aan raakte al onze programma-source doordrenkt met verwijzingen naar de gebruikte filemanager. Toen het ons duidelijk werd, dat alles wat vandaag modern is, morgen verouderd is, was het te laat. Het vervangen van de database zou ons in feite dwingen om nagenoeg alle programma’s overnieuw te bouwen.

 

Het nieuwe ontwikkelplatform ‘Windows’ kwam werkelijk als een geschenk uit de hemel. Niemand had voorheen de moed naar de baas te gaan met de mededeling, dat er vijf manjaar nodig was voor een nieuwe database. Nu kregen wij dwingend een omgeving opgelegd, waarin de oude database niet meer kon bestaan. Een ezel stoot zich niet tweemaal aan dezelfde steen en onder Windows de database vanaf het begin zoveel mogelijk replacable in het programma opgenomen. Een belangrijke verworvenheid van Windows is de object-georienteerde benadering. Het hele systeem is gebouwd uit losse objecten, die op een heel abstracte wijze via messages met elkaar communiceren. Daardoor is het mogelijk onderdelen van het systeem te vervangen zonder alles compleet uit elkaar te hoeven slopen.

 

Toch blijft de praktijk weerbarstig. Hoewel we op tal van plaatsen tot een fraaie flexibele gelaagde structuur wisten te komen, bleven op andere plaatsen slechte oude gewoonten ons parten spelen. Onder Dos hadden we een soort grid, waarmee we de database als ware het een spreadsheet konden wijzigen. Onder Dos maakten we er zelfs zeventig per jaar via kopiëren van de source plus wat specifieke aanpassingen. Onder Windows hebben we dat verbeterd door een basis-grid te maken. Via objectgeoriënteerde technieken konden we zonder grote lappen source alle benodigde variaties realiseren. Helaas… ook dit basis-grid bleek weer niet flexibel genoeg opgezet. Noodzakelijke wijzigingen kunnen niet worden aangebracht zonder alles opnieuw compleet uit elkaar te slopen.

 

 

 

 

Hoe minder schakels, hoe beter het verloop van het project. Nieuwe krachtiger omgevingen, meer losse gemakkelijk te gebruiken componenten bieden de mogelijkheid als eenling steeds meer schakels van het proces naar je toe te trekken. Een functioneel ontwerper, die kan programmeren, kan elke gewenste functionaliteit krijgen zonder eindeloos te hoeven soebatten. Losse componenten maken het je mogelijk om je los te maken uit de negatieve spiraal van historische en verouderde omgevingen vol met hinderlijke kruisverbanden naar een moderne flexibele ontwikkelomgeving voor het soepel vervaardigen van ieder denkbaar programma.

 

In de toekomst wil ik mij meer gaan bezighouden met het verwezenlijken van gebruikerswensen, dan met het eindeloos sleutelen aan basiselementen van het programma. Het bouwen van een simpele dialoog of een overzicht op de printer moet geen werk van dagen meer zijn. Er dient een framework beschikbaar te zijn, die het leeuwendeel van de functionaliteit omvat. De programmeur moet nog slechts een handjevol wijzigingen hoeven toe te voegen. Grids, indexen, locking-schema’s etc. dienen kant en klaar voor handen te zijn binnen het systeem. De ontwerper/programmeur moet zich volledig kunnen concentreren op het enige, dat ertoe doet, namelijk de gebruiker.

 

Frits Luteijn, 1998

Volgende pagina