Coderetreat, aneb cesta zdokonalování programátorských dovedností

Prvního Codereatu jsem se zúčastnil v roce 2011. Konalo se to v sobotu a cestou tam jsem si říkal, že jsem se asi zbláznil. O víkendu jít kamsi do cizích kanceláří a další den strávit stejnou činností, kterou jsem se věnoval po celý pracovní týden spojenou se sezením u počítače.

ddd
Coderetreat Praha 2011, Impact Hub D10, zdroj: coderetreat.cz


Naštěstí tou hlavní činností bylo programování což je pro mě zábava, takže jsem se i těšil a hlavně jsem byl zvědavý co to ten Coderetreat vlastně je. Už jen ten název je divný. Není v tom pravopisná chyba?

“Code” je jasný. “Retreat” je označení pro místo, kde jsme sami. Místo kam můžeme uniknout. Třeba stín pod stromem, kam unikneme před sluncem. Coderetreat tedy můžeme chápat jako místo, kde se schováme před shonem běžného pracovního stresu, který je na nás na programátory vytvářen.
Já beru Coderetreat jako takovou dobrodružnou cestu za zdokonalovaní se v programátorských dovednostech. Je to něco co nejde jen zkouknout jako přednášku na videu. Je to něco co se musí prožít. A pokaždé je to jiné.

Má první zkušenost v tom roce 2011 dopadla velmi dobře. Za což děkuji hlavně Mariánovi Schubertovi a dalším organizátorům českého Coderetreatu. Dost výrazně to změnilo můj přístup k vývoji softwaru. Začal jsem se více zajímat o clean code, TDD, extreme programming a další věci s tím spojené. Jsem hodně ovlivněn Uncle Bobem a jeho knihami. Můj zájem došel tak daleko, že poslední 4 roky sám aktivně Coderetreaty pořádám. Mám za sebou jeden v České Spořitelně, tři v Zonky a letos se s Jakubem Kočím chystáme pořádat jeden v Ostravě v Tietu.

Coderetreat Praha 2019, Zonky, zdroj: Martin Nuc

V čem vidím přínos Coderetreatu

Člověk si zkusí techniky psaní čistého kódu. Celý den se věnujeme tomu na co není v běžném pracovním shonu čas. Tedy, dáváme důraz na jednoduchý design a kvalitu, jelikož chceme vytvářet kód, který bude srozumitelný i pro kolegy a taky pro nás až na něj znovu koukneme třeba po roce. 

Věnujeme se dobrému pojmenování tříd, metod, objektů, aby již z názvu bylo jasné o co jde a co to dělá. To proto, že chceme, aby se kód dal číst rychle, abychom nemuseli proklikávat každou metodu a zjišťovat procházením jednotlivých řádků co tím autor vlastně myslel.

To samé platí o pojmenování testů. Když nám spadne nějaký test, jen z jeho názvu v logu bychom měli být schopni říct, kde v systému se vyskytl problém. To proto, abychom dokázali rychle reagovat na vzniklé potíže. Vývoj softwaru v dnešní době stojí nemalé peníze a každý ušetřený čas se počítá. Pokud se vás někdy někdo zeptá proč dáváte takový důraz na kvalitu vašich testů, odpovězte, že je to proto, aby se celkový vývoj zlevnil. To zlevnění se neukáže hned. Takový způsob myšlení je spíše vhodný pro dlouhodobější projekty.

Celý den se vždy pracuje ve dvojicích. Trénujeme tím párové programování, sdílení myšlenek a týmovou spolupráci. Dvojice se postupně střídají, každý má možnost poznat různé styly práce. Je to příležitost zkusit si nové jazyky.

Procvičujeme si Test Driven Development přístup. Tohle je jedna z věcí, která po mé první zkušenosti z Coderetreatem, otočila mé přemýšlení o stoosmdesát stupňů. Do té doby jsem vždycky nejdříve napsal funkční kód a až pak někdy později testy. Tady jsme se to učili dělat obráceně. Napřed testy, pak kód. Samozřejmě jsem tehdy TDD znal, ale nikdy jsem ho nepraktikoval. Neviděl jsme v tom užitek. Teď jsem měl možnost si to zkusit. A musím uznat, že se mi to zalíbilo. Napřed jsem si řekl co skutečně potřebuji, aby můj kód dělal. Napsal jsme k tomu odpovídající jednoduchý test a až pak implementaci. Oprostilo mě to od vymýšlení složitých konstrukcí. Pokud jsem i přesto někdy potřeboval vyřešit složitý problém, kód kolem něj vznikl tak nějak intuitivně, přirozeně.

To vede k další věci, která se na Coderetreatu trénuje a tím jsou baby steps. Cílem je postupovat v před po malých krůčcích. Skutečně po malých částech. Noví účastnici na Coderetreatech mívají tendenci předbíhat hodně dopředu. Vznikají pak mnohdy zbytečně složité testy nebo implementace, které naopak nejsou testy dostatečně pokryté. To se postupně zlepšuje s každou další hodinou v nové dvojici.

Během dne toho probíhá více a nechci to tady hned všechno vyzradit. U některých věcí je dobré se nechat překvapit. Akce je taky dobrá kvůli networkingu. Potkávají se zde vývojáři z různých firem a je tam dost přestávek během kterých se sdílí zkušenosti z vlastních projektů. Vznikají tu nové vazby a přátelství. Po každé hodině (také tomu říkáme session) si dáváme krátkou retrospektivu. Na závěr dne je velmi důležitá velká retrospektiva, kde se všichni podělíme o své dojmy a čemu novému jsme se během dne naučili. Dost často se nám daří získat od Partnerů akce různé ceny do mini-soutěže, kterou obvykle zařazujeme jako poobědový relax. Poslední tři roky to byly slevy na produkty od společnosti JetBrains.

Na konci

A na úplném konci každého Coderetreatu všem účastníkům vždy říkám jeden důležitý postřeh … . A pokud někdy dorazíte na některý z Coderetreatu, který budu pomáhat organizovat, tak vám to tam taky řeknu.

Coderetrat Praha 2017, Česká Spořitelna, zdroj: Jaroslav Holaň



Komentáře

Populární příspěvky z tohoto blogu

Ohlédnutí za Coderetreatem 2013

Špatná zkušenost s reklamaci bot v Office Shoes