Advertorial

Door Tweakers Partners

Developers IVO Rechtspraak bouwen webportaal voor bewindvoerders

08-03-2022 • 08:00

32 Linkedin

Meer en meer ontstond binnen de Rechtspraak behoefte aan een webportaal voor particuliere bewindvoerders, zoals mensen die het bewind voeren voor een dementerende ouder of een gehandicapt kind. Inmiddels werkt de Rechtspraak ongeveer vijf jaar met Microsoft CRM, waarin alle dossiers staan met de zaken die ze behandelen. Dit systeem heeft een system-to-system (s2s), een koppelvlak waar professionele bewindvoerders met hun eigen software op aan kunnen sluiten om informatie uit te wisselen. De oplossing bedient echter niet de volledige doelgroep. Particuliere bewindvoerders beschikken niet over professionele software om te koppelen. Om bijvoorbeeld verslag te kunnen doen van iemands financiële situatie moesten zij tot dusver formulieren per post opsturen. Niet alleen is dit onpraktisch voor de verzender, ook is de informatie niet gestructureerd. Daardoor verloopt de verwerking ervan in de dossiers door de rechtbanken minder efficiënt.

Webportaal geschreven in Angular en RxJS

Maint Berkenbosch is een van de mensen die aan Mijn Bewind, het nieuwe portaal voor particuliere bewindvoerders, heeft gewerkt. "Officieel is mijn functie die van CRM-ontwikkelaar, maar van huis uit ben ik full stack .NET-developer."

“De communicatie tussen rechtbanken en bewindvoerders wordt gedigitaliseerd met gestructureerde data”

Mijn Bewind is dus een afgeschermd, beveiligd webportaal voor het uitwisselen van informatie met de rechtbank. “We hebben ervoor gekozen om Mijn Bewind als webportaal te bouwen, met Angular en RxJS. Het had overigens ook best een mobiele app kunnen zijn, maar het was logischer om het als webportaal in te richten. Dit omdat we van de doelgroep weten dat ze hun administratie liever op een laptop of desktop bijhouden. Een jaarverslag vul je niet zomaar even in op je smartphone. Overigens schaalt de oplossing wel gewoon goed voor mobiele devices.”

De Rechtspraak krijgt via Mijn Bewind alle informatie van particuliere bewindvoerders gestructureerd binnen en reageert digitaal via het webportaal. Hierdoor is het beter mogelijk deze dossiers op een uniforme manier te behandelen. De werkwijze is hetzelfde als bij professionele bewindvoerders. Goede beveiliging is essentieel. "Er was al wat ervaring met het digitaal uitwisselen van vertrouwelijke informatie, door de system-to-system-koppeling. Hier konden we dus op voortbouwen. We gebruiken onder meer de autorisatiemechanismen die we al in de s2s-koppeling toepassen. En voor authenticatie gebruiken we DigiD."

“We staan geen inline CSS toe in de webomgeving. Hiervoor moesten we wel wat maatwerk leveren”

Een webportaal heeft zo zijn eigen beveiligingsissues, bijvoorbeeld JavaScript Injection- of XSS-aanvallen. Daarom is ervoor gekozen om geen inline scripting te doen en zelfs geen inline CSS toe te staan. "Hiervoor moesten we wel wat maatwerk leveren om nonce-attributen aan de gegenereerde styles toe te voegen."

Samenwerking met verschillende specialismen

Het project voor het bouwen van Mijn Bewind begon in 2020. Veel nadruk is daarbij gelegd op de Web Content Accessibility Guidelines (WCAG), richtlijnen die de Nederlandse overheid hanteert voor haar websites. Maint: "Je moet daarbij niet alleen denken aan de toegankelijkheid voor blinden en slechtzienden, maar ook meer in het algemeen aan het logisch positioneren van bepaalde knoppen en acties." Tegelijkertijd is de omgeving qua UX en design from scratch opgebouwd. "Dat was spannend en ook ontzettend leuk. Sommige dingen hadden we daarnaast nog niet eerder gedaan, bijvoorbeeld het aansluiten op DigiD.”

De web-based oplossing is geschreven in Angular. "Voor web is dit een veelgebruikte standaard en het is een moderne taal. In ons team was hiervoor ook de kennis aanwezig. Dat geldt ook voor de RxJS-library, waarmee we onder andere hebben ingericht hoe Mijn Bewind met callbacks in asynchrone events omgaat."

