Terug naar blog 22 april 2024
OntwikkelingLow-codeNo-codeMaatwerk

De kracht van maatwerk software: waarom low-code/no-code niet voldoet

Waarom kies je voor maatwerksoftware terwijl er zoveel low-code/no-code oplossingen beschikbaar zijn?

Iemand achter een beeldscherm aan het coderen

In de digitale wereld waarin we leven speelt software een grote rol. Bedrijven kunnen er ook niet meer onderuit om concurrerend te blijven. Bedrijven verlangen naar efficiënte en schaalbare software dat perfect aansluit op hun processen. Vaak wordt er gebruik gemaakt van bestaande SaaS (Software as a Service) oplossingen, maar vaak sluit dat niet aan bij je bedrijf. Daarom lijken low-code/no-code platformen snellere en betaalbare oplossingen. Wat vaak vergeten wordt is dat deze platformen zwaar gelimiteerd zijn op wat mogelijk is.

Dat is de reden dat wij geloven in maatwerk software oplossingen. Software is niet gelimiteerd, en zeker nu met AI is alles mogelijk. Low-code/no-code lijkt een makkelijkere oplossing maar soms is dit zo complex voor een oplossingen die makkelijk te coderen valt. Wij geloven meer in modulair software die her te gebruiken zijn en waarop elke functionaliteit gebouwd kan worden. Hiermee kunnen wij aansluiten op jouw bedrijfsprocessen of bestaande systemen zonder gelimiteerd te zijn.

De beperkingen van low-code/no-code platformen

Voordat we de beperkingen bespreken moeten we eerst weten wat low-code/no-code is. Zoals de naam het al zegt heeft het te maken met code. Code is de taal waarmee software geschreven wordt. Een low betekent laag en samen met code maakt dat dus lage-code. Bij low-code platformen kunnen gebruikers in een web applicatie visueel hun software maken. Soms moet daar dan nog handmatige code bij worden geschreven om het functioneel nog iets beter te krijgen.

No-code daarin tegen is geheel zonder dat er enige code moet worden geschreven. Ook dit gebeurt in een web applicatie waar gebruikers visueel hun software kunnen maken. Vaak wordt dit niet echt gebruikt voor applicaties maar meer voor een sequence van acties. Bijvoorbeeld: je krijgt een offerte aanvraag binnen, je koppelt hieraan de actie: verstuur sms bericht.

Beperkte functionaliteit en schaalbaarheid

Echter, bij het bouwen van een applicatie gaat het al snel fout. Vaak heb je complexe functionaliteit nodig dat aansluit op jouw bedrijfsprocessen wat niet gevonden wordt in bestaan software. Deze software is vaak te groot of doet net niet wat je wilt. Low-code/no-code lijkt daarom de snelste en goedkoopste oplossing, om vervolgens uren te spenderen om iets kleins werkend te krijgen.

Low-code/no-code software is in de achtergrond ook gewoon software. Deze software kan niet aangepast worden en daarom zit je vast aan wat zo een platform biedt. Dit maakt het makkelijk om snel kleine functionaliteiten op te zetten. Maar stel dat je wilt koppelen met een externe applicatie. In low-code/no-code is dit best mogelijk, het gaat vaak mis in de manier hoe jij het wilt verwerken in je applicatie.Vaak zit je dan vast aan vaste acties en kan je niet bereiken wat je wilt.

Naarmate je bedrijf groeit, groeit waarschijnlijk ook het gebruik van de applicatie en de applicatie zelf. Met low-code/no-code is dit een nachtmerrie. Wat als jij een kleine applicatie gebouwt hebt wat doet wat je wilt. Maar je bedrijf is gegroeit en zo moet ook de functionaliteit van de applicatie anders want het gebeurt niet meer op de manier zoals het nu is. Je wilt het uitbreiden met low-code/no-code maar je komt erachter dat dat niet mogelijk is. Nu zit je met een applicatie (met alle data) waar je niets meer mee kan.

Afhankelijk van een 3e partij

Nu zul je denken: maar als ik maatwerksoftware laat maken, is dat toch ook? Dat ligt anders. Op zo een platform maak je een applicatie met de bouw blokken die hun hebben gebouwd. Dit draait ook op hun platform.Mocht er iets fout gaan, ben je afhankelijk van dat bedrijf, dat vaak niet snel kan schakelen. Dit bedrijf staat verder van jou af (net als een SaaS) omdat het niet als doel heeft jou persoonlijk te helpen, maar zoveel mogelijk mensen. Dat is hun hele verdienmodel.

In tegenstelling staan wij altijd klaar als er iets fout gaat. Wij denken vanaf het begin mee en helpen je de verstandigste keuzes te maken. Wij weten wie jij bent en wat je bedrijf doet. Daarnaast wordt alle software die wij maken grondig getest met automatische en handmatige testen. Automatische testen is ook code, iets wat ook mist bij low-code/no-code platformen.

