We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder
We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder

Alle blogs

teamwork
teamwork
Verder gaan dan functies: Maximaliseer resultaten, minimaliseer uitvoer
Leestijd 9 min
6 MEI 2025

Bij het bouwen van producten wordt steeds meer erkend dat succes niet alleen te maken heeft met het leveren van functies of het halen van deadlines. In plaats daarvan gaat het om het leveren van echte waarde aan klanten en het bereiken van zakelijke impact. Dit vereist een mentaliteitsverandering van outputgericht naar resultaatgericht denken. In dit artikel onderzoeken we waarom het belangrijker is om uitkomsten prioriteit te geven dan output om succesvolle producten te maken en hoe je deze benadering kunt toepassen in je eigen werk. Wat betekent "uitkomsten boven output"? In de bedrijfswereld worden de termen resultaat en output vaak door elkaar gebruikt, wat voor enige verwarring zorgt. Het is echter belangrijk om het onderscheid tussen deze twee termen goed te begrijpen. Hoewel ze misschien eenvoudig lijken, laten we ze toch eens definiëren om ervoor te zorgen dat we allemaal op dezelfde golflengte zitten. Laten we ons eens voorstellen dat je je de laatste tijd uitgeput voelt, dus begin je te trainen in de sportschool om je energieker te voelen. Sommige mensen zouden kunnen zeggen dat het resultaat van je fitnessroutine het aantal uren dat je hebt gesport en de hoeveelheid gewicht die je hebt getild is. Maar het echte resultaat van je routine is veel belangrijker dan dat . Het resultaat is dat je je sterker, zelfverzekerder en gezonder voelt. Het resultaat is de manier waarop je harde werk (de output) zich heeft vertaald in een betere levenskwaliteit en een positiever zelfbeeld. Het resultaat is de manier waarop je probleem werd opgelost door de output. In een zakelijke context verwijst een resultaat naar de impact die je product heeft op de organisatie en haar klanten en belanghebbenden, terwijl een output verwijst naar de tastbare dingen die je (ontwikkel)team produceert, zoals documenten, software en tests. Focussen op resultaat boven output betekent succes definiëren op basis van het bereiken van een specifiek resultaat en vooruitgang meten op basis van hoe dicht je bij het bereiken van dat resultaat bent. Het doel van je team is niet om output te produceren; het is om een specifiek resultaat te bereiken. Een succesvol team streeft ernaar het gewenste resultaat te maximaliseren en tegelijkertijd de hoeveelheid geproduceerd werk te minimaliseren. De voordelen van een resultaatgerichte aanpak 1. Het helpt je te ontsnappen aan de bouwval Het eerste Agile Principe stelt dat je topprioriteit is om je klanten gelukkig te maken door waardevolle software zo vroeg en consistent mogelijk op te leveren. Naarmate agile werkwijzen op verschillende gebieden worden toegepast, hebben mensen dit principe geherformuleerd om het belang van het snel en consistent leveren van waarde aan klanten te benadrukken. Als je succes meet op basis van een resultaatgerichte metriek, zoals " het aantal doorkliks op nieuwsbrieven binnen zes maanden met 15% verhogen ", koppel je de inspanningen van je team onmiddellijk aan de waarde voor je organisatie en klanten. Dit helpt je te begrijpen welke impact je maakt en wanneer je echt een verschil maakt. Als je daarentegen succes meet door alleen te kijken naar de dingen die je produceert, zoals " het aantal opgeleverde features " of " het aantal voltooide punten in een scrum sprint ", loop je het risico in wat Melissa Perri (product management expert, spreker en auteur) "de bouwval" noemt. Deze valkuil houdt in dat je je alleen richt op het maken van features zonder rekening te houden met de gewenste resultaten. Wanneer organisaties prioriteit geven aan output boven uitkomsten, lopen ze het risico verstrikt te raken in een cyclus van het bouwen van meer en meer features zonder echt te begrijpen of ze klantproblemen oplossen of bedrijfswaarde creëren. Door je te fixeren op het opleveren van features als maatstaf voor succes, kun je het grotere geheel uit het oog verliezen. Het vertelt je niet of je de juiste dingen bouwt. Het is dus essentieel om je focus te verleggen naar de resultaten die er toe doen. Dit vereist een mentaliteitsverandering die de behoeften en gewenste resultaten van de klant op de voorgrond plaatst. Door succes te definiëren op basis van resultaten, kan je team ontsnappen aan de bouwval . 2. Het helpt je te focussen op leren en itereren Als je kritisch gaat denken over het leveren van waarde in plaats van features, loop je al snel tegen het probleem aan waar ik het eerder over had: hoe weet je zeker dat de features die je bouwt ook echt waarde gaan leveren? Een resultaatgerichte aanpak erkent dat je misschien niet vanaf het begin alle antwoorden hebt en dat leren een belangrijk onderdeel van het proces is. Daarom heb je bij het werken met uitkomsten een hulpmiddel nodig: het experiment. Wanneer je resultaatgericht denken combineert met een proces dat gebaseerd is op het uitvoeren van experimenten, begin je echt het ware potentieel van agile benaderingen te ontsluiten. Dit is vooral waardevol in situaties waar veel onzekerheid is. Als je bijvoorbeeld een nieuw softwareproduct maakt, weet je misschien niet zeker of het de gewenste impact zal hebben op je bedrijf en of alle mooie functies die je hebt bedacht wel nodig zijn. Door te focussen op resultaten, kun je doelen stellen die je team toelaten om te experimenteren en verschillende oplossingen uit te proberen tot ze vinden wat het beste werkt. In een agile context behandelen we elke stap als een hypothese en een experiment gericht op het bereiken van een specifiek resultaat. Dit is waar het concept van een MVP, of Minimum Viable Product , om de hoek komt kijken. Beschouw MVP als het kleinste ding dat je kunt doen of het kleinste ding dat je kunt bouwen om te leren of je hypothese juist is. Dit iteratieve proces van testen, leren en aanpassen stelt teams in staat om te experimenteren, om verschillende oplossingen uit te proberen, totdat ze de oplossing vinden die werkt. 3. Het helpt je team meer autonomie te bereiken Werknemers vinden het vaak een uitdaging om een diep gevoel van doelgerichtheid en motivatie te ervaren, enkel door de output die ze produceren. Wat mensen echt drijft om elke dag op het werk te verschijnen, zijn niet de specifieke taken waarmee ze zich elke dag bezighouden, maar eerder de betekenisvolle resultaten waar hun werk uiteindelijk aan zal bijdragen . De nadruk op resultaten helpt om je team op één lijn te krijgen rond een gemeenschappelijk doel en gedeelde doelen. Door duidelijkheid te verschaffen over wat er bereikt moet worden, kun je je team motiveren en in staat stellen om samen te werken aan duidelijke doelen die het product moet bereiken. Hierdoor kan je team prioriteiten stellen in hun werk en functies bouwen die bijdragen aan het bereiken van die doelen. Door hen beslissingen te laten nemen over de functies die ze bouwen, krijgen ze een groter gevoel van eigenaarschap over het werk dat ze doen. De resultaten voor je product definiëren en implementeren Nu ben je het er misschien wel mee eens dat focussen op resultaten klinkt als een goed idee, maar ze daadwerkelijk implementeren in onze bedrijfspraktijken is niet zo eenvoudig . Elke methodologie heeft zijn nadelen. Eén uitdaging is dat uitkomsten minder gemakkelijk te meten en te kwantificeren zijn dan outputs. Ten tweede staan veel bedrijven onder druk om snel door te gaan naar het volgende project als het ene is afgerond . Helaas wordt het iteratieve proces van testen, leren en aanpassen nog steeds niet vaak toegepast. Tot slot, wat het moeilijk maakt, is dat we vaak doelen stellen die te hoog gegrepen zijn . Als je het team bijvoorbeeld vraagt om het bedrijf winstgevender te maken of de risico's te verminderen, dan is dat te complex omdat die uitdagingen bestaan uit veel variabelen om te beïnvloeden. Deze doelen op impactniveau zijn te complex voor teams. In plaats daarvan moet je je richten op kleinere en beter beheersbare doelen . Om dit te doen, moet je je team vragen om zich te concentreren op het veranderen van klantgedrag op manieren die positieve bedrijfsresultaten opleveren. In zijn boek "Outcomes Over Output: Why Customer Behavior Is The Key Metric For Business Success" presenteert Joshua Seiden drie magische vragen die je kunnen helpen bij het identificeren van geschikte resultaten: Wat zijn de gedragingen van gebruikers en klanten die bedrijfsresultaten genereren? (Dit is het resultaat dat je probeert te creëren.) Hoe kunnen we mensen meer van dat gedrag laten vertonen? (Dit zijn de functies, beleidswijzigingen, etc. die je gaat doen om te proberen de resultaten te creëren). Hoe weten we of we gelijk hebben? (Dit onthult de experimenten en statistieken die je zult gebruiken om de voortgang te meten). Ik zal je een voorbeeld geven van hoe dit werkt. Stel je voor dat je een e-commerce kledingwinkel runt en je hebt te maken met zware concurrentie van een concurrerend bedrijf. Je doel is om de klantloyaliteit te verbeteren, dus stel je het team een breed doel om de frequentie van klantbezoeken te verhogen van één keer per maand naar twee keer per maand. Om dit effect te bereiken, moet u specifiek gedrag van klanten identificeren dat correleert met het bezoeken van uw site. U merkt bijvoorbeeld dat klanten de neiging hebben om de site te bezoeken na het openen van de maandelijkse nieuwsbrief waarin nieuwe artikelen worden gepresenteerd. Daarom zou een mogelijke uitkomst kunnen zijn om de doorklikratio van de nieuwsbrief te verhogen. Daarnaast merkt u dat klanten de site ook bezoeken nadat een vriend een afbeelding van een van de artikelen heeft gedeeld op sociale media. Een andere mogelijke uitkomst is dus om klanten aan te moedigen vaker afbeeldingen van artikelen te delen. Door je te richten op deze klantgedragingen die het gewenste resultaat van sitebezoeken bepalen, zorg je ervoor dat je doelen zowel observeerbaar als meetbaar zijn. Dit is cruciaal omdat je zo de voortgang effectief kunt beheren en bijhouden. Ik hoop dat dit voorbeeld duidelijk maakt hoe resultaten specifiek kunnen zijn en gemakkelijk kunnen worden uitgesplitst. Onthoud dat een resultaat een gedrag is dat klanten vertonen en dat direct van invloed is op de bedrijfsresultaten. Door dit gedrag te begrijpen, kunt u uw inspanningen afstemmen op de resultaten die echt belangrijk zijn voor uw bedrijf. Aanknopingspunten Een resultaat verwijst naar de impact die je product heeft op de organisatie en haar klanten en belanghebbenden, terwijl een output verwijst naar de tastbare dingen die je team produceert, zoals documenten, software en tests. Het doel van je team is niet om output te produceren; het is om een specifieke uitkomst te bereiken. Een succesvol team streeft ernaar om het gewenste resultaat te maximaliseren en tegelijkertijd de hoeveelheid geproduceerd werk te minimaliseren. Door je te fixeren op feature delivery als maatstaf voor succes, kun je het grotere geheel uit het oog verliezen. Het vertelt je niet of je de juiste dingen bouwt. Het is dus essentieel om je focus te verleggen naar de resultaten. Een resultaatgerichte aanpak erkent dat je misschien niet meteen alle antwoorden hebt en dat leren een belangrijk onderdeel is van het proces. Daarom heb je bij het werken met uitkomsten een hulpmiddel nodig: het experiment. Als je je werk plant, wees dan duidelijk over je aannames. Wees bereid om je veronderstellingen te testen door je werk uit te drukken als hypotheses. Test je hypotheses voortdurend door in kleine iteraties te werken, te experimenteren en te reageren op de gegevens en feedback die je verzamelt. Verwar impact - ambitieuze doelen op hoog niveau - niet met uitkomsten. Impact is belangrijk, maar deze doelen zijn te complex voor teams omdat ze bestaan uit veel variabelen om te beïnvloeden. Gebruik deze vragen om resultaten te definiëren: wat zijn de menselijke gedragingen die bedrijfsresultaten stimuleren? Hoe kunnen we mensen meer van deze dingen laten doen? Hoe weten we of we gelijk hebben? 👀 Meer weten over onze diensten ? Klik hier om meer te weten te komen!