Het grootste deel van het werk voor het portaal werd in ongeveer zes maanden verzet, met een team van vier ontwikkelaars. "Niet fulltime hoor, maar we waren er allemaal wel een deel van onze tijd mee bezig. Behalve de developers hebben we op verschillende momenten ook met één of twee testers en een UX-designer gewerkt." De code is vooral gemaakt met Microsoft Visual Studio en de .NET IDE Rider van JetBrains. Zelf heeft Maint een lichte voorkeur voor die laatste IDE. "JetBrains heeft ook ReSharper op de markt gebracht voor Visual Studio, om daar je code netjes in te houden, maar in Rider zitten de functionaliteiten daarvan ook al ingebakken. In ieder geval is het voordeel van het werken met een complete IDE dat je verschillende projecten in dezelfde omgeving kunt bijhouden, zowel aan de client side als bij de backend-componenten."

rechtspraak

Snelheid in tweewekelijkse sprints

Volgens Maint was het lastigste moment van het project het aansluiten van Mijn Bewind op het programma Digitale Toegang. "Dat vereiste wat afstemming. ‘Lastig’ is overigens een groot woord, maar je hebt wel te maken met een andere partij in de organisatie, en daardoor moet er best veel worden geschakeld. Je moet ook denken aan de ontwikkelstraat, met daarin meerdere omgevingen, van de ontwikkelomgeving tot de test-, acceptatie- en productieomgeving. Die moeten allemaal goed werken en de afstemming komt soms op hele kleine, praktische dingen aan waar je je af en toe een breuk op zoekt. Zo liep de klok op mijn pc op een gegeven moment niet helemaal synchroon met een van de omgevingen en kreeg ik steeds weer time-outs. Het RxJS-patroon vergde wat uitzoekwerk, voor mij was het toch een nieuwe manier van werken. Maar al met al kun je in een half jaar superveel neerzetten. Dat maakt het initiële ontwikkeltraject heel leuk: in tweewekelijkse sprints zie je er steeds weer hele stukken nieuwe functionaliteit bijkomen."

In maart 2021 is de Rechtspraak gestart met een pilot van Mijn Bewind bij enkele rechtbanken. De landelijke uitrol ging in februari 2022 van start. "Het is leuk om te zien dat je zo'n belangrijke en straks door duizenden mensen gebruikte omgeving volledig kunt opbouwen", constateert Maint. "Ik ga niet zeggen dat we helemaal geen issues meer hebben, maar het werkt nu al goed en de feedback die we krijgen is positief." Sowieso is Maint tevreden over het werken voor IVO Rechtspraak. “Voor een overheidsorganisatie krijg je veel vrijheid als developer. En omdat je met veel partijen hebt te maken, maak je kennis met veel verschillende zaken. De ene keer ben je met CRM bezig, de andere keer met een servicelaag of een portaal. Het werk dat je doet is bovendien behoorlijk belangrijk. Niet alleen waar het gaat om het zo veilig mogelijk inrichten van een omgeving als Mijn Bewind, maar ook als het gaat om het goed begrijpen van de gebruikers waarvoor je een oplossing maakt. Voor een developer is dat essentieel; je moet immers iets neerzetten dat echt doet wat het zou moeten doen.”

Hoe zouden jullie - de tweakers-community - een project als Mijn Bewind aanpakken? Laat het ons vooral weten in de comments! Wil je meer weten over werken bij IVO Rechtspraak, of ben je benieuwd of er vacatures zijn die passen bij jouw profiel? Kijk dan verder op werkenbijderechtspraak.nl.

Dit artikel is geen redactioneel artikel, maar een advertorial en tot stand gekomen dankzij Rechtspraak Group IT en Tweakers Partners. Dit is de afdeling binnen Tweakers die verantwoordelijk is voor commerciële samenwerkingen, winacties en Tweakers-events zoals Meet-ups, Developers Summit, Testfest en meer. Kijk hier voor een overzicht van alle acties en events. Mocht je ideeën met ons willen delen over deze vorm van adverteren, dan horen wij dat graag. Hierover kun je met ons in gesprek via [Discussie] Reclame algemeen].

Wat vind je van dit artikel?

Geef je mening in het Geachte Redactie-forum.

Reacties (32)

