Met de komst van steeds volwassener SaaS en PaaS diensten, die de mogelijkheden bieden om goed werkende oplossingen met “'en aantal muis klikken' te creëren, lijkt er een tendens te ontstaan dat de software ontwikkelaar meewarig wordt aangekeken omdat zijn expertise niet meer nodig zou zijn. Staat de software ontwikkelaar op uitsterven?
Laat ik er gelijk maar helder over zijn: Nee! We hebben in de redelijk korte historie sinds de opkomst van it-systemen gezien dat er telkens weer nieuwe paradigma’s zijn ontstaan die de productiviteit op het gebied van de ontwikkeling van it-oplossingen hebben verbeterd. Van ponskaarten via assembly language naar derde generatie talen en 4GL’s, we hebben het allemaal voorbij zien komen. Telkens zagen we dat de productiviteit op de korte termijn omhoog ging, maar tegelijkertijd zagen we dat de wensen en eisen van de eindgebruikers ook steeds complexer werden en dat de 4GL vaak tekort schoot als het om die 20 procent van de functionaliteit ging die net die 80 procent van de toegevoegde waarde creëert.
Want laten we eerlijk zijn: als iedereen dezelfde SaaS-oplossingen gebruikt, waar zit dan de toegevoegde waarde voor jouw bedrijf? Zit de innovatie niet juist in het toepassen en combineren van nieuwe technologieën waar de 4GL of SaaS-oplossing nog niet mee overweg kan? Logica die nog niet gegenereerd kan worden vanuit een model?
Daarnaast zagen we dat het ontwikkelen van de standaard ontwikkelplatforms als 4GL’s, rdbms’en en later de modelleeromgevingen voor business procesen (bpm) en mobiele apps ook steeds complexer werd. De zwaargewicht software-engineers worden met name ingezet op het ontwerpen en ontwikkelen van dat soort platforms. Wat is er cooler dan het schrijven van code die code genereert.
Overdraagbaarder
In de praktijk merk ik ook regelmatig dat code eigenlijk veel overdraagbaarder is dan configuratie. Configuratie werkt alleen maar in een bepaalde context en kan vaak moeilijk zó worden weergegeven dat je het gelijk begrijpt. Code is dan eigenlijk veel gemakkelijker. En ook gemakkelijker te beheren. Maar dat terzijde.
Microsoft heeft laatst rond de lancering van zijn nieuwe Azure App Service verkondigd dat iedereen in staat zal zijn om applicaties te ontwikkelen met behulp van dat platform. Door api’s in een webportal aan elkaar te knopen door middel van logic apps wordt dit mogelijk gemaakt. Op basis van een microservices-architectuur ontstaan oplossingen die gemakkelijk ‘aan elkaar geklikt’ kunnen worden. Door zoveel mogelijk gebruik te maken van allerlei api’s die via de market place beschikbaar komen is het bouwen van een oplossing zo gepiept! Het is in feite één grote Legodoos, met allerlei kleurrijke ‘steentjes’ in zeer veel verschijningsvormen die je in staat stellen snel iets werkends te maken. Sommige van die steentjes worden door Microsoft ter beschikking gesteld als onderdeel van het Azure-platform, sommige door derden (denk aan bijvoorbeeld de api’s die door Google, SalesForce, LinkedIn, et cetera, worden ontsloten) en sommigen ontwikkel je zelf.
De vraag is, hoeveel van die Legosteentjes gaan we zelf ontwikkelen? Of zit hem daar juist de onderscheidende factor? Ik denk van wel. Organisaties zullen zich gaan onderscheiden en net die extra toegevoegde waarde bieden door hun eigen Legosteentjes te gaan ontwikkelen. En daar is de software-ontwikkelaar in z’n element. Pas als de ultieme Turing-test succesvol voltooid is, is de software-engineer niet meer nodig: Als de software-engineer aan de computer vraagt, lever mij een algoritme om mijn meest complexe probleem op te lossen en de computer antwoordt met de meeste efficiënte C#, Java of Python code. Pas dan is hij overbodig geworden.
Tot die tijd geldt Mark Twain’s (licht aangepaste) uitspraak: ‘The news of the death of the software engineer is highly exaggerated’.
Een ander quote van Mark Twain is:
“History doesn’t repeat itself, but it does rhyme.”
Net nog niet aan te slepen, nu alweer aan het uitsterven ? Maar Gijs schept snel duidelijkheid, het antwoord is nee. Toch bedenkt hij de titel en intro zelf, dat trekt lezers. Beetje damesblad weet dat ook.
En wrom moet er toch e.e.a. geprogrammeerd worden ? Omdat de eisen ook complexer worden en mensen nog steeds slimmer en creatiever zijn dan de algoritmen die zij bedenken. Zou zoiets ook voor hardware gelden, dat de software steeds meer resources gaan gebruiken..duhh.
Zouden slimme algoritmen ook open deuren intrappen ? Ik hoop in ieder geval dat ze niet andere computers gaan quoten.
Steve Ballmer wist één ding goed: https://www.youtube.com/watch?v=8To-6VIJZRE
Maar developers die men nu wil hebben zijn van een andere klasse dan degenen die alleen COBOL of Visual Basic kennen.