The unifying theory of software engineering

Dorus Verhoeckx

In de ‘software ontwikkel-wereld’ houden ‘knappe koppen’ zich al tientallen jaren bezig met het vraagstuk "hoe kunnen we een platform zo eenvoudig maken dat een gebruiker zelf zijn software kan samenstellen?” Ofwel: "Computer: create a program that solves this business problem."

Programmeertalen

Voor deze uitdaging worden 4e generatie programmeertalen gebruikt. Tot nu toe leert de ervaring dat 4e generatie programmeertalen alleen voor een specifiek probleemdomein succesvol kunnen zijn. Vooral wanneer er een sterke focus is op een optimale gebruikerservaring zijn de fundamentele bouwblokken van dit moment nog steeds 3e generatie programmeertalen zoals Java, C# en Javascript.

Softwareontwikkeling

Vaak is het zo, dat hoe toegankelijker de omgeving waarin wordt geprogrammeerd (de 4e/5e generatie programmeertaal), des te beperkter het toepassingsgebied. De nieuwe unifiying theorie voor software engineering is er nog niet. Fundamenteel is er aan softwareontwikkeling wat betreft programmeertalen niet veel veranderd sinds de jaren 60.

De behoefte om softwareontwikkeling toegankelijker en eenvoudiger te maken zie je ook op andere gebieden. Kent iemand Frontpage nog? Microsoft Access? Foxpro? De ambitie van Rational met UML en hun case tooling? Wat je ziet gebeuren, is niet zozeer een hoger abstractieniveau (4gl), maar ondersteuning en tooling om het 3gl programmeren makkelijker te maken.

Steeds meer apparaten en gebruiksvoorwerpen worden afhankelijk van software. Denk aan je horloge, je auto of zelfs je lampen. Al deze apparaten willen we graag op een slimme manier met elkaar verbinden zodat jij als eindgebruiker optimaal gebruik kunt maken van het digitale landschap dat je leven makkelijker maakt. Software is overal!

De oplossing

Door middel van tooling, templates, Frameworks, IDE’s en SDK’s kunnen we componenten, API’s, platformen e.d. met elkaar integreren om tot een totaaloplossing voor een business vraagstuk te komen. Deze worden simpeler in gebruik gemaakt, zodat ze toegankelijker zijn. Op dat gebied vindt op dit moment de grote ontwikkeling plaats. Zorg dat je eigen middelen, zoals je API, library en code, simpel en toegankelijk zijn in gebruik zodat andere ontwikkelaars het eenvoudig met elkaar kunnen integreren. Vakmanschap (craftsmanship) om de tooling snel en goed toe te passen is daarbij belangrijker dan vergaand geautomatiseerd code genereren.

Voor een aantal specifieke domeinen zal een 4gl taal dus zeker toepasbaar zijn. Voor alle software ontwikkeling helaas nog niet. In de kernbouwstenen is namelijk nog niets veranderd (1e, 2e en 3e generatie programmeertalen).

En nu?

We kunnen de toekomst niet voorspellen, maar we kunnen er wel op voorbereid zijn. Door continu te experimenteren met nieuwe technologieën en technieken zien we wat werkt en wat niet. Vakmanschap op het gebied van software engineering is belangrijk. Geef de vakman het juiste gereedschap en hij creëert een mooie oplossing.

Bij Mirabeau is dit een belangrijke waarde in ons werk. We trainen onze mensen in zowel technologie als vakmanschap. Wij zien het vakmanschap als onmisbaar fundament voor het bouwen van nieuwe software en integreren van bestaande producten en diensten. Ook zien we dat dit vakmanschap leidt tot een beter inzicht bij het toepassen van deze producten en diensten, waardoor de oplossing beter onderhoudbaar en testbaar wordt.