Lees verder
gegevenspunten gps
gegevenspunten gps
Leestijd 5 min
6 MEI 2025

Als ontwikkelaars begrijpen we dat GPS-nauwkeurigheid de ruggengraat vormt van veel mobiele toepassingen, van navigatie tot locatiegebaseerde diensten. De nauwkeurigheid van de GPS-functionaliteit van je app kan de gebruikerservaring maken of breken. In dit artikel geven we je vijf praktische manieren om de GPS-nauwkeurigheid van je mobiele applicatie te verbeteren en ervoor te zorgen dat je gebruikers zich nooit meer verloren voelen. Hoe een slechte GPS-locatienauwkeurigheid het succes van mobiele applicaties om zeep helpt: praktijkvoorbeeld Laten we beginnen met een voorbeeld uit de praktijk van hoe een slechte GPS-nauwkeurigheid je mobiele applicatie kan laten mislukken. Voorbeeld Elise heeft je nieuwe mobiele applicatie Commuter gedownload. De app belooft haar woon-werkervaring te verbeteren door haar tijdig meldingen te geven over bushaltes en verwachte aankomsttijden. Tot haar grote schrik presteert de app echter niet altijd even goed. Op sommige dagen biedt de app nauwkeurige realtime updates, maar op andere dagen ontvangt ze de meldingen te laat of te vroeg. Het is begrijpelijk dat Elise gefrustreerd is en haar ontevredenheid over uw mobiele applicatie deelt via een negatieve review. Wat gaat er mis met de GPS-nauwkeurigheid? Jij, als ontwikkelaar, staat perplex. Je hebt immers de standaard GPS-algoritmen van het platform geïntegreerd, dus waarom de inconsistentie? De app berekent haar gemiddelde snelheid op basis van het verschil tussen de GPS-locaties en de tijd tussen deze updates. De app is geprogrammeerd om haar te waarschuwen voor haar bushalte zodra haar GPS-coördinaten binnen een straal van 100 meter van het station vallen. Hoewel dit logisch klinkt, komen de resultaten in de praktijk niet overeen met de verwachtingen. Wat veroorzaakt de slechte nauwkeurigheid van GPS-locaties? Het kernprobleem komt voort uit de inherente onnauwkeurigheden in GPS-locatiegegevens. Hoewel GPS-locaties een foutmarge bevatten, meestal uitgedrukt in meters met een betrouwbaarheidsinterval van 68%, houdt deze marge geen rekening met de invloed van weerkaatsingen van het GPS-signaal , ook bekend als multipadfouten. Multipadfouten treden op wanneer GPS-signalen weerkaatsen op objecten of oppervlakken voordat ze de antenne van de GPS-ontvanger bereiken. Stedelijke gebieden met hoge gebouwen en een dichte infrastructuur zijn bijzonder gevoelig voor GPS-signaalreflecties. De weerkaatsing van signalen tegen wolkenkrabbers, voertuigen en andere structuren kan een complexe signaalomgeving creëren, wat leidt tot onvoorspelbare locatieonnauwkeurigheden. GPS-signaalreflecties kunnen het signaal kilometers ver omleiden, waardoor de app mogelijk ten onrechte aangeeft dat Elise haar bestemming al heeft bereikt of nog kilometers ver is. Uitdagingen van GPS-signaalreflecties voor ontwikkelaars van mobiele apps GPS-signaalreflecties stellen ontwikkelaars van mobiele apps voor verschillende uitdagingen: Onnauwkeurige positionering : GPS-signaalreflecties kunnen ervoor zorgen dat de GPS-ontvanger een onjuiste positie berekent. Wanneer het gereflecteerde signaal iets later aankomt dan het directe signaal, kan de ontvanger het interpreteren als komende vanuit een andere hoek, wat leidt tot onnauwkeurige positiebepalingen. Inconsistente metingen : GPS-signaalreflecties zijn vaak inconsistent, waardoor het moeilijk is voor ontwikkelaars om te voorspellen wanneer en waar ze zullen optreden. Deze inconsistentie kan resulteren in verschillende niveaus van onnauwkeurigheid, wat een uitdaging vormt bij het ontwerpen van locatie-afhankelijke diensten. Hoe kan de GPS-locatienauwkeurigheid worden verbeterd? Om de uitdagingen van GPS-signaalreflecties tegen te gaan en de gebruikerservaring te verbeteren, is een vernieuwde strategie nodig. Hier volgen enkele innovatieve strategieën om de GPS-locatienauwkeurigheid van de mobiele app Commuter in het bovenstaande voorbeeld te verbeteren: GPS-locaties filteren : Het is cruciaal om alle locatie-updates met een onnauwkeurigheid van meer dan 100 meter te verwijderen. Dit zorgt ervoor dat alleen de meest betrouwbare gegevens worden gebruikt voor berekeningen. Extra sensorgegevens gebruiken : Neem versnellingsmetergegevens op om de GPS-nauwkeurigheid te verbeteren. Gebruik een snelheidsverletalgoritme om locaties te voorspellen op basis van de versnellingsmetergegevens. Combineer deze voorspellingen met behulp van een Kalman Filter, waarbij rekening wordt gehouden met de onzekerheid van elke gegevensbron, het locatiesignaal wordt gestabiliseerd en een nauwkeurigere voorspelling wordt verkregen. Projectiealgoritmen voor busroutes: Aangezien Elise met de bus reist, kunnen projectiealgoritmen worden gebruikt om haar locatie af te stemmen op de route van de bus. Dit kan worden bereikt door de route te benaderen met behulp van gegevens van verschillende bushaltes. Crowdsourced Wi-Fi SSID's: Een andere innovatieve aanpak is het crowdsourcen van Wi-Fi SSID's (Service Set Identifiers). Deze SSID's kunnen fungeren als locatiemarkeringen en extra gegevenspunten leveren om de nauwkeurigheid van de locatie te verfijnen. Bluetooth-bakens voor verbeterde nauwkeurigheid : Het detecteren van crowdsourced Bluetooth beacons kan ook dienen als locatie-updates. Door gebruik te maken van deze BLE-bakens kun je de nauwkeurigheid van de app verder verbeteren. Door deze strategieën toe te passen, verbetert de nauwkeurigheid van de Commuter-app aanzienlijk en wordt een consistente en betrouwbare gebruikerservaring gegarandeerd. Als gevolg daarvan kunnen Elise en veel gebruikers zoals zij genieten van tijdige en nauwkeurige updates, wat leidt tot positieve beoordelingen en algehele klanttevredenheid. Conclusie Hoewel de uitdagingen voor de Commuter-app uniek lijken, weerspiegelen ze de echte hindernissen die veel ontwikkelaars van mobiele apps tegenkomen. Bij ACA hebben we deze uitdagingen met succes aangegaan met behulp van de hierboven beschreven strategieën. Hoewel GPS een waardevol hulpmiddel is, is het begrijpen van de beperkingen en het aanvullen van de gegevens met andere technologieën de sleutel tot betrouwbare locatiegebaseerde diensten. Op zoek naar een ervaren partner voor het ontwikkelen van mobiele toepassingen? {% module_block module "widget_137b2ccd-e194-4a50-a7ff-05def1e6085b" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Contact us"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":230950468795,"href":"https://25145356.hs-sites-eu1.com/en/contact","href_with_scheme":null,"type":"CONTENT"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder
ontwikkelaars aca groep
ontwikkelaars aca groep
Leestijd 5 min
6 MEI 2025