32
32
7
2
0
18
Wijzig sortering
Ben wel benieuwd wat de keuzes zijn geweest om voor Angular en RxJS te gaan… In mijn ogen toch wel een framework wat een beetje dood aan het gaat is (https://2021.stateofjs.co...ries/front-end-frameworks).
Overheid / rechtsgang ligt 95% van de tijd achter op de werkelijkheid, tenminste is mijn ervaring.
Denk dat je gelijk hebt... Hij noemt angular een "moderne taal". Misschien doelt ie daarmee op het feit dat er javascript gebruikt wordt (of typescript waarschijnlijk).

Ik noem het oude meuk.. Blazor is modern en een stuk developer-friendly ook, van Angular krijg ik kramp in mn vingers van het typen.
Ik ben me er van bewust dat Angular niet de 'latest and greatest' is, maar het is natuurlijk wel een framewok dat nog volop in ontwikkeling is en ook nog volop gebruikt wordt. Voor ons een prima keuze, ook omdat er al de nodige ervaring mee was. Blazor was zeker ook een optie, maar daar had het team gewoon minder ervaring mee.
Persoonlijk heb ik wel het gevoel dat er vooral bij frontend ontwikkeling een neiging is om heel hard achter de laatste trends aan te hollen (Elm was ook heel cool..), waarbij vaak helemaal niet duidelijk is hoe bestendig die zijn. Maar ik houd niemand tegen natuurlijk, gebruik vooral wat je fijn vind. Zelf heb ik niet zo'n specifieke voorkeur.
Persoonlijk heb ik wel het gevoel dat er vooral bij frontend ontwikkeling een neiging is om heel hard achter de laatste trends aan te hollen
Dat gevoel heb ik ook! Maar, naar mijn idee wordt dat ook gevoed door onvrede over de gebruikte/huidige frameworks. Dat is natuurlijk ook maar mijn mening, maar ik ben vast niet de enige die na 1 Angular project denkt dat het beter/makkelijker/minder omslachtig kan.
maar daar had het team gewoon minder ervaring mee
Ja dat hoor ik vaak.. Helaas de cold truth als er van je verwacht wordt dat je op snel kan/moet leveren, dan pak je tools die je kent. Vaak zijn er ook standaarden waar je aan moet of wilt houden. 5 verschillende frameworks voor 5 verschillende applicaties is ook weer niet fijn op 1 afdeling. Dat gaat wel ten koste van innovatie en persoonlijke ontwikkeling. Het blijft altijd een afweging.
maar daar had het team gewoon minder ervaring mee
Dat is gewoon een kip-ei verhaal. Je kan mensen ook de tijd geven om er meer ervaring mee op te doen.

En wat dacht je van de complexiteit en grote boilerplate van Angular?

Het grootste probleem is en blijft Observables, in welk framework dan ook (en de garbage collection er van).
Elm is ook heel cool, nadeel is wel dat het nog veel te vroeg is om het in productie fatsoenlijk te gebruiken en te onderhouden. Daarbij is de leercurve zo hoog dat je meerdere maanden nodig hebt om er behendig in te worden. Dat moet je vervolgens vasthouden want als je dat niet doet begin je na een paar maanden weer van voor af aan.

Voor ons is Angular voorlopig de juiste keuze. Er is veel ervaring met dit framework wat het onderhoud eenvoudiger maakt. Daarnaast moet je niet vergeten dat deze projecten al meerdere jaren lopen en je dus niet zomaar even op iets anders overstapt. Als je dan ook nog bedenkt dat er meerdere applicaties zijn dan wil je niet 10 verschillende frontend frameworks hebben voor 10 verschillende applicaties.
Precies, als de meeste zeggen oude meuk en de ontwikkelaar van het project noemt het modern, dan heeft die ontwikkelaar toch onder een steen geleeft tijdens het ontwikkelen |:( .
Ik vind dat het hele probleem van de frontend frameworks. Als je er niet vrij intensief mee bezig bent dan gaat de ontwikkeling hard en er zijn maar weinig frameworks die het lang lijken vol te houden. En misschien is het mijn gevoel/ervaring maar ik heb het idee dat frontenders ook graag altijd met nieuwe shiny dingen werken en dat 'oudere' frameworks al snel als legacy gezien wordt.
React stamt uit 2013, Vue uit 2014. Denk dat de leeftijd van frameworks niet het probleem is, maar het “evalueren” ervan wel. React heeft een transformatie ondergaan van class based naar hooks, Vue idem met de composition API.

Angular heeft na AngularJS natuurlijk ook een transformatie ondergaan, maar daar lijkt het bij te blijven…
Je vergeet Knockout.js uit 2010 ;)
Fijn dat ze Angular gebruiken, op werk gebruiken we het ook, maar op school hebben ze het juist van het curriculum gehaald.
Nu het web component standaard geaccepteerd is en geïntegreerd in alle browsers is het juist een slecht idee om nog Angular te gebruiken.
Wat een gekke opmerking zonder onderbouwing.
Wat mis je eraan?

Tegenwoordig zitten de standaard lifecycles voor componenten al in de browsers en zijn er standaarden vastgelegd.
De frameworks zoals React en Angular maakte componenten mogelijk voordat het standaard er was. Zodoende is een gedeelte van die frameworks nu doodgewicht.
Hoe "CSS" style jij web componenten dynamisch (bijvoorbeeld een normale en darkmode view)?
Ik maak gebruik van constructed stylesheets voor de shadow DOM.

Zoals bijvoorbeeld het Lit framework met CSS template literals.
Je maakt een gekke opmerking omdat je een hele omvangrijke stelling betrekt (JS frameworks zijn dom, want de browser ondersteunt het al) en je het niet onderbouwt.

In je onderbouwing schrijf je vervolgens:
Ik maak gebruik van constructed stylesheets voor de shadow DOM.

Zoals bijvoorbeeld het Lit framework met CSS template literals.
En daarga je: Je gebruikt een framework omdat je op die manier geen boilerplate hoeft te schrijven.

De meerwaarde van een framework is, per definitie, dat het scenario's afhandeld en mogelijk maakt en je daarbij werk uithanden neemt.

Dat doe je zelf ook met een CSS framework. En die JS frameworks zoals, angular, bevatten ook CSS frameworks.

Als jij zelf je JS schrijft dan mis je ook de beveiligingsmaatregelen die frameworks zoals angular bv. afdwingen. Dus om die frameworks bij het grofvuil te zetten enkel omdat je zelf ook HTML en JS kan schrijven, dat is een cirkel beredenering. Want dat was al lang zo....

[Reactie gewijzigd door Rasael op 9 maart 2022 14:26]

Zo te merken hebben we miscommunicatie.
Je maakt een gekke opmerking omdat je een hele omvangrijke stelling betrekt (JS frameworks zijn dom, want de browser ondersteunt het al) en je het niet onderbouwt.
Ik stel niet dat JS frameworks dom zijn.
Daarnaast probeerde ik het voor je te onderbouwen, maar kennelijk had ik meer informatie moeten aanleveren.
Dat doe je zelf ook met een CSS framework. En die JS frameworks zoals, angular, bevatten ook CSS frameworks.
Lit is geen CSS framework. Lit is een nieuwe generatie framework voor het web component standaard.
En daarga je: Je gebruikt een framework omdat je op die manier geen boilerplate hoeft te schrijven.
Het één sluit het ander niet uit. Een boilerplate dient een ander doel.


Jaren geleden zijn frameworks zoals AngularJS en React ontstaan om web componenten mogelijk te maken terwijl de grote partijen nog aan het strugglen waren over een consensus.
Dat standaard is er echter tegenwoordig.

Dus wat een framework zoals React doet met lifecycles etc. zit tegenwoordig in alle browsers ingebakken.

[Reactie gewijzigd door THETCR op 9 maart 2022 15:21]

Je ontwijkt de kern van mijn feedback:

Je gebruikt zelf frameworks (of het nou CSS of web components is maakt niet uit) en je negeert daarbij dat de frameworks die je bekritiseerd ook veel meer bieden dan 'componentjes'.

Je 'onderbouwt' je voorkeur slechts op 1 aspect. Terwijl frameworks per definitie een compositie van heel veel verschillende aspecten zijn.
....is het juist een slecht idee om nog Angular te gebruiken.
Dus kort samengevat:
JS frameworks zijn dom
Kortom: Je hebt je eigen voorkeur. En op basis van die voorkeur zet je je nu af tegen bepaalde andere frameworks. Het staat helemaal los van de realiteit, van de aspecten die die frameworks voor je regelen en oplossen etc.. Je bent een emotioneel arugment aan het presenteren alsof het rationeel is.
Je gebruikt zelf frameworks (of het nou CSS of web components is maakt niet uit) en je negeert daarbij dat de frameworks die je bekritiseerd ook veel meer bieden dan 'componentjes'.
Ik probeerde je uit te leggen wat de differentiatie is tussen de nieuwe en oude generatie frameworks.

In de kern is het gewoon een opvolger.
Kortom: Je hebt je eigen voorkeur. En op basis van die voorkeur zet je je nu af tegen bepaalde andere frameworks. Het staat helemaal los van de realiteit, van de aspecten die die frameworks voor je regelen en oplossen etc.. Je bent een emotioneel arugment aan het presenteren alsof het rationeel is.
Deze interpretatie mag je er aan geven maar is niet de intentie van de comment. Dit is niet een kwestie van subjectiviteit.
Ik krijg hier eerder het idee van dat je het ervaart als een persoonlijke aanval, wat het niet is.
In de kern is het gewoon een opvolger.
Ik denk dat je oprecht zelf niet inziet dat je een emotioneel argument aan het maken bent.

Het is geen opvolger. Het is helemaal niet gegeven dat er een `opvolging` is. Dat neem jij aan omdat het in je belevingswereld past, en daarmee kan je het afzetten tegen de zogenaamd 'oude' frameworks. Zoals jij het framed.

Dat framen is een emotioneel argument. Je past hier geen rationele argumenten toe.
Als je dat we zou doen dan zou ik meer verwachten dan 'Webcomponents zijn de bom, de toekomst ligt niet meer bij JS frameworks, en als je die nog wel gebruikt is het slecht idee (en ben je dus dom)'.

Als ik het samenvat dan klikt het alsof jij overtuigd bent van een bepaalde aanpak. Maar dat het je niet lukt om te verwoorden waarom die technologie beter is dan andere aanpakken. En daarom frame je het in een `oud / nieuw` verhaal met een `opvolger`.

Beperk je nou eens tot de feiten en vertel waarom het bouwen van een project in met die aanpak sneller te realiseren is en beter onderhoudbaarder is dan met de andere aanpak. Dat zou een goed begin zijn.
Oh dat is apart? Angular is nog steeds een heel veel gebruikt framework voor grote applicaties. Hbeben ze het vervangen voor iets als react of is het gewoon helemaal weg?
Was React, Vue en Angular.

Redenering was dat Angular niet meer wordt gebruikt...
He? Snappen ze het wel? Angular heeft een half miljoen wekelijkse downloads. Oke toegegeven, react heeft er 15 miljoen, maar dat komt vaak doordat dat gebruikt wordt voor de ontwikkeling van componenten. Dingen die in losse repositories zitten.

Daarmee krijg je vanzelf gewoon heel veel downloads door CI/CD pipelines die iedere keer weer alles binnentrekken.
Goed, persoonlijk vindt ik het ook een achterlijke keuze. Gesprek met docent(en) levert ook bag weinig op.

[Reactie gewijzigd door yekurtal op 8 maart 2022 20:15]

Wees blij, het is ook gewoon oude meuk.. C wordt ook nog veel gebruikt, dat is toch geen argument.
Wel jammer dat je docenten het niet goed kunnen uitleggen.
Grappig bij mij op werk gebruiken we het voor een nieuwe project.

Zelf kom ik van Vue en ik wil niet meer terug, accepteer aub dat iedereen zijn eigen ding heeft...
Hier hebben we het ook gebruikt voor een nieuw project (1.5 jaar geleden). Ik ben er open in gegaan, maar ik werd er niet vrolijk van. Niemand van de NLers, enkel onze geoutsourcede medewerkers vonden het wel fijn, want die deden niet anders.
Vue heb ik geen ervaring mee, zo te horen ga ik dat maar zo houden ook! :) Top dat jij er happy mee bent, helemaal prima hoor. Fijn dat het een vooruitgang is, maar ik zou ook vooral verder blijven kijken, zeker als je nog student bent. Op de link van youri_ajax in de bovenste reacties is ook te zien dat Angular in populariteit aan het afnemen is.
Het is zeker beter dan een PDF invullen.
Super irritant zijn:

