Moet je als jurist leren programmeren? #legaltechtuesday

Code as law. Met dat mantra is de toon gezet: steeds vaker speelt software en online dienstverlening een steeds belangrijker rol in de juridische praktijk. Software maakt beslissingen, software selecteert of wijst af. Of functioneert anderszins op onnavolgbare wijze. Ga er maar aan staan met een juridische analyse of claim: de mindset die hoort bij software en ICT ontwerpen, is een hele andere dan die hoort bij een aansprakelijkheidsstelling formuleren of een dagvaarding opstellen. Vandaar dat je steeds vaker leest dat advocaten en juristen moeten leren programmeren. Maar is dat wel echt zo nuttig?

Vooropgesteld: programmeren is gewoon leuk. Het is puzzelen, in logische volgorde instructies uitwerken en rekening houden met randgevallen waar niemand aan gedacht heeft. Wie wel eens een Lego Mindstorms robot heeft ingesteld, begrijpt meteen wat ik bedoel. (Zoekt u nog een Sint- of Kerstcadeau voor uw kind of neefje/nichtje?)

En het mooie is, programmeren lijkt ergens wel op contracteren of juridisch puzzelen. Want ook daar moeten logische stappen genomen worden, hindernissen geëlimineerd, randzaken ingeperkt en risico’s afgedekt. Dat het bij programmeren gaat om het risico dat een temperatuursensor 4000 graden aangeeft en bij contracteren dat een opdrachtnemer ziek wordt, dat is een inhoudelijk detail.

Toch zijn er ook wel verschillen. Juristen leren denken binnen het redelijke en billijke (art. 6:2 en 6:248 BW, bijvoorbeeld). Als een uitkomst al te bizar is, dan weet iedere jurist dat deze kan worden bijgesteld. Een boeteclausule die op zes ton uitkomt voor een overtreding van een half uur, dat wordt gegarandeerd gematigd. Bij de menselijke rechter inderdaad, want het contract komt op zes ton. En als je dit in software doet, dan komt daar ook gewoon spijkerhard zes ton uit. Computers zijn niet redelijk, zij rekenen alleen maar.

Deze verschillen maken dat het best interessant kan lijken om als jurist een cursus programmeren te doen. Als jurist en programmeur kan ik u vertellen: dat is ook zeker de moeite waard, alleen moet u wel vooraf bedenken wat u zou willen kunnen. Je hebt namelijk programmeren en programmeren: gaat het om het begrijpen van de basics, wilt u doorgronden hoe algoritmes (stappenplannen) opgebouwd worden en welke valkuilen daarbij komen kijken, wilt u een juridische dienst of app opzetten of iets anders? Dit zijn namelijk zeer verschillende cursussen.

Voor mij staat voorop dat de skill van het programmeren zelf niet zo heel belangrijk is. Programmeren is namelijk geen handeling op zich, zoals bijvoorbeeld schilderen of fotograferen. Het is een activiteit binnen een groter kader, namelijk applicatie- of dienstontwikkeling. Onderhoud en meegaan met nieuwe ontwikkelingen zijn essentieel. Tenzij je het dus houdt bij Mindstorms robots. Maar programmeren is niet iets dat je leert en daarna altijd onder je riem hebt; je moet het altijd bijhouden en opnieuw toepassen.

Wat je wél kunt leren van een korte cursus, zijn algemene skills en vaardigheden uit dit digitale domein. Een specifieke skill is bijvoorbeeld hoe je een groot algemeen probleem opdeelt in kleine blokjes, en daarna ieder deelprobleem oplost op een manier dat het aansluit bij het vorige en het volgende deelprobleem. Ook helpt programmeren u data beter te begrijpen – een waardevolle skill als u met zogenaamde artificial intelligence aan de slag gaat. Want u kunt wel om een verkeerde komma heen lezen in een dossier, uw robot paralegal slaat onverbiddelijk op hol van zo’n onnozele fout. Ook leert u door programmeren meer projectmatig denken, want software ontwerpen is te groot om even snel op een middag te doen.