De webapplicaties en websites van tegenwoordig moeten 24/7 beschikbaar zijn vanaf elke plek ter wereld en moeten bruikbaar en prettig in gebruik zijn vanaf elk apparaat of schermformaat. Daarnaast moeten ze veilig, flexibel en schaalbaar zijn om pieken in de vraag op te vangen. In deze blog laten we u kennismaken met de architectuur van moderne webapplicaties en gaan we dieper in op verschillende back-end en front-end frameworks en hoe ze samenwerken. Wanneer mensen oplossingen vergelijken die worden gebruikt voor het bouwen van webapplicaties en websites, is er meestal sprake van een soort pitting tegen de ander. Hier gaan we tegen deze stroom in en proberen we de verschillen in kaart te brengen, zodat je kunt beslissen of de ene, de andere of beide passen bij de use case die je in gedachten hebt. Een essentieel concept dat moet worden opgemerkt is dat back-end frameworks, zoals Flask of FastAPI , en front-end frameworks, zoals React of Vue JS , twee fundamenteel verschillende technologieën zijn die verschillende, hoewel verwante, problemen oplossen. Ze tegen elkaar uitspelen is daarom geen goede aanpak. Tegenwoordig, als je een iets complexere webapplicatie of websiteoplossing wilt bouwen, heb je vaak solide frameworks nodig die stukjes van zowel de front-end als de back-end kant aanpakken om te bereiken wat je zoekt. De specifieke kenmerken van je applicatie zullen bepalen wat die onderdelen zijn en of het de moeite waard is om te investeren in het gebruik van slechts één van de twee technologieën, of beide in combinatie. Doel van een back-end framework Een back-end framework is het "brein" van je webapplicatie. Het moet zorgen voor de meeste, zo niet alle, taken op het gebied van berekeningen, gegevensbeheer en modelmanipulatie. Laten we het voorbeeld van FastAPI nemen. Hoewel dit back-end webframework voornamelijk wordt gebruikt voor het ontwikkelen van RESTful API's, kan het ook worden toegepast voor het ontwikkelen van complete webapplicaties als het wordt gekoppeld aan een front-end engine zoals Jinja2. Het gebruik van alleen FastAPI en wat templating zou ideaal zijn als je een standalone API wilt waar andere ontwikkelaars mee kunnen communiceren. Een ander goed doel zou een website of webapp zijn die dashboards en inzichten biedt over gegevensinvoer (grafieken gebaseerd op bestanden die je uploadt, etc.) zonder functionaliteiten die afhankelijk zijn van snelle gebruikersinteracties. Hieronder vind je een voorbeeld van een applicatie die volledig is gebouwd met een Python back-end en Jinja2 als templating engine. Klik hier voor meer informatie over het project, de broncode, enz. Het probleem dat je zou kunnen tegenkomen bij het maken van een complete web app of website met FastAPI is dat de hele logica van het programma naar de back-end wordt geduwd, en de enige taak voor de browser en het apparaat aan de kant van de client is het renderen van de HTML/CSS/JS respons die er naar toe wordt gestuurd. De tijd tussen het moment dat de browser het verzoek doet om iets weer te geven en het moment dat de gebruiker het ziet, kan dan enorm variëren op basis van een heleboel factoren. Denk aan de belasting van de server, de snelheid van het internet van de gebruiker, het geheugengebruik of de CPU-efficiëntie van de server, de complexiteit van de gevraagde taak, ... Doel van een front-end framework Tot nu toe kan de back-end zorgen voor alle operaties die we willen dat onze webapp heeft, maar er is geen manier om echt te interageren met de gebruiker. Een front-end framework zorgt voor de gebruikerservaring - UI-elementen zoals knoppen, een landingspagina, een interactieve tutorial, het uploaden van een bestand - in principe verloopt elke interactie met de gebruiker via het front-end framework. Als we kijken naar React of Vue JS - dit zijn front-end frameworks voor het ontwikkelen van dynamische websites en single page applicaties. Ze hebben echter een back-end technologie nodig (zoals FastAPI, Flask of NodeJS) om een RESTful API te bieden, zodat wat ze tonen dynamisch en interactief kan zijn. Alleen React gebruiken zou gebeuren in situaties waarin er al bestaande gegevensbronnen zijn waarmee je kunt interageren (openbare API's, externe gegevensleveranciers, cloudservices, enzovoort) en het enige wat je wilt creëren is de gebruikersinteractie met die services. Maar we kunnen hier al zien dat, in theorie, het combineren van de sterke punten van een solide back-end framework - zoals Flask, FastAPI, of NodeJS - met een goed front-end framework een optie is, en dan nog een hele goede ook. Voorbeelden van die combinatie zijn de BBC World Service News websites die worden gerenderd met behulp van een React-gebaseerde Single Page Application met een NodeJS back-end (Express). Klik hier voor een gedetailleerd overzicht op de GitHub-pagina van het project. In deze gevallen proberen front-end frameworks een deel (of veel) van de taken van de back-end te delegeren naar de client-side. Alleen de computationeel zware delen blijven op de server, terwijl alles wat overblijft en snel uit te voeren is in de browser op het apparaat van de client wordt gedaan. Dit zorgt voor een goede gebruikerservaring, "snappiness" en is in feite een soort decentralisatie van delen van de uitvoering van de webapplicatie, waardoor de belasting en verantwoordelijkheden van de server afnemen. De twee combineren 🤝 Tegenwoordig bestaat de architectuur van goed gebouwde en schaalbare webapplicaties uit een client-side framework dat een toestand bijhoudt, bestaande uit een toestand van de gebruikersinterface en een toestand van het datamodel. Deze toestanden vertegenwoordigen respectievelijk UI-elementen die de visuele ruggengraat van een applicatie vormen, en data-elementen die gekoppeld zijn aan wat voor soort gegevens of modellen (bijvoorbeeld een gebruiker) gebruikt worden doorheen de applicatie. Elke verandering in de toestand van het gegevensmodel veroorzaakt een verandering in de UI-toestand van de applicatie. Veranderingen in de datamodellen worden veroorzaakt door een gebeurtenis die direct van de gebruiker komt (zoals een muisklik) of een gebeurtenis aan de serverkant (zoals de server die zegt dat er een nieuwe melding voor de gebruiker is). De combinatie van al deze factoren zorgt voor een geweldige gebruikerservaring die dichter in de buurt komt van een desktopapplicatie in plaats van een ouderwetse, trage website. Klaar voor meer? In onze volgende blog leggen we de sterke punten van Python en NodeJS uit, en hoe je daartussen moet kiezen.

