Met jou discussieren is als een bijzondere, multidisciplinaire sportwedstrijd waarbij jij de sport kiest, om na (of tijdens) mijn reactie op jouw eerste zet, snel naar een andere veld te rennen en te zeggen dat het toch deze sport was. Jij deelt een stoot uit en als ik probeer te blocken en me voorbereid op een linkse directe spurt jij naar het dartboard en gooit snel drie pijlen. Tegen de tijd dat mijn tweede pijltje in de lucht is ben jij je al aan het omkleden omdat tennis nou eenmaal een andere outfit verlangt. En waar wacht ik eigenlijk op? Je zucht luid. Ik stop met darten, want daar is jouw aandacht allang niet meer, en pak snel een racket om je opslag te retourneren. Nog maar net op tijd. Het derde pijltje nog in mijn linkerhand. Het bitje nog in de mond. Jouw hoofd is al op het basketbalveld. Of bij het schaakbord. Tenminste: als ik een goede return sla. Als ik in het net mep of de bal uitsla blijven we nog even bij tennis. En bekijken we mijn fout in slowmotion op de grote monitor.
Toen Marco van Basten net bondscoach was geworden deed hij iets waar de pers nogal van in de war raakte. Ik weet niet meer wat. Doet er ook niet toe. Een of andere journalist wierp hem tenslotte min of meer hopeloos voor de voeten dat “dat toch niet consequent was?!”. Waarop van Basten kalm en geamuseerd zei: “wie heeft er dan gezegd dat ik consequent moet zijn?”
– exit journalist.
Als ik je vraag of we alsjeblieft een sport kunnen kiezen en daar een tijdje vriendschappelijk mee bezig kunnen zijn kijk je me verwonderd en een beetje bozig aan. “We gingen toch sporten? En dit zijn toch allemaal sporten? Wat is je probleem?”
“Ja, dit zijn allemaal sporten, maar er is niet een spel dat ‘alle sporten’ heet, met bijbehorende en uitgebalanceerde puntentelling en regel-set. In elk geval niet een waar ik van op de hoogte ben. Misschien in jouw hoofd”. Jouw hoofd schudt heftig. “waarom zou er een puntentelling moeten zijn? Wil je dan zo graag van me winnen?” (winnen komt met een verleidelijk glimlachje). “het was toch vriendschappelijk” (vriendschapelijk als iets verachtelijks). “volgens mij wil jij juist winnen” probeer ik, “waarom gaan we anders steeds een andere sport doen op het moment dat ik misschien een punt ga scoren?”
“nee, nee, nee”. Dat heb ik helemaal verkeerd begrepen, blijkt. En bovendien: “dat een-sport-principe van jou: dat hebben we toch net zo goed niet afgesproken?” Jij wordt Marco van Basten. En ik de journalist.
Ik loop stage bij een softwarebedrijf. Ze gaven me een stageopdracht waarin ik dreig te verzuipen. Ik lees me een slag in de rondte over allerlei technieken die een rol spelen, of misschien wel niet, wie weet. Ik hou me vast aan de realisatie dat er een hoop te denken valt over softwareontwikkeling, ook buiten het ambachtelijke welke taal ik nog onvoldoende machtig ben. Een van mijn favoriete stukken die ik las ging over de seperation of concerns. In het kader van programmeren, maar breder toepasbaar. Het gaat over het idee dat er een heleboel aspecten zijn aan een door software op te lossen probleem. Veiligheid, bijvoorbeeld. Gebruiksgemak. Efficientie en schoonheid. Effectiviteit. Schaalbaarheid, herbruikbaarheid. Enz., enz. Seperation of concerns is de realisatie dat het in samenhang behandelen van al die aspecten geen van die aspecten recht doet. Intelligent nadenken over een groot probleem vereist, bij vlagen, het doelbewust negeren van alle andere aspecten dan de ene waarop je je op dat moment richt. In de overtuiging dat er delen van dat aspect zijn die onoplosbaar zijn als je alle andere aspecten in beeld houdt. Volledigheid blokkeert oplosbaarheid. Doe een ding, doe het goed, en doe dat een ander ding. En doe ook dat goed. En keer dan wellicht terug naar het eerste ding. Maar doe niet beide dingen in een keer. Serieel ipv parrallel.
Er is zoiets als een software-architect. Dat is meestal iemand die vroeger programmeur was en zich nu heeft opgewerkt en meedenkt over de inrichting van het project, maar zelf het toetsenbord niet meer vuil hoeft te maken. Daar zijn de programmeurs voor. De software-architecten staan hoger op de abstratie-ladder enerzijds, en anderzijds mogen ze (weer) dingen zeggen als “en dan moet je daar even inloggen” (wat voor een programmeur een heleboel kleine, technische stappen inhoudt).
Goede softwarearchitecten begrijpen (omdat ze waarschijnlijk zelf ook geprogrammeerd hebben) dat programmeurs zijn veroordeeld tot ge-seperate concerns, puur omdat programmeurs maar twee handen (en een toetsenbord) hebben . Je kan maar met een ding tegelijk bezig zijn. Of je rent je rot tussen onafgemaakte stukjes. Minder goede softwarearchitecten denken dat programmeurs mee kunnen in abstracte vergezichten met vrije associatieve oefeningen, zonder te blijven hangen achter allerlei haakjes waarvan ze weten dat die er gaan zitten (slechte programmeurs denken dat ze dat ook moeten, overigens).
Misschien is de sport-metafoor onduidelijk (en bovendien: sportmetaforen… hoe streotypisch wil je het hebben?). Misschien ben jij een softwarearchitect die door een groot project heenraast, overal dingen aanstippend die moeten gebeuren of aandacht behoeven, en ik de overwerkte programmeur die er, met bezweet voorhoofd en rondslingeerende paperassen achteraan hobbelt, in een poging je uit te leggen dat als we dat ene ding fixen dat dat dan in deze versie van dat enestukje software wel voor een paar problemen zou kunnen zorgen die we dan daar weer tegen zullen komen, zeker als we de klant nu dit beloven, wat dus echt niet kan, enz., enz. Jij hoort me niet, want jij zit allang stralend te vertellen over heel iets anders waarom je met de klant hebt zitten brainstormen wat we kunnen doen op dat andere project, je weet wel, dat waarbij we toen dat ene ding hadden gedaan waar we eerder zo mee hadden geworsteld hahaha toen het bijna allemaal misging, en trouwens, weet je wie ik gister tegenkwam?
– exit programmeur