Hoe bijen ons het goede voorbeeld geven
De Britse Grace Jansen is geen Nederlandse in vermomming, maar een echte Brit. “Mijn opa gaf me mijn achternaam, maar ik spreek helaas de taal niet”, zegt ze tijdens Devoxx Belgium, een conferentie voor opensource-softwareontwikkeling. Het worden nog drukke weken voor Grace. Na deze conferentie gaat ze direct door naar Boekarest, om vervolgens naar de Marokkaanse Devoxx af te reizen.
Grace studeerde biologie aan de University of Exeter, maar kwam terecht bij IBM in Hursley, als developer advocate. “Mensen zijn vaak verbaasd als ze ontdekken dat ik geen traditionele computer science degree heb. Maar ik kwam wel al vroeg in aanraking met computers.”
Developer advocate
Inmiddels is Grace ruim twee jaar aan de slag bij IBM als developer advocate, een rol die ze vervult door ‘er te zijn voor de ontwikkelaars’. “Als developer advocate programmeer je ook zelf, en daarnaast maken wij demo-applicaties en testen we bepaalde integraties tussen verschillende producten. We maken handleidingen en tutorials voor de verschillende opensourceproducten die we gebruiken, en geven presentaties. Daarnaast luisteren we naar de ontwikkelaars om te horen wat ze missen en hoe we hun leven makkelijker kunnen maken.” Op dit moment is Grace vooral druk met Reactive Systems, een manier om applicaties meer reactief, responsief, elastisch en veerkrachtig te maken.
Reactive programming
Op Devoxx Belgium gaf Grace een aantal talks, onder andere over Reactive application architecture. In haar voordracht gebruikte ze een analogie uit de biologie, namelijk hoe bijen samenleven en functioneren. “Ik vergelijk gedragingen van bijen met hoe we graag zouden zien dat applicaties functioneren en tegemoetkomen aan de eisen en verwachtingen van gebruikers.”
“In mijn talk heb ik het over drie verschillende scenario's die zijn te vergelijken met wat we software willen laten doen. Ten eerste zoeken bijen voedsel. Een bij vindt bijvoorbeeld veel voedsel, en de werkster communiceert vervolgens de locatie van het voedsel naar de bijen in het nest door te dansen. Met slechts een minimale hoeveelheid informatie weten andere bijen vervolgens waar ze het voedsel moeten vinden. "Dat willen we ook bij applicaties: als een belangrijk onderdeel het begeeft, moet de rest door blijven draaien door de verschillende componenten van onze applicaties helemaal te ontkoppelen"
Ze reageren daar zo snel mogelijk op, want voor je het weet is het voedsel weer weg. We willen zulke responsiviteit ook bij onze apps zien.”
“Ten tweede: wat gebeurt er als de koningin doodgaat? Zij is verantwoordelijk voor het produceren van nieuwe bijen, en zonder koningin sterft het hele nest uit. Als ze doodgaat, volgen bepaalde bijen een instructieset op om een nieuwe koningin op te laten groeien. Dit moet binnen dertig dagen gebeuren, anders is het einde verhaal voor het volk. Het bijenvolk zelf leeft tijdens haar afwezigheid gewoon door, en iedere bij doet zijn ding. Ze zijn dus goed bestand tegen potentiële fouten en problemen. Dat willen we ook bij applicaties: als een belangrijk onderdeel het begeeft, moet de rest door blijven draaien door de verschillende componenten van onze applicaties helemaal te ontkoppelen.”
“Als laatste benoem ik in de presentatie het gedrag dat bijen vertonen als ze hun bijenkorf beschermen. Er zijn al beschermbijen, maar die maken slechts 11 procent uit van de hele populatie. Stel, er komt een beer om de honing te stelen. Dan moeten heel veel andere bijen ook die rol van beschermer op zich nemen. In die zin zijn ze als microservices: vergelijkbare componenten met specifieke rollen of verantwoordelijkheden die samenwerken om een bijenkorf tot een succes te maken.”
“Al met al zijn bijen heel elastisch in de rollen die ze uitvoeren en de verantwoordelijkheden die ze hebben. We willen net als de bijen heel flexibele microservices die zo elastisch en dynamisch mogelijk kunnen reageren op verschillende loads van de systemen. En daarmee kom ik op de drie pijlers waar het Reactive Manifesto op is gebouwd: responsiveness, elasticity en resiliency.”
In het vervolg van haar verhaal komt Grace op de tools waarmee deze Reactive-systemen worden gebouwd, zoals door middel van domain driven design, bulk heading en sharding. Om dit te bereiken, zijn er tal van opensource-frameworks beschikbaar voor ontwikkelaars, zoals als Akka, Lagom, Play en recentelijk Vert.x.
O'Reilly Report
Samen met Peter Gollmar schreef Grace ook een rapport, getiteld Reactive Systems Explained, als introductie op Reactive. “We willen vooral dat lezers begrijpen wat de redenen kunnen zijn om Reactive te gebruiken. Dit is een licht en makkelijk te gebruiken rapport, met voldoende informatie om zo'n belangrijke beslissing te kunnen maken om te switchen naar een andere architectuur, of in ieder geval om ontwikkelaars te inspireren om meer onderzoek te doen.”
Veel mensen hebben wellicht gehoord van Reactive Programming, en hoewel het een nuttig instrument is voor internal logic binnen microservices zorgt het er op zichzelf staand niet voor dat een hele applicatie reactive wordt. We stippen dit in het boek aan en leggen uit waarom dit een nuttig instrument is, maar niet de enige oplossing voor Reactive Systems. Een applicatie is immers geen individuele microservice, maar opgebouwd uit verschillende microservices en componenten. “Je moet erover nadenken op systeemniveau en niet alleen aan microservices denken, maar ook aan alle andere componenten. Hoe verloopt communicatie tussen die systemen, is er synchroniciteit tussen de componenten, zijn ze verbonden, zijn ze gescheiden? Als we daar niet aan denken op systeemniveau, is het bijna gegarandeerd zo dat ze elders in het proces iets blokkeren. Dan wordt het hele reactievermogen van je applicaties minder.”
Meisjes en STEM
Een andere voordracht die Grace gaf bij Devoxx was een lightning talk over vrouwen in de tech-sector, en "Toen realiseerde ik me dat ik veel meer plezier beleefde aan coden dan aan biologie"
manieren om meer diversificatie te bewerkstelligen. Zelf geeft ze cursussen om jonge vrouwelijke leerlingen en studenten te bewegen hun passie in technologie en STEM te volgen. “Ik hoop dat het publiek dat meeneemt en zelf ook toepast om het verschil te maken”, zegt Grace.
“Mijn school bood helaas geen programmeren als vak aan, anders was ik er eerder mee aan de slag gegaan”. Tijdens haar studie biologie, waar ze veel plezier in had, draaide ze al vrij snel simulaties met Python en R. “Voor mijn dissertatie simuleerde ik vluchten rond de wereld. Ik keek naar de verspreiding van virussen door het netwerk van vliegtuigen en onderzocht of we quarantaines of vaccinaties konden inzetten om dat te voorkomen. Toen realiseerde ik me dat ik veel meer plezier beleefde aan coden dan aan biologie. Gelukkig accepteert IBM een heel brede en diverse groep net afgestudeerden. Nadat ik bij IBM aan de slag ging, sprong ik direct in een wereld van object oriented JAVA. Ik kreeg met een heel steile leercurve te maken, maar dat mocht de pret niet drukken.”
Om meisjes direct kennis te laten maken met technologie, is het volgens Grace belangrijk om te laten zien dat het niet heel moeilijk is om iets te doen in je omgeving. Als voorbeeld noemt ze een grote competitie die IBM in samenwerking met Disney in het Verenigd Koninkrijk organiseerde om meisjes tussen 11 en 14 jaar te stimuleren bezig te gaan met kunstmatige intelligentie en zo dagelijkse problemen op te lossen. “We kregen meer dan tweehonderd aanmeldingen, wat al fantastisch was, en de meisjes die de halve finale bereikten, kregen toegang tot de Watson api’s om hun ideeën te ontwikkelen.” Behalve aan zo'n groot evenement werkt men bij IBM ook aan kleinschaliger initiatieven. Een voorbeeld is het machine learning for kids-initiatief waarbij een combinatie van Scratch en Watson wordt gebruikt om kunstmatige intelligentie- en machine-learning-concepten te leren aan kinderen, zoals het zelf laten bouwen van een soort Harry Potter Sorting Hat.
Bij een van de projecten waar Grace heel trots op is, hadden de meisjes waar ze mentor van was in de Disney-wedstrijd het idee om een bril te maken voor blinden en slechtzienden. In die bril zaten verschillende camera's om objecten te herkennen en ze vervolgens in spraak door te geven aan de drager van de bril. De meisjes wisten binnen slechts zes weken een werkende versie te bouwen, door een 3D-geprinte bril te combineren met Watson-diensten.
We Are Tech Women
Grace is onlangs ook terechtgekomen op de shortlist voor de We Are Tech Women-award: “Ik sta nu op de shortlist van 200 vrouwen. Binnen een paar weken blijven er daar 100 van over die kans maken op de award, maar op de shortlist staan is op zich al pretty exciting.”