Un Dojo és on es practiquen les arts marcials. És una paraula japonesa que vol dir “lloc on s’estudia el camí”, per tant té un component filosòfic que va més enllà d’un gimnàs. A un dojo es treballa tant el cos com la ment.
Per tant un coding dojo no és res més que un espai on poder millorar les nostres habilitats com a programadors.
Un Dojo és on es practiquen les arts marcials. És una paraula japonesa que vol dir “lloc on s’estudia el camí”, per tant té un component filosòfic que va més enllà d’un gimnàs. A un dojo es treballa tant el cos com la ment.
Per tant un coding dojo no és res més que un espai on poder millorar les nostres habilitats com a programadors, igual que els músics assagen abans dels concerts o els atletes entrenen abans de les competicions esportives, els informàtics hem de millorar les nostres habilitats com a desenvolupadors de software abans de realitzar projectes per als nostres clients.
El funcionament d’un coding dojo és el següent, es proposa un exercici i s’ha d’intentar resoldre’l. Si utilitzem la terminologia correcta dels coding dojos haurem de reescriure la frase de dalt de la següent manera. El facilitador proposa una kata i mitjançant diverses iteracions timeboxed i pair programming hem d’intentar resoldre-la.
Per això ens cal saber que volen dir cadascuna de les paraules amb negreta:
- Facilitador: persona que “dirigeix” la sessió. Proposa la kata, l’objectiu i modera els debats
- Kata: és un exercici de programació, que mitjançant la pràctica i la repetició, t’ajuda a millorar les teves habilitats com a desenvolupador
Imatge cortesia de Michael Hultström
- Timebox: període de temps del qual disposem per realitzar una tasca
- Pair programming: Es tracta de “picar” codi entre dos, un pica (driver) i l’altre revisa el codi (navigator), i cada poca estona s’intercanvien els rols
Cada coding dojo ha de tenir un objectiu, aquest objectiu ha de fer focus a millorar una habilitat, ja sigui de disseny, de test, de patró de software, … i s’escull una kata que faci focus sobre l’objectiu a aconseguir.
Un cop tenim l’objectiu i la kata fem un sprint per intentar resoldre-la. Un cop finalitzat sprint s’obre un període de debat, on, entre tots, comentem què ha anat bé?, on ens hem encallat?, com podem millorar?, què hem d’evitar?,… Tot seguit, es comença un nou sprint.
En funció de la kata, l’objectiu o els participants, en aquest nou sprint es poden introduir modificacions a l’enunciat (afegir un requisit més, esborrar tot els codis fet fins ara i començar de nou, afegir una restricció, intercanviar parelles,….) i novament un debat en finalitzar. I es van fent sprints i debats fins a finalitzar el coding dojo.
A títol d’exemple, si un coding dojo dura 2h es pot fer una breu presentació de la kata (5 minuts), dos sprints de 45 minuts i dos debats 10-15 minuts. O bé 3 sprints de 30 minuts i 3 debats de 10 minuts.
Després d’aquesta explicació de ben segur que encara teniu dubtes:
- Quina IDE utilitzem?
Aquesta resposta depenen del facilitador o bé de tu mateix. Si el facilitador vol fer focusen una IDE concreta segurament la fixarà, si no utilitza aquella en el qual tu vulguis millorar o et sentis més còmode.
- Quin llenguatge de programació utilitzem per resoldre-la?
Aquesta resposta depenen del facilitador o bé de tu mateix. Si el facilitador vol fer focus en un llenguatge de programació en concret segurament el fixarà, si no utilitza aquell en el qual tu vulguis millorar o et sentis més còmode.
- Què fem amb el codi en finalitzar?
Llençar-lo, esborrar-lo, eliminar-lo. L’objectiu és millorar les teves habilitats com a desenvolupador, no que tinguis codis d’exemple per quan et trobis casos similars. Si practiques sovint i millores les teves habilitats quan et trobis casos similars els podrà resoldre fàcilment.
- Quanta gent pot assistir el coding Dojo?
Depèn, es poden fer coding dojos amb més de 30 persones o bé entre 4 o 5, inclús tu sol. Cada dia abans de començar a desenvolupar fas un sprint de 30 minuts per resoldre una kata concreta.
Reflexió final
Als darrers anys a l’inLab FIB hem canviat moltes coses, hem canviat de nom (abans ens dèiem LCFIB), hem arrencat el programa TalentSI (un programa de formació intern) entre els nostres col·laboradors en formació i hem començat a utilitzar les metodologies Agile per a desenvolupar projectes de software. A títol d’exemple tots aquests canvis es poden veure reflectits en una sola litúrgia, els Coding dojo. Millorem les nostres habilitats per desenvolupar projectes que satisfacin els nostres clients.