Een alternatief dat steeds meer aan populariteit wint, is het zogeheten no-code programmeren. Hierbij hoeft de programmeur geen details van programmeertalen te kennen, maar heeft zhij een visuele interface waarmee dingen aan elkaar te knopen zijn. De computer heeft de benodigde programmeercode op de achtergrond paraat, maar valt u daar niet mee lastig.

Een heel simpel voorbeeld? Probeert u dan IFTTT (if this then dat) eens, een dienst waarmee u van alles aan elkaar kunt knopen. Van agenda’s tot e-mail tot Onenote of zelfs uw wasmachine, als die dat ondersteunt. Dat vereist enig logisch nadenken over wat u precies wilt, en vooral: omzetten naar specifieke, concrete instructies. Zo zou ik op warme dagen graag willen dat mijn zonwering op tijd dicht gaat. Vertalen naar instructies: Als de temperatuur om 13uur boven de 26 graden is, doe dan de zonwering omlaag. Tenzij in mijn agenda “afwezig” staat. Tenzij het regent. Tenzij … kijk, daar voelt u al een programmeur in uzelf omhoog komen.

Overweegt u programmeerervaring op te doen? Vraag u dan eerst af wat u eigenlijk zou willen bereiken. Koop een Mindstorms robot, puzzel met een no-code dienst zoals IFTTT en ga eens puzzelen wat uw eigen robot paralegal zou moeten doen. En beslis daarna.

Arnoud

11 reacties

  1. Wetgevers zouden moeten kunnen programmeren, om wat beter en logisch consistenter hun doelstellingen in regels te kunnen vertalen, en om niet te vergeten dat als je inconsistenties in je systeem toestaat, het gehele bouwwerk in elkaar stort.

    Rechters zijn dan interpreterrs, die de code toepassen, en advocaten hackers, die proberen de code dat te laten doen wij zij of hun clienten het liefst zien gebeuren.

    Redelijkheid en billijkheid is een hele vage norm en persoonlijke norm, die kan leidden tot willekeur en rechtsongelijkheid in de toepassing van regels — het is de nooduitgang, dat begrijp ik — maar liever zie ik dat we streven naar een machtsevenwicht bij het opstellen van contracten, zodat extreme boeteclausules gewoon niet meer voorkomen, omdat niemand vrijwillig met zoiets instemt.

    No-code programmeren? Ik geloof er niet in. Het is net zoiets als natuurkunde zonder formules. Om een bepaald kennisdomein te kunnen beheersen, moet je daarvan een toereikend model hebben dat je kunt manipuleren; als het kennisdomein complex is, kun je die complexiteit maar ten dele beperken, het streven is zo eenvoudig mogelijk, maar niet eenvoudiger. Ik zit al 30 jaar in de IT, en zie elk jaar die belofte voorbijkomen dat het zonder code kan, en elke keer weer blijkt dat het leuk werkt voor de demo-toepassing, maar wee je gebeente als je met iets meer op de proppen komt — en elk serieus stukje code vereist meer. (En het bijelkaar klikken van logische componenten op een grafische interface is een stuk minder snel dan gewoon even wat code intikken op een toetsenbord, al is misschien de leercurve voor dat laatste wat langer.)

  2. Erg interessante vraag waar ik al een tijdje over zat te denken! Zal eens beginnen met m’n slimme apparaten d.m.v. IFTTT te verbinden. Al lijkt het me ook mooi een scriptje te kunnen schrijven i.d.z.v. als: gegevens niet worden ge-update en de bewaringstermijn is verstreken, dan: verwijder deze van de server. Vervolgens nog even deze verwerking automatiseren zodat dit via het register kan worden toegepast. Geweldig om zoiets te kunnen maken!

  3. “If this then that” is een prima voorbeeld, Arnoud… maar dan niet vergeten dat er vaak ook nog een “else then” bijhoort… Ik zag laatst ook een contract voorbij komen waar heel goed beschreven stond wat er moest gebeuren als er aan de voorwaardes voldaan werd, maar dan weer helemaal niet wat er moest gebeuren als er niet aan de voorwaarden voldaan werd… Oh, en natuurlijk niet vergeten om je Exceptions netjes af te handelen… Anders kan je contract gelijk de Garbage Collector in… 😉

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.