Waarom Scrum niet per se Agile is.

Als freelance software developer zie ik veel bedrijven die Scrum gebruiken en die agile zijn of denken te zijn. Maar Scrum is niet hetzelfde als “agile”. Je bent niet automatisch agile als je een Scrum stickertje op de voordeur plakt.

“Agile” betekent “wendbaar”. Een botsautootje is wendbaar: het kan ineens om z’n as draaien en de andere kant op gaan. Een veerpont is niet wendbaar: die kan alleen recht naar de overkant varen en weer terug. Toen ik studeerde en dagelijks op de pont over het IJ stond, zag ik daar soms grote schepen voorbij komen die door twee of drie sleepboten door het IJ werden geloodst. Mannetjes met portofoons aan dek om alles te coördineren. Als het sleepboten van Goedkoop waren, dan waren er geen portofoons: ik denk dat de stuurlui op die boten zo goed op elkaar waren ingespeeld dat ze het ook zonder overleg konden. Een zwerm spreeuwen is ook wendbaar. Soms zie je ze uit een boom opvliegen, ze vliegen een kant op, en als door magie vliegen ze ineens allemaal een andere kant op, alsof  ze elkaar aan een touwtje hebben. Optimaal agile.

Wat nodig is om agile te zijn is perfecte coördinatie. Die coördinatie kun je op verschillende manieren bewerkstelligen. Je kunt communiceren, praten, schreeuwen. Als je bij de zesde klasse zaterdagamateur voetballers gaat kijken, dan hoor je dat die maar blijven roepen naar elkaar om te zorgen dat ze als team een beetje samenwerken. Agile door permanente communicatie. Ga je bij het eerste van Ajax kijken, dan hoor je ze niet schreeuwen. Die spelers zijn goed ingespeeld en kunnen het spel zo goed lezen dat ze van te voren al weten wat de anderen gaan doen. Zoals ijshockeyer Wayne Gretzky opmerkte in Harvard Business Review: “I skate to where the puck is going to be”. Hij leest het spel, en weet dan waar de puck over een paar seconden zal zijn, en schaatst daar vast naar toe. Dat kan ‘ie alleen doen als ‘ie zeker weet dat de rest van zijn team het spel ook zo goed leest, en dat de puck inderdaad komt. En alleen als, in het geval dat de puck toch de andere kant op gaat, Gretzky in één beweging zwenkt en klaar staat voor de rebound als zijn teamgenoot op doel schiet. Allemaal zonder een woord te wisselen, helemaal vanzelf, als een zwerm spreeuwen.

Je kunt natuurlijk ook Scrum toepassen op het sportveld. Bij de start van je rugby wedstrijd hou je een “Start of Sprint” meeting, en je plant wie de bal gaat trappen, wie hem gaat vangen, wie waar naar toe loopt en wie dan gaat scoren. Je moet snel scoren, want tijdens jouw meeting heeft de tegenpartij al twee keer gescoord. In de breakdown meeting ga je vaststellen of de bal hoog of laag getrapt moet worden, en over links of over rechts. De tegenpartij scoort ondertussen weer. Dat is een grapje, maar ook weer niet helemaal. Ik werkte ooit een poosje bij een organisatie waar Scrum zeer serieus werd genomen. Iedereen was naar een training geweest, er was een hele tijd een Scrum coach geweest, het management had een heidag over agile gehad en overal hingen agile spreuken. Het boekje werd nauwgezet gevolgd. Iedere ochtend een kwartier “standup meeting”, inclusief “mood check”. Aan het begin van de sprint een “Start of Sprint” meeting waarin gezamenlijk werd vastgesteld wat de features in de volgende release van de software moesten zijn, en de dag erna een “breakdown meeting” om de user stories op te breken in sub-tasks. Een week later een “refinement meeting”, en aan het eind van de sprint een demo gevolgd door een “End of Sprint” meeting. In één van die meetings werd ook nog met “scrum poker” ingeschat hoe complex de features waren. Ik herinner me een breakdown meeting. We waren met acht mensen, er waren vijf features die de komende drie weken gemaakt moesten worden. Vijf user stories dus. Per user story werd langdurig besproken wat de story inhield. Vervolgens werd in een verhitte discussie vastgesteld welke sub-taken nodig waren. Twee features werden opgedeeld in wel twaalf subtaken omdat er heel veel gerefactord moest worden. Het ging om wijzigingen in bestaande software, ik kende die software niet, ik was net nieuw in het project, dus ik volgde geïnteresseerd hoe er gesubtaakt werd. De meeting duurde drieënhalf uur. 28 mens-uur. Ik was na afloop uitgeput en half in slaap.