Lees verder
Gegevensstrategie
Gegevensstrategie
Hoe bouw je een datastrategie op maat van je organisatie?
Leestijd 4 min
6 MEI 2025

Je bent misschien wel bekend met de term 'data mesh'. Het is een van die modewoorden over data die al een tijdje de ronde doen. Hoewel data mesh het potentieel heeft om een organisatie in heel wat situaties veel waarde te bieden, moeten we ons niet blind staren op alle mooie terminologie. Als je een goede datastrategie wilt ontwikkelen, doe je er goed aan om jezelf eerst de volgende vragen te stellen: wat is de uitdaging die we met data willen aangaan? En hoe kan een oplossing bijdragen aan het bereiken van onze bedrijfsdoelstellingen? Er is zeker niets nieuws aan het gebruik van data door organisaties, maar we hebben wel een lange weg afgelegd. Aanvankelijk verzamelden bedrijven gegevens uit verschillende systemen in een datawarehouse. Het nadeel was dat het databeheer door een centraal team werd gedaan en dat de doorlooptijd van rapporten ernstig opliep . Bovendien moesten deze data engineers een goed begrip hebben van het hele bedrijf. In de jaren die volgden, zorgde de opkomst van sociale media ervoor dat de hoeveelheid gegevens als paddenstoelen uit de grond schoten, wat op zijn beurt leidde tot de term Big Data. Als gevolg hiervan werden tools ontwikkeld om enorme hoeveelheden gegevens te analyseren, waarbij de focus steeds meer verschoof naar selfservice. Deze laatste trend betekent nu dat het bedrijf zelf steeds beter in staat is om op eigen kracht met gegevens om te gaan. En dat brengt weer een nieuwe uitdaging met zich mee: zoals vaak het geval is, zijn we niet in staat om technologie los te koppelen van de processen in het bedrijf of van de mensen die deze gegevens gebruiken. Zijn deze mensen klaar om gegevens te gaan gebruiken? Hebben ze de juiste vaardigheden en heb je nagedacht over het soort vaardigheden dat je morgen nodig zult hebben? Wat zijn de doelen van het bedrijf en hoe kunnen werknemers bijdragen aan het bereiken ervan? Het menselijke aspect is een cruciaal onderdeel van elke krachtige datastrategie. Hoe maak je het verschil met data? In de praktijk blijkt dat veel bedrijven op het gebied van datastrategieën niet verder zijn gekomen dan een paar jaar geleden. Onnodig te zeggen dat dit nauwelijks een solide basis is om door te gaan naar de volgende stap. Laten we ons daarom richten op enkele van de belangrijkste elementen in een datastrategie: Gegevens moeten aanzetten tot actie: het is niet genoeg om alleen maar een paar cijfers te vergelijken; een kwalitatief hoogstaand rapport leidt tot een beslissing of moet op zijn minst duidelijk maken welke actie nodig is. Sharing is caring: als je toch gegevens hebt, waarom zou je ze dan niet delen? Niet alleen met je eigen interne afdelingen, maar ook met de buitenwereld. Als je erin slaagt om gegevens weer beschikbaar te maken voor de klant, is er een echt concurrentievoordeel te behalen. Visualiseren: gegevens worden vaak verzameld in slecht georganiseerde tabellen zonder goede lay-out. Studies tonen aan dat het menselijk brein moeite heeft om dit soort tabellen te lezen. Door gegevens te visualiseren (bijvoorbeeld met GeoMapping) kun je tot inzichten komen waar je eerder niet aan had gedacht. Verbind datasets: in het geval van datasets moet 1+1 altijd gelijk zijn aan 3. Als je bijvoorbeeld de effectiviteit van een marketingcampagne meet, kijk dan niet alleen naar het aantal kliks. De echte toegevoegde waarde zit in het correleren van de gegevens die je hebt met gegevens over het bedrijf, zoals (toegenomen) verkoopcijfers. Maak gegevens transparant: wees duidelijk over je bedrijfsdoelen en KPI's, zodat iedereen in de organisatie de gegevens kan gebruiken en zo kan bijdragen aan het behalen van een benchmark. Train mensen: zorg ervoor dat je mensen begrijpen hoe ze technologie moeten gebruiken, maar ook hoe gegevens hun taken kunnen vereenvoudigen en hoe gegevens bijdragen aan het behalen van de bedrijfsdoelen. Welk probleem wil je oplossen met data? Als je de basis eenmaal op orde hebt, kunnen we een stappenplan opstellen. Een oplossing mag nooit uitgaan van de gegevens zelf, maar moet altijd gekoppeld zijn aan een uitdaging of een doel. Daarom organiseert ACA Group altijd eerst een workshop om te achterhalen wat de doelstellingen van de klant zijn. Op basis van de uitkomst van deze workshop komen we tot een concrete probleemstelling, die ons op het juiste spoor zet om voor elke situatie een oplossing te vinden. De integratie van datasets zal in de nabije toekomst nog belangrijker worden, onder andere als onderdeel van duurzaamheidsrapportage. Om bedrijven zo goed mogelijk voor te bereiden en te begeleiden, zullen we in de loop van dit jaar met een reeks blogs dieper ingaan op enkele belangrijke terminologieën, methoden en uitdagingen rond gegevens. Bent u in de tussentijd benieuwd wat 'Data Mesh' precies inhoudt en waarom dit lonend kan zijn voor uw organisatie? {% module_block module "widget_1aee89e6-fefb-47ef-92d6-45fc3014a2b0" %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder
Apache Kafka in een notendop
Leestijd 5 min
6 MEI 2025

