Minulý týden jsme si udělali s kolegou @bajtosem, jeho ženou a novým kamarádem @mictechem príma výlet do Berlína. Hlavním cílem bylo zúčastnit se akce Code Retreat Berlin 2011. Samozřejmě došlo i na networking, socializing, hangouting, gaststätting, beer-evaluating a sightseeing (neboli sezení v hospodě a motání se s kocovinou po městě druhý den), o tom ale třeba někdy příště. Dnes bych se chtěl s vámi podělit, o čem je Code Retreat a co mi to dalo.
Když programujete v práci, jste pod tlakem. Váš program jednou musíte dokončit a uvést do ostrého provozu. Často máte pocit, že kód který jste právě napsali, není dokonalý, ale už není čas ho opravit. Někdy se tomu říká pragmatismus, což je v překladu nauka o tom, že někdy je lepší releasnout shit než nereleasnout vůbec. Tím nechci snižovat význam včasného releasování, naopak, dodržování termínů je pro klienty velmi důležité a z naší strany je to věc slušnosti.
Problém s každodenním pragmatismem je ale ten, že vám nedovolí se zlepšit. Abyste svou úroveň zvedli, musíte se na chvilku zastavit a naučit se, jak psát kód lépe. A přesně to je cíl Code Retreatů – udělat si čas na to, abyste se mohli naučit psát kód lépe, vyzkoušet věci, na které běžně není čas, vyměnit si zkušenosti s kolegy z oboru a alespoň trochu tak posunout svoji laťku.
Code Retreat má celkem striktně danou strukturu. Zformují se páry, 45 minut se programuje, pak se všechen kód smaže a je 15 minut na retrospektivu a přestávku. A pak znova, aspoň šestkrát za sebou. Řeší se stále dokola ta samá úloha – Conway's Game of Life – která má jednoduchá pravidla, ale není možné ji naprogramovat za 45 minut. Protože předem víte, že se to nedá stihnout, a že se na konci všechno smaže, můžete se soustředit pouze na nějaký dílčí aspekt úlohy. Cílem není releasnout, ale napsat tak dobrý kód, jak jen můžete.
Zní to jednoduše, žejo? V praxi to ale nebylo tak jednoduché. Pragmatismus v nás zapustil hluboké kořeny a tak se úvodní jednu nebo dvě session zoufale snažíte dokončit úlohu včas, stresujete se, abyste to stihli a na konci, když vám facilitátor oznámí, že čas vypršel a máte smazat vše co jste napsali, máte chuť ho fyzicky inzultovat. Slabší nátury dokonce tajně commitovaly do gitu, aby o nic nepřišly:-)
Kolik si odnesete z Code Retreat závisí čistě na vás. Čím dřív se zbavíte pocitu, že musíte releasnout, a začnete si užívat refaktoring a pročišťování nějaké naprosto miniaturní části úlohy, tím lépe pro vás. Nejlepší je projít si ještě před akcí principy XP nebo z nějaké knížky (skvělá je v tomto ohledu třeba Clean Code), a budete se je snažit důsledně aplikovat.
Stejné je to s volbou člověka do páru. Když budete aktivní a najdete si včas někoho dobrého, máte víc šancí se něco naučit. Když ovšem neznáte účastníky, je to trochu ruská ruleta. Osvědčilo se mi snažit se najít někoho, kdo používá jiný programovací jazyk než já. Měl jsem pak příležitost vidět jiné IDE v plném provozu – ne jako když si stáhnu Eclipse a koukám na to jako trubka, ale vidět jak ho používá profík. Jedna z nejzajímavějších věcí pro mě bylo vidět programování javascriptu na MacBooku v TextMate, pouze s JSLintem, a unit testy spouštěné z konzole pomocí js-test-runner.
Prostě, když to shrnu, u Code Retreat platí, že jaký si to uděláš, takový to máš. Pokud nejste spokojeni s výsledkem, můžete si jen sami vyčítat, že jste se málo snažili. Já osobně jsem to nedokázal využít na 100% a myslím že je to tím, že jsem se takové akce účastnil poprvé. Příště se budu víc snažit připravit se předem a soustředit se na kvalitu už od začátku. A doufám že budu mít příležitost si to brzo zopakovat. Pokud vím, plánuje se Code Retreat v Drážďanech (pouhé dvě hodiny autem z Prahy) a třeba bude jednou i v Praze. Určitě by to stálo za to.
Koukám že jeden z účastníků dal právě fotky na web: http://flic.kr/s/aHsjvh4VbX
OdpovědětVymazatZní to hodně zajímavě, někdy v budoucnosti bych se rád připojil, pokud to pojedete zopakovat.
OdpovědětVymazatMas nejake info o pripravovanem (?) Code Retreat v tech Drazdanech? Rad bych jel
OdpovědětVymazatNevím jestli je to ještě aktuální, ale pořádá to zřejmě @olivergierke: http://twitter.com/olivergierke/status/90505219808563200
OdpovědětVymazatJinak "globální" kalendář coderetreat akcí je zde: http://coderetreat.ning.com/events
OdpovědětVymazat