De volgende ochtend ging ik aan de slag met de eerste van twaalf subtaken, en toen ik de code ‘ns goed bekeken had, vond ik ze helemaal niet zo slecht. Sterker nog, de code was precies zoals ik het zelf ook gemaakt zou hebben als ik het van scratch zou moeten bouwen. Dus in overleg met een teamgenoot trok ik me niks aan van de subtaken en maakte in een middagje de benodigde code. Al pair programmend kwamen we samen via unit tests en een klein beetje extra code en wat refactoring tot een mooie oplossing. Toen echter een ander teamlid de code ging reviewen, kreeg ik de wind van voren.

“Je hebt het niet gemaakt zoals we het in subtaken hadden opgedeeld!”

“Nee, we hebben het in een fractie van de tijd gemaakt omdat we vonden dat de bestaande code eigenlijk al wel heel goed was”.

“Maar je hebt het niet gedaan zoals we hadden afgesproken!”

“Nee want toen wist ik nog niet dat de bestaande code best wel ok was”.

“Maar we volgen Scrum hier en dan moet je de code maken zoals het in de subtaken is gepland!”

“Het is goed met je”.

In één van de beste teams waarin ik heb gewerkt hadden we nooit meetings. We hadden een feature list, en iedereen die ergens klaar mee was pakte een nieuwe feature op en werkte verder. Soms zaten er twee of drie programmeurs achter één scherm, voor stukjes code waarvan veel andere code afhankelijk was, of code die heel interessant was. Meestal hoefden we alleen maar te weten waar een ander mee bezig was om erop te vertrouwen dat die ander het ongeveer zo zou maken als dat je het zelf ook zou doen. Daarvoor moet je elkaar goed kennen, en moet je dezelfde standaarden en best practices hanteren. Maar bovenal, je moet elkaar vertrouwen. Je moet er een blind vertrouwen in hebben dat de ander daarnaartoe programmeert waar de puck zal zijn.

Veel organisaties vinden hun teams al super wendbaar als ze in staat zijn iedere drie weken na afloop van een sprint een nieuwe build van de software te produceren en in gebruik te nemen. Voor veel organisaties is dat genoeg. Sommige willen meer.

Om echt agile te zijn, zijn twee dingen nodig: je moet direct contact hebben met de klant c.q. gebruiker c.q. product manager, en je moet in staat zijn iedere nieuwe feature in je software onmiddellijk te deployen en in gebruik te nemen. Het eerste bereik je door de klant/gebruiker/product manager in je team op te nemen. Die moet meepraten en meekijken en meetesten. Anders weet je niet wat je moet maken. Het tweede bereik je met een continuous build omgeving waarin iedere feature die gemerged wordt naar de develop branch automatisch via de diverse testomgevingen naar deployment gaat.

De meeste organisaties die serieus software maken hebben hun (quasi-) continous build omgeving goed voor elkaar. Op het teamwork is echter altijd wel wat aan te merken. Vaak zit de gebruiker van de software niet aan tafel. Meestal worden Scrum trainingen gevolgd en boeken gekocht en wordt het team met zoveel bureaucratie belast dat Scrum eerder het doel dan het middel lijkt te zijn. En dat is heel jammer.

Ik pleit ervoor dat je in software ontwikkelteams alleen kijkt naar de dynamiek in het team en de aanwezige kennis. Als je de juiste mensen bij elkaar zet, ze stimuleert om iets moois te maken en ze helpt met wat ze nodig hebben, dan krijg je altijd een goed product.

De Mythen rond CO2

pellets

Over CO2 wordt veel gezegd en geschreven, veel onzin, soms ook ware dingen. Wat me van de week stoorde is de discussie over “biomassa”. Met een foto erbij van houtpellets die dan verbrand moeten worden in een centrale. Houtpellets zijn goed voor het klimaat omdat bomen CO2 opnemen uit de lucht, heet het dan. Dat is ook zo. Als je een bos twintig jaar laat groeien en dan omzet in houtpellets, heeft het bos twintig jaar CO2 omgezet in zuurstof en hout. Bij het verbranden van de pellets komt die CO2 dan weer vrij, in dezelfde hoeveelheid als dat je steenkool zou verbranden. Dat is een kringloop van CO2 en zuurstof. Het is ook een denkfout.