Apache Kafka is een zeer flexibel streamingplatform. Het richt zich op schaalbare, realtime gegevenspijplijnen die persistent en zeer performant zijn. Maar hoe werkt het en waarvoor gebruik je het? Hoe werkt Apache Kafka? Lange tijd werden applicaties gebouwd met behulp van een database waarin 'dingen' werden opgeslagen. Die dingen kunnen een bestelling zijn, een persoon, een auto ... en de database slaat ze op met een bepaalde status. In tegenstelling tot deze aanpak, denkt Kafka niet in termen van 'dingen' maar in termen van 'gebeurtenissen'. Een gebeurtenis heeft ook een toestand, maar het is iets dat in een bepaalde tijd is gebeurd. Het is echter een beetje omslachtig om gebeurtenissen in een database op te slaan. Daarom gebruikt Kafka een log : een geordende opeenvolging van gebeurtenissen die ook duurzaam is. Ontkoppelen Als je een systeem hebt met verschillende bronsystemen en doelsystemen, dan wil je die met elkaar integreren. Deze integraties kunnen vervelend zijn omdat ze hun eigen protocollen, verschillende gegevensformaten, verschillende gegevensstructuren, enz. hebben. Dus binnen een systeem met 5 bron- en 5 doelsystemen zul je waarschijnlijk 25 integraties moeten schrijven. Dat kan heel snel heel ingewikkeld worden. En dit is waar Kafka om de hoek komt kijken. Met Kafka ziet het bovenstaande integratieschema er als volgt uit: Wat betekent dat? Het betekent dat Kafka je helpt om je gegevensstromen te ontkoppelen. Bronsystemen hoeven alleen hun gebeurtenissen naar Kafka te publiceren en doelsystemen consumeren de gebeurtenissen uit Kafka. Bovenop de ontkoppeling is Apache Kafka ook zeer schaalbaar, heeft het een veerkrachtige architectuur, is het fouttolerant, is het gedistribueerd en is het zeer performant. Onderwerpen en partities Een topic is een bepaalde gegevensstroom en wordt geïdentificeerd door een naam. Topics bestaan uit partities. Elk bericht in een partitie wordt geordend en krijgt een incrementele ID die een offset wordt genoemd. Een offset heeft alleen betekenis binnen een specifieke partitie. Binnen een partitie is de volgorde van de berichten gegarandeerd. Maar wanneer je een bericht naar een topic stuurt, wordt het willekeurig toegewezen aan een partitie. Dus als je de volgorde van bepaalde berichten wilt behouden, moet je de berichten een sleutel geven. Een bericht met een sleutel wordt altijd toegewezen aan dezelfde partitie. Berichten zijn ook onveranderlijk. Als je ze wilt wijzigen, moet je een extra 'update-bericht' sturen. Brokers Een Kafka-cluster bestaat uit verschillende brokers. Elke broker krijgt een ID toegewezen en elke broker bevat bepaalde partities. Als je verbinding maakt met een broker in het cluster, ben je automatisch verbonden met het hele cluster. Zoals je in de bovenstaande afbeelding kunt zien, wordt onderwerp 1/partitie 1 gerepliceerd in broker 2. Slechts één broker kan leider zijn voor een onderwerp/partitie. In dit voorbeeld is broker 1 de leider en broker 2 zal automatisch de gerepliceerde topic/partities synchroniseren. Dit noemen we een 'in sync replica' (ISR). Producenten Een producer stuurt de berichten naar het Kafka cluster om ze naar een specifiek onderwerp te schrijven. Daarom moet de producer de topicnaam en één broker kennen. We hebben al vastgesteld dat je automatisch verbinding maakt met het hele cluster als je verbinding maakt met een broker. Kafka zorgt voor de routering naar de juiste broker. Een producer kan geconfigureerd worden om een bevestiging (ACK) te krijgen van het schrijven van data: ACK=0: producer wacht niet op bevestiging ACK=1: de producent wacht op de bevestiging van de leidende broker ACK=ALL: de producent wacht op de bevestiging van de leidende broker en de replicabroker. Het is duidelijk dat een hogere ACK veel veiliger is en garandeert dat er geen gegevens verloren gaan. Aan de andere kant is het minder performant. Consumenten Een consumer leest data van een topic. Daarom moet de consument de naam van het onderwerp en één broker kennen. Net als bij de producenten geldt dat wanneer je verbinding maakt met één broker, je verbonden bent met het hele cluster. Ook hier zorgt Kafka voor de routering naar de juiste broker. Consumenten lezen de berichten van een partitie in volgorde, rekening houdend met de offset. Als consumenten van meerdere partities lezen, lezen ze deze parallel. Consumentengroepen Consumenten zijn georganiseerd in groepen, oftewel consumentengroepen. Deze groepen zijn nuttig om parallellisme te verbeteren. Binnen een consumentengroep leest elke consument van een exclusieve partitie. Dit betekent dat in consumentengroep 1 zowel consument 1 als consument 2 niet van dezelfde partitie kunnen lezen. Een consumentengroep kan ook niet meer consumenten dan partities hebben, omdat sommige consumenten geen partitie hebben om van te lezen. Consumentenoffset Als een consumer een bericht van de partitie leest, legt hij elke keer de offset vast. In het geval dat een consumer dood gaat of netwerkproblemen heeft, weet de consumer waar hij verder moet als hij weer online is. Waarom we geen berichtenwachtrij gebruiken Er zijn enkele verschillen tussen Kafka en een message queue. Enkele belangrijke verschillen zijn dat nadat een consument van een berichtwachtrij een bericht heeft ontvangen, het uit de wachtrij wordt verwijderd, terwijl Kafka de berichten/gebeurtenissen niet verwijdert. Hierdoor kun je meerdere consumenten op een onderwerp hebben die dezelfde berichten kunnen lezen, maar er verschillende logica op uitvoeren. Omdat de berichten persistent zijn, kun je ze ook opnieuw afspelen. Wanneer je meerdere consumenten op een berichtwachtrij hebt, passen ze over het algemeen dezelfde logica toe op de berichten en zijn ze alleen nuttig om de belasting af te handelen. Gebruikscases voor Apache Kafka Er zijn veel gebruikssituaties voor Kafka. Laten we enkele voorbeelden bekijken. Telemetrie van pakketbezorging Wanneer je iets bestelt op een webshop, krijg je waarschijnlijk een melding van de koeriersdienst met een trackinglink. In sommige gevallen kun je de chauffeur zelfs in real-time volgen op een kaart. Dit is waar Kafka om de hoek komt kijken: de bestelbus van de koerier heeft een ingebouwde GPS die zijn coördinaten regelmatig naar een Kafka-cluster stuurt. De website die je bekijkt, luistert naar die gebeurtenissen en toont je in realtime de exacte positie van de koerier op een kaart. Website-activiteit volgen Kafka kan worden gebruikt voor het volgen en vastleggen van website-activiteit. Gebeurtenissen zoals paginaweergaves, zoekopdrachten van gebruikers, enz. worden vastgelegd in Kafka topics. Deze gegevens worden vervolgens gebruikt voor een reeks use cases zoals real-time monitoring, real-time verwerking of zelfs het laden van deze gegevens in een data lake voor verdere offline verwerking en rapportage. Applicatie gezondheidsmonitoring Servers kunnen worden bewaakt en ingesteld om alarmen te activeren in geval van systeemfouten. Informatie van servers kan worden gecombineerd met de syslogs van de server en naar een Kafka-cluster worden gestuurd. Via Kafka kunnen deze onderwerpen worden samengevoegd en ingesteld om alarmen te triggeren op basis van gebruiksdrempels, met volledige informatie voor het eenvoudiger oplossen van systeemproblemen voordat ze catastrofaal worden. Conclusie In deze blogpost hebben we in grote lijnen uitgelegd hoe Apache Kafka werkt en waarvoor dit ongelooflijke platform kan worden gebruikt. We hopen dat je iets nieuws hebt geleerd! Als je nog vragen hebt, laat het ons dan weten. Bedankt voor het lezen!