Soms zijn er bedrijven die software ontwikkelen en dan zelf low-code/no-code platformen gebruiken zodat jij dat niet hoeft uit te zoekenIk kan alle problemen opnoemen die je hiermee krijgt, maar ik denk dat het wel duidelijk is. Je bent hier afhankelijk van een 3e partij die ook weer afhankelijk is van een andere partij.

Hoge kosten

Low-code/no-code is niet gratis. Je maakt gebruik van een platform, wat eigenlijk een SaaS is, en deze vragen vaak een maandelijks bedrag. Voor kleine applicaties zal dit niet zoveel zijn maar wat als je meer gebruikers erop hebt? Vaak gaan dan de maandelijkse bedragen flink omhoog.

Als je zelf gaat knutselen dan ben je ook nog eens je tijd kwijt. Het is maar net hoeveel je tijd je waard is, maar ik kan me voorstellen dat je geen zin hebt om iets uit te zoeken om erachter te komen dat wat je wilt helemaal niet kan.

Voordelen van maatwerk

In tegenstelling tot low-code/no-code is maatwerk software dat met de hand geschreven is. Dit gebeurt in een programmeer taal. Hierdoor hebben wij volledige controle over elk aspect van de software. Deze software kan worden aangepast waar nodig en schaalt mee met jouw bedrijf.

Integratie met bestaande systemen

Zoals je kan begrijpen, is maatwerk software er voor gemaakt om te integreren met je huidige systemen. Wij zetten processen om in software dat deze processen versimpelt en versnelt. Soms kan het zijn dat je externe systemen gebruikt zoals een facturatie systeem, hiermee kunnen wij eenvoudig koppelen.

Wij maken deze software intuïtief, zodat er geen onnodige trainingen gegeven zouden moeten worden om de software te begrijpen. Het is namelijk belangrijk dat software perfect aansluit op je huidige systemen en processen. Hierdoor wijken wij niet af van huidige normen tenzij dingen sneller/efficiënter kunnen worden gemaakt.

Schaalbaar en toekomstbestendig

In tegenstelling tot veel low-code/no-code oplossingen zijn onze software oplossingen schaalbaar. De software applicatie groeit automatisch mee met de groei van je bedrijf. Uit ervaring weten wij dat functionaliteit vaak nog eens gewijzigd moet worden omdat het dingen versimpelt, versnelt of andere redenen. Met maatwerk software is dit een fluitje van een cent, maar met low-code/no-code is dit moeilijk of zelfs onmogelijk.

Groeiende bedrijven hebben vaak nieuwe functionaliteit nodig. Zoals ik bij low-code/no-code al zei, dit is een nachtmarrie voor software applicaties die gebouwt zijn met low-code/no-code. Met maatwerk software is dit ook geen probleem, een applicatie kan uitgebreid worden met alle functionaliteit die nodig zijn omdat dat de kracht van maatwerk software is. Het heet niet voor niets maatwerk software.

Concurrentievoordeel

Als bedrijf wil je niet irrelevant worden ten opzichte van concurrenten. Zeker in dit digitale tijdperk gebeurt het vaak dat bedrijven niet genoeg investeren in hun eigen digitalisering. Vaak wordt het onderschat hoeveel software kan verbeteren in je bedrijf. Denk aan handmatige taken, verspreide data (meerdere software systemen), arbeidsintensieve processen, etc. Door maatwerk software te laten ontwikkelen neem je de controle in je eigen handen. Hierdoor verbeter je je concurrentievoordeel op concurrenten die deze stap niet zetten.

Doordat wij meedenken, ontdekken we vaak mogelijkheden waar je zelf nog niet aan gedacht heeft. Vaak denk je dat iets niet haalbaar is, terwijl met huidige technieken alles bijna haalbaar is. Daarom is het ook verstandig om dit over te laten aan een partij die er verstand van heeft inplaats van zelf met low-code/no-code oplossingen te gaan klooien.

Hoe wij software bouwen

Hoe wij werken verschilt vaak per software dat gemaakt wordt. Sommige software oplossingen zijn complexer dan andere en dit vereist vaak een andere aanpak. Maar het overal lijndraad zijn de volgende 4 stappen.

De ontdekkingsfase

We kunnen niet gelijk aan de slag met het ontwikkelen van je software. Eerst moeten we begrijpen wat je doel is met de software. Soms heb je al een duidelijk idee maar het kan ook zijn dat je nog niet helemaal weet hoe je iets moet aanpakken. Samen denken we dan na over wat een potentiële oplossing zou kunnen zijn. Dit verwerken we in een duidelijke scope bepaling die ervoor zorgt dat er geen verwarring mogelijk is. In de scope zitten de functionaliteiten, samen met datums. Zo weet je precies wanneer je wat kan verwachten.

Het kan voorkomen dat het handiger is om bepaalde functionaliteiten uit te stellen, bijvoorbeeld vanwege een beperkt budget of omdat ze geen prioriteit hebben en een nice-to-have zijn. Hiervoor schrijven wij een toekomstplan. Dit is een klein overzicht met deze uitgestelde functionaliteiten en potentiële uitbreidingen. Op deze manier wordt het voor jou overzichtelijk en kan je bepaalde beslissingen beter nemen.