1. geen autosave. Je kunt soms opnieuw beginnen als er iets crashed.
2. je krijgt een alert maar na aanklikken kun je die later nergens meer terug lezen. Vooral irritant als er ergens anders in de site iets klapt.
3. Bij onderhoud de site silent read-only gooien en dan alleen een uuid als melding geven. Niet fijn. als je een uur bezig bent geweest een verslag in te vullen voor de kat zijn kont. Gooi dan de login in dicht.
4. Foutafhandeling in het front end. Ja ik heb de browser debug console opengehouden en er kwamen af en toe nog dingetjes voorbij.
5. een helpdesk die naar je op adres en os vraagt terwijl er duidelijk een server probleem is.

Ik heb tig bug reports ingediend die iets beter waren dan "doet het niet". Ik zie nog weinig verbetering.
Ik mag deze week weer bezig met een verslag. Benieuwd wat ik nu weer tegen kom.
System-to-system of S2S was onderdeel van het programma KEI. Google hier eens op zodat je leest op wat voor succesvol product men heeft voortgeborduurd. Binnenkort zal, als er weer kritische vragen gesteld worden, een zelfde verhaal geschreven kunnen worden over de projecten DWD, DT, E-koppelingen. Helaas gaat het bij IVO rechtspraak niet om een zo goed mogelijke ondersteuning van de juridische medewerkers en professionals maar om het implementeren van de juiste techniek, liefst zo complex mogelijk.
Waarom heeft de rechtspraak 20 platforms nodig om met iemand beveiligd te communiceren??

1 platform dat ingericht word voor ieders node werkt beter.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee