BLOG

Softwareontwikkeling

Maak maatwerk software eenvoudig met bestaande bouwblokken

24 november 2020

Het veelgehoorde misverstand, dat maatwerk duur zou zijn, is een oude en gedateerde opvatting. Lees daarvoor ook eens deze blog van Senet met daarin 6 duidelijke tips om de kosten van maatwerk software te verlagen.  Het maatwerk van nu is compleet anders dan vroeger. Toen werd alles voor een klant compleet nieuw gebouwd en bestond er een grotere afhankelijkheid van leveranciers dan tegenwoordig. De vele regels programmacode zorgden ook voor een afhankelijkheid van de developer. De maatwerk applicatiebouwers van nu hebben vanuit open source omgevingen een heel arsenaal aan kant-en-klare bouwblokken tot hun beschikking en knopen ze de functionaliteiten die de klantorganisatie nodig heeft aan elkaar. Behalve dat dit veel werk bespaart, bieden deze bouwblokken in feite standaarden die al op vele plekken bewezen en getest zijn. 

Frameworks

Frameworks zijn bibliotheken van bestaande code om applicatieontwikkeling te versnellen. Eigenlijk een raamwerk dat je gebruikt om toepassingen te realiseren. Oftewel de basisset software  waarin je je applicatie hangt. Te vergelijken met het chassis van je auto. Voorbeeld is Symfony, een framework dat wordt gebruikt voor het ontwikkelen van PHP code, dat al meer dan 50 miljoen keer wereldwijd is toegepast. Dit betekent dat je gebruik maakt van proven technology die wordt onderhouden voor miljoenen gebruikers, waardoor de continuïteit is gewaarborgd. Dit verkleint ook de afhankelijkheid van de individuele softwareontwikkelaar.

Stel je wilt een mailfunctie gebruiken in je software. Dan roep je dit op als de bestaande functie die al in het framework aanwezig is. Je hoeft dan dus niet het proces ‘mail’ zelf te ontwikkelen. Hetzelfde geldt voor de wijze waarop je formulieren wilt opbouwen of voor koppelingen die je wilt maken met databases. Dit soort functies zitten standaard in je framework.

Third party libraries

We hebben het hier opnieuw over bestaande bouwblokken die je kunt hergebruiken in nieuwe (maatwerk)software toepassingen.  Een voorbeeld vanuit de onderwijsmarkt is dat men wil inloggen via de Entree federatie. Stel dat je dat in een nieuwe applicatie ook wilt. Dan hoef je dat niet opnieuw te ontwikkelen. Het bestaat namelijk al.  Je kunt die bestaande functie heel eenvoudig in je nieuwe applicatie aanroepen. Een ander voorbeeld is dat je notificaties wilt sturen vanuit de applicatie die al in een bestaand bouwblok voorhanden is. Je koppelt deze via een API aan je nieuwe toepassing et voilà; je hebt een functie ontwikkeld zonder de daarvoor benodigde regels code te programmeren.

Micro services

Een andere ontwikkeling binnen softwareontwikkeling is micro services.  Dat betekent dat  grotere stukken software eigenlijk weer worden opgesplitst in kleinere, logische, zogenaamde ‘micro services’. Het idee hierachter is dat je daarmee de software beter beheersbaar maakt. Immers wanneer één specifieke service verandert, hoef je alleen die te upgraden. Maar het biedt meer. Voorbeeld: stel je hebt een functie waarmee je PDF’s kunt maken binnen je applicatie. Door dit in een micro service te stoppen, kun je die zo laten werken dat het maken van PDF’s een achtergrondproces wordt, die door verschillende afdelingen en processen wordt aangeroepen. Je kunt dan wijzigingen doorvoeren op één plek, en de resources die ervoor nodig zijn veel beter verdelen. Werken met micro services  vergemakkelijkt het beheer aanzienlijk en maakt het ook stabieler, minder foutgevoelig en goedkoper. Vooral in de .NET wereld zie je deze trend enorm groeien. 

Domain driven design

Door op basis van domain driven design technologie te werken, verbind je als het ware business managers met softwareontwikkelaars. Door op basis van business (lees: domain) taal de functies te ontwikkelen wordt het mogelijk elkaar veel beter te begrijpen en met elkaar te communiceren. In het verleden was dit bijna onmogelijk. Een softwareontwikkelaar had toepassingen gemaakt voor het management, maar kon vaak alleen in technische termen uitleggen wat hij had gedaan. Eigenlijk onbegrijpelijk voor een algemeen of financieel directeur die toch meestal de opdrachtgever waren voor die applicatie. Door te ontwikkelen op basis van domain driven design is die taalbarrière geslecht. Voor meer informatie, lees ook eens onze blog: Wat is domain driven design?

Tip: stop geen business logica in je framework

Het mag duidelijk zijn dat het gebruikmaken van bouwblokken tijdens het ontwikkelen van software veel voordelen biedt. Dat betekent overigens niet dat het bouwen van maatwerk software anno nu simpel is. Je moet niet alleen weten wat er is, maar ook hoe je die bouwblokken effectief aan elkaar knoopt. Daarbij zijn ook valkuilen. Vandaar deze belangrijke tip: Stop geen business logica in je framework! We vergeleken een framework al eerder met het chassis van een auto. Stel je besluit de wielkast zodanig vast te lassen dat je uiteindelijk nog maar één bandenmaat kunt gebruiken. Vervolgens wordt die bandenmaat niet meer geleverd in de markt. Dan kun je het chassis weggooien, want je kunt er niet meer mee rijden.  Hetzelfde geldt voor business logica die in je in het framework stopt. Op het moment dat die logica of het framework verandert, ontstaat een situatie dat je veel tijd nodig hebt om weer goed werkende software te krijgen. Met andere woorden je wilt specifieke zaken zo onafhankelijk mogelijk maken van elkaar. Zodat je eenvoudig wijzigingen kunt doorvoeren en een optimale continuïteit krijgt in het gebruik van je toepassingen, die meebewegen met hetgeen je organisatie vraagt.

Aan de slag met maatwerk software

Denkt u eraan om maatwerk software te willen laten ontwikkelen? Senet heeft jarenlange expertise met maatwerk software en wij kunnen u van een gedegen advies voorzien. Een vrijblijvende afspraak is altijd mogelijk!

Interesse in een gesprek?

neem contact op met Theo Bieger

Laat uw gegevens achter

We nemen contact met u op!



Zie onze privacyverklaring.