De ontwerpfase

Nu we weten wat er moet gebeuren, moet het visueel worden uitgewerkt. Gebruikerservaring speelt hier een grote rol. Hoe zorg je ervoor dat de functionaliteiten die gewenst zijn, op een eenvoudige manier te gebruiken zijn. Ook mag er geen sprake zijn van verwarring wanneer een gebruiker de applicatie gebruikt. Dit wordt allemaal bepaald in wireframes. Dit zijn schetsen om duidelijk te krijgen waar elementen op het scherm komen te staan. Hier wordt nog niet gekeken naar kleuren etc.

Deze wireframes zorgen ervoor dat je een beeld krijgt bij hoe de applicatie zal gaan werken. Hierop kan altijd feedback worden gegeven die wij dan direct weer verwerken. Deze wireframes zeggen veel over de gebruikerservaring, maar nog niet over hoe de applicatie eruit komt te zien. Dit gebeurt met user interface design. We voegen kleuren, lettertypes, afbeeldingen, en alle andere details toe zodat je precies ziet hoe jouw applicatie eruit komt te zien.

Deze UI-designs versterken we door ze te prototypen. Kort gezegd betekent dat dat we de ontwerpen klikbaar maken. Je kan op buttons klikken, van pagina veranderen, etc. Hierdoor krijg je echt een gevoel bij je applicatie. Ook hier kan je weer feedback op geven die wij dan ook gelijk verwerken.

Hoewel deze ontwerpen er super realistisch uitzien, zijn het nog maar ontwerpen. Ze hebben de echte functionaliteit nog niet. Dat komt in de ontwikkelingsfase.

De ontwikkeling

In deze fase gaan we aan de slag met het bouwen van de applicatie. Dit gebeurt in kleine iteraties, waarbij we de frontend en backend ontwikkelen die samen de applicatie vormen. De backend is waar alle data en functionaliteit zit en de frontend is het visuele aspect, gebaseerd op de goedgekeurde ontwerpen uit de vorige fase.

Ook in deze fase betrekken we je er bij. Hoewel deze fase meer een realisatie is van de voorgaande fases, kan het nog voorkomen dat er toch nog aanpassingen gemaakt moeten worden. Vaak heeft dit dan te maken met de functionaliteit in de backend. Je geeft feedback door de applicatie in een staging omgeving te testen. Dit is een omgeving waar je de applicatie naar hartelust kunt testen zonder dat dit invloed heeft op je echte applicatie data.

Naast een staging omgeving draaien we ook automatische testen. Deze testen zorgen ervoor dat belangrijke functionaliteiten wordt getest. Het kan voorkomen dat bij een wijziging van een functionaliteit, een stap fout gaat die over het hoofd is gezien. Automatische testen zorgen ervoor dat deze fout zichtbaar wordt voordat de applicatie online wordt gezet.

De live-gang

Nadat alle functionaliteit is ontwikkeld, grondig getest en goedgekeurd is, is het tijd voor de live-gang. In deze fase zetten we applicatie online op een domain zoals bijvoorbeeld app.domein.com. Jouw applicatie is nu klaar voor gebruik!

Wij onderhouden je applicatie en zorgen ervoor dat alles up-to-date blijft. Ook leveren we support waar nodig. Maar daar hoeft het niet bij te blijven. Naarmate je gebruik maakt van je applicatie zullen er nieuwe functionaliteiten zijn die je applicatie nog beter zouden maken. Sommige van deze functionaliteiten zullen beschreven staan in jouw toekomstplan, en andere zullen totaal nieuwe functionaliteiten zijn. Dit kan zijn omdat jouw bedrijf groeit waardoor je andere eisen hebt, of doordat je nieuwe kansen in de markt ziet die je wilt benutten.

Nawoord

Low-code/no-code ontwikkeling heeft zijn plaats, maar is geen goed idee als je een software applicatie wilt maken. Platformen zoals framer.com en webflow.com zijn prima low-code/no-code platformen waarmee je eenvoudig websites kunt maken. Maar zelfs daar heb je best veel kennis van nodig om het goed te kunnen. Ga je echter een applicatie ontwikkelen met verschillende functionaliteiten, dan worden low-code/no-code oplossingen al snel complex of zijn ze zelfs helemaal niet haalbaar.

Als ondernemer heb je beperkte tijd en middelen. Het zelf uitzoeken of zelf bouwen van complexe software door middel van low-code/no-code oplossingen is verspilde tijd. Om veilige, schaalbare, en kwalitatieve software te ontwikkelen is expertise voor nodig. Dit gaat je niet lukken in een weekje, en zeker niet met low-code/no-code oplossingen.

Heb je vragen? Stuur een e-mail naar [email protected] en ik help je graag verder!

Klaar om te beginnen?