Přejít na hlavní obsah
V kondičce díky Coding Dojo

V kondičce díky Coding Dojo

Vrcholoví sportovci dosahují svých výkonů díky pravidelnému tréninku, při kterém pilují své dovednosti. Jaké možnosti má ale vývojář, pokud se chce zlepšovat a pracovat na svých schopnostech? Kromě čtení knížek a navštěvování přednášek existuje ještě jedna cesta – Coding Dojo. 

Co si představit pod Coding Dojo? To se sejde skupina vývojářů, sedne k jednomu stolu a všichni pracují na stejném zadání. Na výzvě. Cílem není jen pokořit výzvu, ale hlavně se učit jeden od druhého.

Je to koncept, který se neomezuje na zkušenost s určitým jazykem nebo programátorskou úrovní. Dokonce nejlépe funguje, když se při něm setkají různě zkušení vývojáři, protože si mají vzájemně co předávat. Sami jej docela často používáme. Také to plánujete zkusit? Třeba se vám budou hodit naše zkušenosti a tipy. 

Proces je důležitější než kód

V klasickém produkčním prostředí dostává programátor zpětnou vazbu prostřednictvím code review nebo někde dokonce jen ověřením, že výsledná aplikace funguje. Samotný kód ale není vše, mnohem důležitější je proces jeho vzniku. A hlavně na ten se Coding Dojo zaměřuje. Může jít o přemýšlení nad konkrétní implementací, psaní testů, efektivní práci s vývojovým prostředím, porozumění cizímu kódu nebo refaktoring. To jsou všechno klíčové dovednosti každého vývojáře. A navíc – Coding Dojo je zábava!

Průběh Coding Dojo 

Ke Coding Dojo můžete přistoupit různými způsoby. Nám se osvědčilo dodržovat tento formát:

  • Účastní se 5–7 lidí
  • Mají 2–3 hodiny na jeden běh a jeden zajímavý úkol (tomu se říká Kata). Existuje spousta připravených zadání, nebo si s trochou zkušeností můžete vytvořit i vlastní.
  • Během celého Coding Dojo je přítomný moderátor. Doporučujeme mít raději dva. Jeden hlídá čas, dodržování formátu a organizuje průběh. Druhý se zaměřuje pouze na technickou diskuzi, snaží se skupině po celou dobu předávat zpětnou vazbu a podněcuje odbornou debatu. 

Účastníky je také potřeba důkladně seznámit se základními principy Coding Dojo

  1. Coding Dojo není soutěž. 
  2. Cesta je cíl. Není důležité samotné řešení úkolu, ale jak jsme k němu došli.
  3. Jsme v bezpečném prostředí, kde můžeme zkoušet nové věci. 
  4. Máme čas, můžeme zpomalit a navzájem se od sebe učit. 
  5. Nezáleží na programátorské úrovni – každý vynikáme v něčem jiném a můžeme to předat ostatním. 
  6. Nemůžeme psát kód, pro který neexistuje test. Během celého Coding Dojo tedy aplikujeme TDD

Společné úkoly i párové programování 

Samotné řešení úlohy může probíhat v různých formátech. My používáme typicky Randori Kata, kdy je k dispozici pouze jeden počítač a kód se promítá na velké plátno. Řešení úlohy je rozděleno na krátké iterace (nám se osvědčilo 7 minut), ve kterých se účastníci postupně střídají u počítače: 

Samotný kód píše Driver, vedle něj sedí Co-pilot, který mu napovídá a nahlas za něj přemýšlí. Po skončení iterace se z Co-pilota stává nový Driver a novým Co-pilotem je další z účastníků. 

Každé takové kolo navíc zahrnuje:

1) společný planning, kdy se skupina dohodne, čeho by chtěla dosáhnout, 

2) retrospektivu, když iterace skončí. Celá skupina debatuje nad tím, co se právě odehrálo a získá zpětnou vazbu od moderátorů.

Po skončení Coding Dojo se určitě vyplatí udělat ještě velkou retrospektivu a celý průběh si shrnout. 

Metody

Kromě Randori Kata, která skvěle funguje pro juniory i seniory, jsou i další populární formáty:

  • Párové Randori 

Řešení úlohy probíhá ve dvojicích, každá má k dispozici jeden počítač. Všichni mají zadanou stejnou úlohu a po určené době se dvojice u počítačů vymění. Musí se tak rychle zorientovat v cizím kódu a na jeho řešení navázat. Tento typ Coding Dojo už vyžaduje jistou programátorskou úroveň. 

  • Ping Pong

Ping Pong se podobá párovému Randori. Dvojice má ale za úkol společně dořešit úlohu až do konce. U počítače se střídá v režimu test – implementace, test – implementace, ... 

  • Code Retreat 

Je to rozšířená verze Coding Dojo. Řeší se při ní složitější úkoly (např. Game of Life), proto může trvat i celý den. 


Je to brnkačka? Přidejte další výzvy

Co když zakážete používat myš, ať si procvičíte klávesové zkratky? A co takhle psát celý kód v poznámkovém bloku, a tím pádem zakázat našeptávání? Nebo psát kód bez podmínek? Fantazii se meze nekladou. 

Čistý kód = spokojený vývojář 

S myšlenkou uspořádat Coding Dojo u nás přišel vývojář Ondra Vršan, který si ho vyzkoušel v předchozí práci. Od té doby ho organizujeme pravidelně. Taky jsme už pořádali Coding Dojo pro veřejnost – u nás i na Fakultě informatiky MU. 

Obecně nám tato metoda pomáhá dostávat praxi TDD více pod kůži a celkově psát čistší kód. Velmi pozitivní reakce vyvolávají především společné diskuze celé skupiny, kdy si vyměňujeme své zkušenosti a názory na věc. I pro nás, jako organizátory, je Dojo obohacení, protože každá skupina je jiná a tím pádem se i my vždy něco nového naučíme.

Ideálně chceme takto procvičovat mozkové buňky jednou měsíčně. Je totiž dobré dát si dostatek času na přípravu a zároveň dodržovat určitou pravidelnost. Organizaci Coding Dojo přitom nemusí mít na starosti jen moderátoři – nebojte se zapojit více lidí, ať má akce co největší přínos.

Tak co, chcete to zkusit?

Přidejte se na naše lednové Coding Dojo, ještě zbývá pár posledních míst! Pro další termíny pak sledujte náš Facebook.
Nebo chcete uspořádat Dojo sami ve své firmě? Rádi se podělíme o zkušenosti, napište nám

Chcete si číst dál?

Jak jsme si z punkového RealUXCampu odvezli pořádek v hlavách

Přednášky v trávě, oběd na ohni, „ovce moudrosti“ z lepenky… RealUXCamp je tak trochu punk. A hrozně nás baví!

V kategorii UX

Rozběhli jsme Kentico Academy

Náš QA Engineer Radek Petruška a Developer Petr Svirák se od pondělí do pátku a týden co týden věnují 6 talentovaným studentům. V prostorách CERITu na Fakultě informatiky společně pracují na vývoji pr…

V kategorii Život v Kentico

Naše technologie: silné typování obsahu v .NET (3. díl)

Chcete poznat technologie, se kterými v Kentico pracujeme? Přeložili jsme pro vás na ukázku sérii článků vztahující se k jednomu z našich open source projektů. Bude řeč o silném typování v Kentico Kon…

V kategorii Development