Want stel je voor: bij de Centrale Hemweg in Amsterdam liggen twee bergen: een berg houtpellets, en een berg steenkool. Ze vertegenwoordigen evenveel energie. Dus welke je verbrandt maakt voor de energievoorziening niet uit, en voor de CO2 in de lucht ook niet. De houtpellets hebben hun werk voor het opnemen van CO2 gedaan, dus mogen we nu vrijelijk dingen verbranden totdat we dezelfde hoeveelheid CO2 weer hebben uitgestoten. Of we dat doen met de berg houtpellets of met de berg steenkool maakt niet uit: zolang we maar niet meer verbranden dan wat de berg houtpellets aan energie vertegenwoordigt. We kunnen de pellets verbranden en de steenkool gebruiken voor het ophogen van een snelweg, of de kolen verbranden en met de pellets de weg ophogen: voor de geproduceerde energie en voor de toename van de CO2 maakt het echt niet uit. Maar nu.

De pellets hebben twintig jaar CO2 opgenomen. Toen zijn de bomen gekapt en verscheept naar Nederland. Het voormalig bos is nu kale grond, die geen CO2 meer opneemt. Er groeit in twintig jaar wel weer nieuw bos, dat na twintig jaar ook weer CO2 opneemt. Als je uitrekent hoeveel CO2 het opneemt, vind je dat het ongeveer de helft is van een bos dat er twintig jaar gewoon blijft staan. Met andere woorden, het produceren van pellets leidt niet tot meer opname van CO2 uit de lucht, maar leidt tot halvering van opname op dat perceel bosgrond. Het verbranden van biomassa (houtsnippers en -pellets) leidt tot minder CO2 opname, niet meer. En dan dit.

De pellets komen deels uit Amerika. Met schepen die zware stookolie stoken. Zware stookolie is ongeveer het meest vervuilende wat je kunt verbranden, veel erger dan de smerigste steenkool. Pellets geven dus behalve een halvering van de CO2 opname ook extra uitstoot uit smerige uitlaatpijpen op zeeschepen. De CO2 opname die wel plaatsvindt, vind in Amerika plaats. De uitstoot vindt plaats in Europa. Nu begrijp ik waarom meneer Trump niks wil doen aan het klimaat: wij subsidiëren de vermindering van de uitstoot van  CO2 in zijn land met houtpellets die bij ons hun CO2 uitstoten. Prima deal voor Trump, lijkt me. En wij subsidiëren verder om de gevolgen van deze deal weer teniet te doen. Tot voor kort dan, want we stoppen met het subsidiëren van deze onzin. Zoals de overheid gestopt is met het subsidiëren van diesel auto’s omdat ze schoner zouden zijn. Oh, dat bleek toch niet het geval. We hadden even niet nagedacht.

Wat we op initiatief van het kabinet niet doen is meer aardgas gebruiken. Aardgas is schoon. Aardgas bevat meer waterstof en minder koolstof dan steenkool of hout, dus produceert minder CO2. De helft minder ongeveer. Aardgas lijkt op waterstof: als je aardgas verbrandt is het alsof je voor de helft waterstof verbrandt en voor de helft hout of kolen. Waarom de overheid wil dat we moeten stoppen met aardgas is me een compleet raadsel. Of eigenlijk ook niet. We stoppen met aardgas omdat we de Groningers niet in een groot gat in de grond willen laten verdwijnen, of althans, dat we niet al hun huizen willen laten instorten. Het kabinet heeft vervolgens wat dingen door elkaar gehaald: dat “van het gas af” vanwege de Groningers hetzelfde is als “van het gas af” vanwege het klimaat. Je zou verwachten dat ministers slimmer zijn dan dat.

Wat we moeten doen is het volgende.

We planten zoveel mogelijk bos aan, overal op de wereld. We kappen geen bomen, want een gekapte boom neemt geen CO2 meer op. Hoe meer bomen, hoe meer CO2 opname.

We verbranden de brandstoffen die de minste CO2 in de lucht stoppen. Aardgas dus. Nee, geen waterstof, want dat moet je in een fabriek maken uit aardgas, of steenkool, of kernenergie. Dat lost niks op. Wel als je waterstof maakt met zonne-energie of windenergie, maar aangezien dat bij elkaar maar voor 8% bijdraagt aan de energievoorziening zet dat geen zoden aan de dijk voor waterstof als “schone brandstof”. Ook niet voor elektrisch rijden overigens.

Nog beter: we gaan minder energie verbruiken. Bijvoorbeeld, door allemaal naast ons werk te gaan wonen of naast ons huis te gaan werken. Mijn opa ging op de fiets naar z’n werk. Mijn vader ging in het begin ook op de fiets naar z’n werk. Toen ‘ie een nieuwe baan kreeg aan de andere kant van het land, verhuisden we mee naar een huis dichtbij z’n werk. Moest wel, want veel snelwegen waren er toen nog niet. Dus, al die Amsterdammers die in Utrecht werken: zoek werk in Amsterdam. En al die Utrechters die in Amsterdam werken: zoek werk in Utrecht. Ruil van baan.

Het verminderen of stoppen van de opwarming van het klimaat is helemaal niet zo moeilijk. Als je maar even nadenkt.

De nieuwe privacy van de keizer

Als mijn oma nog geleefd zou hebben (ze zou nu 122 zijn geweest) zou ze zeggen “als de Duitsers in 1940 Facebook hadden gehad dan waren er op 11 mei 1940 geen Joden meer geweest in Nederland”.

In een discussie over privacy zeggen mensen “ik heb niks te verbergen”. Nee, Joodse mensen 80 jaar geleden dachten ook dat ze niks te verbergen hadden. Liberale Iraniërs hadden niks te verbergen. Totdat Khomeiny. Maar voor de rest, wat heb je te verbergen? Ik scande in 2010 in een IT project mijn bonuskaart in een app, en even later zegt een collega “jij hebt een kat?” Ehm, hoezo?  “Je hebt gisteren bij Albert Heijn twee blikjes Kitekat gekocht”. Het hebben van een kat is niet een bijster privacy gevoelig gegeven, maar aan de andere kant, als ik wil dat collega’s weten dat ik een kat heb dan vertel ik ze dat wel gewoon zelf. Gelukkig heeft niet iedereen toegang tot de bonuskaart-database van Albert Heijn.

Kleine onbelangrijke gegevens lijken weinig met privacy te maken te hebben. NS weet via mijn OV kaart altijd precies waar ik naar toe reis, als ik met het OV ga. Albert Heijn weet precies wat ik koop. Google weet precies waar ik wanneer ben, en dus ook wat mijn favoriete winkels zijn en hoe ik reis, met OV of anders. De Kamer van Koophandel verkoopt de gegevens van mijn freelance-bedrijf aan Google Maps, waardoor ze voor iedereen gratis toegankelijk zijn en iedereen precies ziet waar ik woon. Als één van deze organisaties lang genoeg gegevens over mij verzameld hebben ze een profiel waaruit ze met statistische analyse een vrij nauwkeurig beeld kunnen destilleren van wie ik ben en wat ik doe. Denk je van niet? Nou, de overheid denkt van wel.

De overheid heeft de mogelijkheid om internet verbindingen af te tappen bij providers. Wat ze opslaan is niet de inhoud van de berichten, maar alleen “wie stuurt iets naar wie”. Dat geeft de politie en de inlichtingendiensten blijkbaar genoeg informatie om een precies beeld te schetsen van wie iemand is en wat iemand doet. Genoeg om iemand te arresteren en voor de rechter te brengen. En ik weet zeker dat wat de overheid kan met tapgegevens, kan Albert Heijn met bonuskaartgegevens, en de NS met OV-chipcard gegevens, en Google met locatie-gegevens. Laat staan dat een malafide hacker die deze gegevens samen bemachtigt en dan koppelt. “Malafide hacker”, als in de boeven die Vladimier Poetin inhuurt om in de VS en in Europa systemen te hacken, verkiezingen te beïnvloeden, en gevluchte Russen te vergiftigen.

Ik ben niet bang voor Russische spionnen, ik ben niet bang voor meneer Poetin. Ik ben niet bang voor onze veiligheidsdiensten die sinds eerder dit jaar al mijn gegevens mogen aftappen, ook als ik nergens van wordt verdacht. Toch ben ik voorzichtig. Ik heb drie verschillende bonuskaarten, en ik vraag regelmatig een nieuwe aan. Ik gebruik een anonieme OV chipkaart. Die de NS ook een beeld geeft van hoe ik reis, maar in ieder geval moeten ze dan wat meer moeite doen. Ik heb veel email adressen, zodat ik op allerlei sites een verschillende identiteit heb en mijn gegevens niet zomaar te koppelen zijn. Je kunt mij op Strava niet vinden, terwijl ik toch een aantal keren per week train op mijn racefiets en de ritjes upload naar Strava.

De EU doet met wetgeving en boetes, met de GDPR en andere maatregelen, van alles om onze privacy te beschermen. Ik denk echter dat ondanks die maatregelen, de online privacy die we hebben vergelijkbaar is met de nieuwe kleren van de keizer.