Verslag Coding Dojo

09-01-2010

Dit verslag is geschreven door Mark Giesen. Bedankt Mark!

Woensdag 6 januari kwamen 19 Martial Coding Artists samen in de Dojo van Marktplaats in Amsterdam. Een perfect bereikbare locatie, tenminste als het niet net was gaan sneeuwen. De volgende dag bleek uit mails en krant dat precies de tijd die wij bij Marktplaats doorbrachten mensen gewoonweg vast stonden op o.a. de A10, rondom ons heen. Wij merkten net wat extra drukte en waarschuwingen bij aankomst, maar nadat wij eenmaal uitgevochten en geborreld waren, waren de wegen ook weer redelijk begaanbaar en had dus alleen de rest van de wereld daar last van gehad.

Eigenlijk kwamen we natuurlijk voor de pizza's en cola en daar was in ruime mate in voorzien van vegetarisch tot carnivorisch, behalve die zonder kaas. Op donderdag hebben nagenoeg alle medewerkers van Marktplaats nog een koude punt als lunch kunnen nuttigen.

Als je denkt dat dit een paar man zijn voor zo'n site-je, think again. Daar zit een grote zaal vol mensen. Van ontwikkelaars tot sales en nog veel meer. Altijd erg leuk om een nieuw bedrijf te kunnen bekijken en dan helemaal zo'n bedrijf dat iedereen kent. Leuk ook om te horen over de wilde plannen met Hadoop, MapReduce en GigaSpaces, bijna jammer dat ik geen Javaan ben.

Nadat wij genoeg hadden van de pizza's zijn we aan de Dojo begonnen. Willem van den Ende, Marc Evers en Rob Westgeest (ofwel de mannen van QWAN) hadden een RandoriKata voorbereid. Eigenlijk een onmogelijke naam, omdat Randori en Kata precies de twee tegengestelde methodieken zijn in Japanse martial arts. Een Kata is een strak gechoreografeerde oefening die heel vaak wordt uitgevoerd waardoor je daar steeds beter in wordt. Randori daarentegen betekent letterlijk "chaos nemen" en staat juist voor de vrijheid van het niet volgen van kata's. Toch is het een goede naam gebleken. Er wordt namelijk een applicatie ontwikkeld in zeer korte iteraties. Deze avond was een iteratie vijf minuten, veel iteratiever kun je het niet krijgen. Iedere iteratie moest er eerst door de man achter de knoppen een falende test geschreven worden die vervolgens door de co-piloot werkend moest worden gemaakt, TDD dus. Zolang er met de test gewerkt werd kon de hele groep invloed uitoefenen op de te bouwen test en dus op de te bouwen functionaliteit. Zodra deze falende test netjes faalde draaide de prioriteit om naar het fixen van de falende test. Over design mocht niet meer worden getwist, alleen over hoe die test zo snel mogelijk werkend moest worden gemaakt. Zodra de vijf minuten om waren werd één van de ontwikkelaars gewisseld en begonnen we weer van voor af aan. Zo zie je goed de Kata: test schrijven en implementeren. Ook Randori was goed te zien in de discussie van de groep en door het steeds wisselen van toetsenist. Dit allemaal met babysteps om het wel binnen 5 minuten af te kunnen ronden. Dit leverde wel wat discussie op. Een babystep is de meest kleine volgende stap richting einddoel. Het lijkt soms alsof je je hoofd moet uitschakelen omdat je het gevoel hebt dat je best weet wat de volgende 3 steps zijn en die wil je in één keer doen. Het consequent doorvoeren levert wel eenvoudige keuzes op, eenvoudig terugdraaien en weinig ingewikkelde discussies. Aan de andere kant bekruipt je toch het gevoel dat je onnodig klein bezig bent en dat het sneller moet kunnen.

Wat leren we hier nu van? Dit was mogelijk de interessantste vraag van de avond. Voor mij persoonlijk was het vooral de taal Ruby. Voor mij bijna volledig nieuw en volgens de kenners van vanavond hebben we alles de revue laten passeren, dus nu ben ik ook een Ruby crack. Ergens in m'n achterhoofd knaagt wat twijfel, maar dat laat ik natuurlijk nooit meer merken. Zolang ik er geen project in hoef te doen.... Vooral het onderdeel "NIET discussiëren" was voor sommigen de grote les van de avond. We hebben het dan niet eens over of ze gelijk hadden of niet, maar over regels kunnen volgen en meningsverschillen inslikken als de tijdsdruk daarom vraagt.

Andere leerden vooral van de verschillende keuzes die mensen maken of dat TDD helpt of juist tegenzit in zo'n omgeving. Voor weer anderen was de Coding Dojo techniek an sich de grote winst en zien ze zichzelf dit gebruiken in hun dagelijks leven om een moeilijk probleem te tackelen of om bepaalde principes in een groep in de vingers te krijgen. Tot slot de Babysteps, voor m'n gevoel zijn die een beetje ondergesneeuwd die avond, maar misschien waren er ook wel veel lessen. Ik ben benieuwd of je dit principe een keer in een echt project een paar weken kan doorvoeren om te zien of het bijdraagt aan snelheid en accuratesse.

Zo heeft iedereen deze avond er wel iets uit gehaald wat van waarde is. Of dat precies is wat de voorbereiders er hoopten in te leggen weet ik niet, maar met zoveel winst mag het in ieder geval een geslaagde avond genoemd worden. Na nog een paar afzakkertjes in bar/restaurant Dauphine zijn we allen weer een stukje slimmer huiswaarts gegaan.

     

De sourcecode voor deze nieuwe Pacman kata vind je terug op http://github.com/mostalive/pacman

News @devnologynl

There you have it: Devnology predicts 2027. Thanks all for sticking with us over the years! https://t.co/pMmr5PCztx

19-04-2017 at 20:01

Nerds talking the last 8 years, and making predictions for the next. https://t.co/VGT8XIFQ0j

19-04-2017 at 18:37

@_angelos opening the last Devnology meeting with a tweet of the first one he attended https://t.co/ufAYScx3cn

19-04-2017 at 17:08

Qwan 5dff39510bacfcefb54e89f953eddfc1a7a21185b7128d96ff6b466f56acb6d9
Macaw 06e9331a5321067b592bf45ea39db7df6792dc976000d24d3ee4043d99203514
Finalist e304343cdbeb0996cc1e7a26527993a5fa2db87ca53a81fb15dca22a35d7f28c

Devnology is a non-profit organisation and thus depends on sponsors. Thanks to our wonderful sponsors all Devnology events are free!