Lees verder
Wat is Low-Code en waarom zou je er iets om geven?
Leestijd 5 min
6 MEI 2025

In deze blog duiken we dieper in 'Low-Code' als concept en hoe je het beste Low-Code platform kiest voor jouw bedrijf. Low-Code als concept Low-Code, visual development application modelling, citizen development, ... Als je een ontwikkelaar bent, zullen deze termen zeker een belletje doen rinkelen. Maar wat is Low-Code precies, waarom is het belangrijk voor jou en wie heeft er baat bij? Het antwoord is eenvoudig: "Dat hangt ervan af". Als we een stap terug doen, is Low-Code een concept dat draait om visuele ontwikkeling of modellering en dat op grote schaal wordt ondersteund door automatisering . Deze definitie maakt het toepasbaar op veel verschillende gebieden in IT en meer. Hoe kies je het beste Low-Code platform? Een snelle blik op de rapporten van Forrest en Gartner levert meer dan 300 verschillende Low-Code platforms en producten op. Zijn deze allemaal gelijkwaardig? Duidelijk niet. Zijn ze allemaal bedoeld voor applicatieontwikkeling? Nogmaals, nee. Dus hoe kun je bepalen welk Low-Code platform, product of oplossing relevant zou kunnen zijn voor jou en je klanten? Als we ons concentreren op de leiders en bekende namen, kunnen we gemakkelijk enkele patronen herkennen om ze te categoriseren (zie het voorbeeld hieronder). Low-Code oplossingen per categorie - Robotische procesautomatisering (RPA) Het gebruik van Low-Code en visuele ontwikkeling/modellering voor het creëren van processen, integraties en automatisering. - Automatisering van levering van software op maat Traditionele ontwikkelingsframeworks versterken met Low-Code accelerators om delen van applicaties of startpunten te genereren. - Aanpassing van pakketten De meeste toonaangevende pakketleveranciers investeren in Low-Code oplossingen binnen hun eigen platform om aanpassingen te vergemakkelijken. - Testautomatisering Iedereen kent Selenium , een zeer krachtige tool om testscripts te maken en te onderhouden. Sommige platformen passen zelfs een no-code benadering toe om de testgevallen te modelleren en de Selenium-scripts te laten genereren, uitvoeren en onderhouden zonder dat codering nodig is. - Citizen ontwikkeling voor team- en afdelingsapps Moe van het werken met Excel of Google Sheets? Zoek je een makkelijk te gebruiken en te leren oplossing om kleine en eenvoudige applicaties voor je team of afdeling te bouwen? Dan zijn Citizen Development platforms de oplossing voor jou. Het is echter niet geschikt voor bedrijfsapplicaties. Gebruik het dus waarvoor het bedoeld is. Je wilt toch ook niet dat je tuinman je nieuwe elektrische auto in elkaar zet? - Enterprise full-stack ontwikkelingsplatformen Een Low-Code enterprise ontwikkelplatform biedt een grafische gebruikersinterface voor programmeren en genereert de onderliggende code automatisch, waardoor ontwikkelaars minder met de hand hoeven te coderen. Deze tools helpen niet alleen met snelle front-end ontwikkeling, maar ook met logica, back-end, integraties en zelfs lifecycle management. In met Low-Code ontwikkeling, uit met traditionele ontwikkeling? Kan Low-Code traditionele ontwikkeling zoals .Net of Java volledig vervangen? Natuurlijk niet! Maar Low-Code ontwikkelingsplatforms kunnen zeker helpen om meer projecten in minder tijd op te leveren met hetzelfde aantal mensen . Het stelt organisaties in staat om sneller te reageren op kansen met een kortere time-to-market. Bovendien kan het helpen om een geldige business case te maken voor projecten die op de lange baan werden geschoven vanwege "andere prioriteiten" en teams die zich voornamelijk richten op bedrijfskritische systemen in uw bedrijf. Waarom we Low-Code gebruiken bij ACA Group Als IT-consultancybedrijf en integrator richten we ons op het leveren van software op maat om aan de specifieke behoeften van onze klanten te voldoen. Low-Code biedt ons een krachtig hulpmiddel om dit te doen. En niet alleen voor de eenvoudige apps! Met het juiste Low-Code platform kunt u zelfs uw legacy moderniseren en klantgerichte web- en mobiele apps bouwen die geïntegreerd zijn met uw ERP, CRM, IAM en brede bestaande landschap. Het kan je ook helpen je IT-landschap te rationaliseren en te vereenvoudigen en de tools van je bedrijf terug te brengen onder IT Governance zonder dat je de business hoeft te vertellen "sorry, we hebben andere prioriteiten". Onze strategische keuze: OutSystems ACA koos voor een strategisch partnerschap met OutSystems , een toonaangevend en veruit het meest productieve, veelzijdige en stabiele Low-Code platform op de markt voor enterprise full-stack ontwikkeling. Ons team van experts werkt al sinds 2016 met OutSystems en heeft ook projecten opgeleverd met andere toonaangevende platforms. We blijven op de hoogte van de laatste aankondigingen, nieuwe functionaliteiten en grote verschillen tussen de 3 toonaangevende Low-Code platforms voor algemene applicatieontwikkeling. Op die manier kunnen we onze klanten adviseren over wat het beste past bij hun behoeften. OutSystems Developer Cloud: de beste oplossing voor full-stack ontwikkeling OutSystems Developer Cloud is het toonaangevende PaaS cloud native high performance Low-Code platform voor full-stack ontwikkeling en integraties. Het dekt de breedste set use cases. Van interne apps tot B2B- en B2C-klantgerichte web- en mobiele applicaties, processen en zelfs kernsystemen. Het gebruik ervan voor legacymoderniserings- en innovatieprojecten is een grote versneller voor uw digitale transformatie. De voordelen van OutSystems Developer Cloud Wat levert OutSystems Developer Cloud op voor bedrijven en de ontwikkelaars en software engineers die het gebruiken om de projecten op te leveren? 3-4x snellere levering Eén uniforme manier voor het ontwikkelen van web, mobiel, front-end, back-end en integraties Gemakkelijk te leren voor software engineers en webontwikkelaars AI-ondersteunde ontwikkeling en ingebouwde generatieve AI Geen extra ontwikkeltools nodig (GitHub, Eclipse, Visual Studio, ...) Ontwikkelteams gericht op het leveren van waarde Beveiligd vanuit de doos Veel minder onderhoud Geen infrastructuur om te beheren Ingebouwd levenscyclusbeheer Automatisch schalen Dit alles terwijl je nog steeds de architectuur en best practices in handen hebt. Wil je aan de slag met Low-Code? {% module_block module "widget_90cf7739-dc28-449d-9a8c-ff948108e163" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Let's do it together"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":null,"href":"","href_with_scheme":"","type":"CONTENT"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder
aca prijs
aca prijs
Leestijd 7 min
6 MEI 2025

De Global Accessibility Awareness Day vindt elk jaar plaats op de derde donderdag van mei met als doel toegankelijkheid in de kijker te zetten. Voor ACA Group zijn de toegankelijkheid, gebruiksvriendelijkheid en inclusie van technologie al lang een belangrijk aandachtspunt. In deze blog ontdek je enkele van onze projecten waarbij toegankelijkheid hoog op de prioriteitenlijst stond. De bedoeling van de Global Accessibility Awareness Day (GAAD) is om zoveel mogelijk mensen te laten nadenken en praten over hoe technologie toegankelijk kan worden gemaakt voor mensen met een beperking. Op deze manier wil het initiatief bijdragen aan een meer inclusieve digitale wereld. Wat is toegankelijkheid? Digitale toegankelijkheid betekent dat digitale technologieën, zoals online tools, applicaties en elektronische documenten, zo zijn ontworpen dat ze voor iedereen toegankelijk zijn, ook voor mensen met een beperking. Hierdoor kunnen zij, net als iedereen, blijven deelnemen aan de digitale economie en samenleving. Een van de belangrijkste aspecten van toegankelijkheid is dat mensen met een visuele, auditieve, cognitieve of fysieke beperking digitale content effectief kunnen waarnemen, begrijpen, ermee kunnen navigeren en ermee kunnen interageren. De visie van ACA Group op toegankelijkheid "Ons duurzaamheidsbeleid is veel meer dan onze sponsoring van goede doelen," zegt Dorien Jorissen , Chief Digital Officer Sustainability Manager bij ACA Group. "We streven ernaar om alle aspecten van duurzaamheid te analyseren en te integreren in onze activiteiten. Toegankelijkheid is ook een integraal onderdeel van ons duurzaamheidsbeleid. " De SDG's (Sustainable Development Goals) van de Verenigde Naties vormen de basis van het duurzaamheidskader van ACA Group. "Dit willen we niet alleen uitdragen in onze kantoren, in ons team en bij onze stakeholders, maar ook in onze digitale dienstverlening en onze projectmethodiek ", zegt Dorien. "In een snel evoluerende wereld, waarin technologie steeds meer verweven raakt met ons dagelijks leven, zijn we als toonaangevend IT-bedrijf verplicht om digitale toegankelijkheid hoog op de agenda te houden." Hieronder een foto van ACA Group die de DataNews Award 2022 voor Most Environmentally Responsible ICT Company of the Year'👇🏻 wint. Toegankelijkheid in de praktijk Hieronder vind je drie projecten van ACA Group waarvoor toegankelijkheid een belangrijke ontwerpeis was. ⭐️ Mobiele app voor De Lijn met focus op toegankelijkheid Toegankelijkheid is heel belangrijk voor De Lijn . Niet alleen in termen van gemakkelijke toegang tot hun voertuigen, maar ook in termen van hun digitale toepassingen, zoals de mobiele app. De uitdaging De vervoersmaatschappij wil dat hun app toegankelijk en gebruiksvriendelijk is voor iedereen, ook voor mensen met een visuele beperking. Zij zijn vaak afhankelijk van het openbaar vervoer en moeten de app daarom gemakkelijk kunnen gebruiken. "In het verleden konden mensen met een visuele beperking gebruikmaken van een aparte app die routes en realtime informatie beter kon voorlezen", zegt Joren Vos , Mobile Solution Engineer bij ACA Group. "Deze app was echter verouderd. Daarnaast was ook de algemene app van De Lijn aan een update toe." De oplossing Er was dus nood aan een update van zowel de gewone De Lijn app als de BLS app . Daarom werd besloten om de BLS-app en de algemene De Lijn-app te integreren in één gebruiksvriendelijke app voor iedereen. "In het nieuwe ontwerp van de app hebben we ons gefocust op eenvoudige en gebruiksvriendelijke navigatie," legt Joren uit. "We vervingen de oude complexe navigatiestructuur door een gebruiksvriendelijke navigatiebalk onderaan het scherm. We realiseerden ook een duidelijke context bij het lezen vanaf het scherm, de ondersteuning van grotere tekstgroottes en een voice-over." "We hebben ook de realtime informatie verbeterd en een filebarometer toegevoegd. Hiermee kan een reiziger zien hoe druk het is op een bepaalde bus of tram." Het resultaat Dankzij de nieuwe menustructuur maakt de vernieuwde app van De Lijn het voor iedereen veel gemakkelijker om tickets te kopen, openbaar vervoerroutes uit te stippelen en haltes en bestemmingen op te zoeken. Dankzij nieuwe functionaliteiten zoals voice-over, waarschuwingen bij het uitstappen en de ondersteuning van grotere lettergroottes kunnen ook mensen met een visuele beperking de app gemakkelijk gebruiken. Na een toegankelijkheidsonderzoek door Eleven Ways en het behalen van het vereiste label mag de app van De Lijn zich nu officieel 'toegankelijk' noemen. ⭐️ ACA website volgens Web Content Accessibility Guidelines In 2020 wilden we de ACA-website een redesign geven. Stijn Schutyser , tegenwoordig UI/UX designer bij ACA Website, was destijds als copywriter en SEO Specialist betrokken bij het project. Hij zegt: "We vinden het belangrijk om onze collega's bij elke fase van zo'n project te betrekken. Daarom hebben we tijdens de voorbereidingsfase intern een eerste voorstel gestuurd. Een van de ACA-collega's stelde voor om vanaf het begin extra aandacht te besteden aan toegankelijkheid voor mensen met een beperking. Aangezien inclusie een belangrijke focus is van ons duurzaamheidsbeleid, zijn we meteen aan de slag gegaan met dit fantastische idee." Webontwikkeling volgens internationale standaard "We besloten de website te ontwikkelen volgens de Web Content Accessibility Guidelines," legt Stijn uit. "Het was de eerste keer dat we een website volgens deze internationale standaard zouden ontwikkelen. Dat maakte het een hele uitdaging voor ons technische team: de richtlijnen bestuderen, nagaan hoe we ze het best konden implementeren, de codering, ..." "Een van de belangrijkste doelen was om de website gebruiksvriendelijk te maken voor mensen die gebruik maken van een screenreader die de tekst op een website voorleest. We hebben er bijvoorbeeld voor gezorgd dat een schermlezer met één druk op de knop direct naar de hoofdinhoud van een pagina springt, zonder de overbodige inhoud in de menubalk voor te lezen, enzovoort." Audit door Eleven Ways en AnySurfer "Na de ontwikkeling en lancering van de nieuwe website hebben we deze laten testen door Eleven Ways ," vertelt Stijn. "Zij gaven ons een aantal werkpunten mee die we moesten aanpakken om aan de richtlijnen te voldoen. Na deze aanpassingen hebben we de site laten auditen door AnySurfer met als doel het AnySurfer-label niveau AA te ontvangen. Dat label bewijst dat je website is getest door AnySurfer en dat hij voldoet aan de WCAG-standaard om te spreken van een toegankelijke website." Wist je trouwens dat de website van ACA een Lighthouse toegankelijkheidscore van 98 heeft, een bijna perfecte score. Toegankelijkheid zal ook in de toekomst een belangrijke ontwerpparameter zijn voor onze website. ⭐️ Hoe we de toegankelijkheid van PDF-bestanden verbeteren Toegankelijkheid is niet alleen belangrijk voor websites en apps. "Elk stukje content moet toegankelijk zijn voor iedereen, dus ook PDF-bestanden", zegt Ibn Renders , Lead Branding bij ACA Group. "Daarom zorgen we er bij ACA Group voor dat onze PDF-bestanden worden aangepast voor mensen met een visuele beperking die een schermlezer gebruiken." Hieronder geeft Ibn drie tips om PDF-bestanden voor iedereen toegankelijk te maken: Toegankelijkheidscontrole: Om de toegankelijkheid van onze PDF-documenten te verbeteren, gebruiken we de functie 'toegankelijkheidscontrole' van Acrobat Pro. Deze tool controleert je document en geeft aan welke dingen je moet aanpassen. Leesvolgorde: Het is belangrijk om je PDF-bestand te structureren met de juiste koppen en paragrafen. Als je dat niet doet, wordt je document één grote chaos voor mensen met een schermlezer. In Acrobat Pro kun je met de toegankelijkheidsopties eenvoudig de gewenste leesvolgorde bepalen. Alt-tekst: Schermlezers weten niet wat er op een afbeelding, audio- of video-element staat. Gelukkig kun je ze helpen door een alt-tekst toe te voegen met een korte beschrijving van het relevante audiovisuele element. Wil je meer weten over toegankelijkheid voor PDF-bestanden? Lees het blogartikel "3 eenvoudige tips om je PDF-bestanden voor iedereen toegankelijk te maken" . Conclusie In een steeds digitalere wereld moeten we ervoor zorgen dat iedereen, ook mensen met een handicap, toegang blijft houden tot online en offline digitale oplossingen en content. Als toonaangevend IT-bedrijf willen we samen met ACA Group onze verantwoordelijkheid nemen om toegankelijkheid te integreren in onze diensten, onze methodologie en onze oplossingen. We doen al veel inspanningen om dit te bereiken, maar het blijft een voortdurende inspanning om het nog beter te doen. Op zoek naar een IT-partner die u echt begrijpt? {% module_block module "widget_721f158c-b460-4017-9a15-8780ca97dc15" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Let's talk"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":230950468795,"href":"https://25145356.hs-sites-eu1.com/en/contact","href_with_scheme":null,"type":"CONTENT"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder
laptop applicatie
laptop applicatie
Leestijd 4 min
6 MEI 2025

Enkele verschillen: de labels Shop en Shop/Upgrade zijn niet consistent, de vage labels staan op een andere plaats, zoals "Support" en "Account", "TV", "labels" en "Aanmelden" zijn soms labels en soms pictogrammen, de zoekfunctie ontbreekt in de bovenste header, alleen de eerste header had een hamburger menu. Je herkent deze situatie misschien wel: als je applicatie groeit, groeit de diversiteit aan elementen mee. Knoppen op verschillende pagina's staan net iets anders of niet precies op dezelfde plek, pictogrammen behoren niet allemaal tot dezelfde set, nieuwere formulieren volgen niet dezelfde structuur als vorige, er zijn verschillende lettertypen of -groottes voor hetzelfde doel, enzovoort. Dat is vervelend en ronduit rommelig. Het is nog erger als deze inconsistentie ervoor zorgt dat je applicatie volgens je gebruikers niet meer werkt zoals verwacht omdat er ook te weinig consistentie is in de interactiepatronen. Dit kan ertoe leiden dat gebruikers je applicatie of een deel ervan steeds minder gebruiken of er zelfs niet meer mee werken. Het belang van consistentie "Consistentie" is een belangrijke metriek die de meeste bedrijven onderschatten. Consistentie is een cruciaal onderdeel van elk bedrijf met een digitaal platform of dienst. Het zorgt niet alleen voor een gebruiksvriendelijk product, maar ook voor tal van andere voordelen, zoals: een uniforme ervaring op verschillende apparaten, correcte implementatie van branding, merkbekendheid en nog veel meer... We erkennen allemaal het belang van die consistentie, maar hoe kun je er nu voor zorgen dat je dit ook binnen je organisatie waarborgt? Wat is een 'design systeem'? Een ontwerpsysteem is een centrale plek waar alle onderdelen van een digitaal product of set van digitale producten worden beschreven . Je kunt het zien als een soort bibliotheek waarin verschillende visuele componenten zijn opgeslagen voor gebruik in je website, app of social media content. Kleur en typografie zijn primaire componenten in een design systeem, net als knoppen, formulieren, voetteksten en andere componenten. Ontwerpsysteem 'Atomus' , gratis beschikbaar binnen Figma De voordelen van een ontwerpsysteem Het gebruik van een ontwerpsysteem heeft 3 grote voordelen: het creëert meer samenhang en consistentie, het zorgt voor een hoge mate van herbruikbaarheid, en is zeer eenvoudig te gebruiken. Een ontwerpsysteem helpt bij het creëren van een consistent merkimago . Als je eenmaal een ontwerpsysteem hebt gemaakt, wordt het de "enige bron van waarheid" voor je visuele identiteit. Iedereen kan ontwerpen maken die er hetzelfde uitzien, hetzelfde aanvoelen en volgens dezelfde interactiepatronen werken. Hoge mate van herbruikbaarheid Je team kan snel nieuwe componenten ontwerpen op basis van bestaande kleinere elementen die atomen worden genoemd. Je kunt je huidige atomen dus altijd hergebruiken om nieuwe dingen te maken die meteen passen binnen het ontwerp en de look feel van je ontwerpsysteem. Snel en eenvoudig te gebruiken Bestaande of nieuwe collega's die minder ervaring hebben met UX- of UI-ontwerp kunnen helpen bij het maken van moderne, gebruiksvriendelijke en mooie interfaces. Dit versnelt het werk van uw ontwikkelaars en verhoogt uw efficiëntie! Daarnaast biedt deze efficiëntie nog een ander voordeel, namelijk dat veranderingen in uw product of dienst zeer snel kunnen worden doorgevoerd. Dit betekent dat u een veel snellere time-to-market kunt realiseren. Herkent u een of meer van deze uitdagingen? Hebben je applicaties soms last van een inconsistente werking of visuele weergave en ben je benieuwd hoe je dit kunt verhelpen met een ontwerpsysteem? Of heb je vragen over hoe je een ontwerpsysteem precies kunt inrichten om ervoor te zorgen dat je niet tegen consistentieproblemen aanloopt? Reserveer dan hieronder een gratis en vrijblijvend plekje in onze agenda voor een vraag- en antwoordsessie. Tijdens dit gesprek luisteren we graag naar je vragen en geven we je gericht advies. {% module_block module "widget_4ef2ded0-7241-4df2-939c-0070891b3837" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Book Q A session with an expert"},"target":{"link":{"no_follow":false,"open_in_new_tab":true,"rel":"noopener","sponsored":false,"url":{"content_id":null,"href":"https://calendly.com/q-and-a-session/boek-een-q-a-sessie-met-onze-expert-clone?month=2022-11","href_with_scheme":"https://calendly.com/q-and-a-session/boek-een-q-a-sessie-met-onze-expert-clone?month=2022-11","type":"EXTERNAL"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder