Přejít k navigační liště

Zdroják » Různé » O věčném nedorozumění mezi kolonizátory a správci

O věčném nedorozumění mezi kolonizátory a správci

Články Různé

Glosa k tématu včerejšího článku Kolonizátoři a správci kolonií.

Mám velkou radost, když se někomu podaří trefně pojmenovat to, co sám cítím, ale ne a ne se trefit do toho správného označení. Teď se to podařilo Honzovi Javorkovi v jeho článku Kolonizátoři a správci kolonií. Doporučuju přečíst.

Kolonizátoři a správci

Podle Honzy se programátorstvo dělí na dvě výrazné skupiny, které si označil “Kolonizátoři” a “Správci”, a to podle toho, jestli danému vývojáři víc sedí vytvářet nové věci, nebo spíš spravovat, vylepšovat a cizelovat existující. Kolonizátoři dobývají nová území, často nevybíravými metodami, a za nimi zůstávají tak nanejvýš opevněné vojenské tábory a polovypálená města. Jakmile je dobyto, kolonizátoři odcházejí a nastupují správci, jejichž úkolem je postavit infrastrukturu, z vojenského ležení udělat fungující město, provizorní buď strhnout, nebo nahradit trvalým…

Je jasné, že tyto dva přístupy si moc nerozumí – na druhou stranu jeden bez druhého není moc dobrý. Nelze spravovat, když není dobyto. Dobývat nové území – rozuměj vytvářet nový produkt na zelené louce – půjde mnohem líp se “střelci”, vyznávajícími principy “good enough”, “minimum viable product” a “prototype first”. Ideální pro situace, kdy je potřeba se rychle dostat na trh a ukázat lidem, jak to má a bude fungovat. Tedy stejný přístup, jaký jsem sám vedl v novinách. Jenže dobyvatel, jehož denním chlebem jsou “bleeding edge” technologie a rychle napsané prototypy, bude nešťastný, když ho posadíte mezi správce. Jejich tempo mu bude připadat hlemýždí a jejich zaměření detailistické, puntičkářské a pedantské.

Na druhé straně správci, jak trefně podotýká Honza, označují “dobyvatele” za patlače, matlače, prasokodéry, aniž by si uvědomili, že bez nich by dnes neměli co spravovat a udržovat. Že kdyby se to nechalo na nich, byl by produkt možná od začátku krásný a čistý a navržený akademicky čistě, ovšem třeba o dva roky později. Jenže dva roky programování do zdi skoro nikdo nezaplatí, s výjimkou obřích korporací a výzkumných podniků.

Dobyvatelem ve světě správců

Jsem, podle této klasifikace, převážně dobyvatel. Baví mě zkoušet nové věci, pouštět se do výzev, nahazovat možná řešení. Práce v novinách byla krystalickou esencí tohoto přístupu: v pondělí vymyslet, v úterý udělat, ve středu publikovat. Ve vydavatelském domě sídlilo i klasické vývojářské oddělení, plné správců. “My vám to uděláme, to není problém, ale budeme mít čas tak za tři měsíce” bylo jejich motto. Pro dobyvatele je to nepředstavitelná věc: rozpočet se schvaluje pozítří a my k němu musíme mít graf a ilustrace. Pro správce rovněž nepředstavitelné: webová stránka bez analýzy, bez podrobného zadání, bez code review? Vždyť to je prasení!

Nerozuměli jsme si. Stejně jako jsme si nerozuměli s komentátory na prehistorickém Zdrojáku, ještě když byl pod Rootem. Tam to bylo plné správců, plné lidí, kteří “už dvacet let vyvíjejí bankovní systémy v Javě” (jak jeden z nich kdysi poznamenal – já to dodneška používám, když chci najít vhodné označení pro tento typ vývojářů), pro které bylo to, co představuje “dobyvatelský” svět, zkrátka jen prasení, bastlení, matlání, prostě práce hodná opovržení. “Tohle není žádné programování,” tvrdili a navzájem se v tom utvrzovali. Co tomu dodávalo specifický ironický podtón, byly jejich časté stesky nad tím, že v Česku nevznikají žádné inovativní produkty (což není tak úplně pravda, ale dejme tomu), jen “samé startupy” (což už je ironie na druhou). No, přátelé, ono totiž k tomu, aby něco vznikalo, je zapotřebí nejprve dobývat území.

Stalo se mi, že jsem jednou “dobýval území” s partou bytostných správců. Zatímco jsem, obrazně řečeno, hnal koně vpřed, jestli mi tedy rozumíte, tak správci seděli a rozmýšleli, jak na nově dobytém území budou stavět domy. Já rozbíjel tábor a stavěl stan, oni se dohadovali, jak vysoké domy budou na náměstí. “Hej, kudy jdeme, k moři, nebo do hor?” volal jsem na ně. “Počkej, teď musíme řešit, jak pojmenujeme hlavní město…”

Já zuřil. Chtějí pojmenovávat hlavní město a řeší materiál na kašnu, ale přitom ještě ani netuší, jestli bude na pobřeží, nebo v podhůří. Oni zuřili: buduje tábor, ale nemá rozmyšlenou barvu stanů! Zbrklý přístup, bez rozmyslu… Já jim oponoval, že jsou věci, které nelze rozmyslet úplně od stolu, že spousta věcí je třeba udělat, třebas v prototypu, a vyzkoušet. Pak se ukáže, kudy dál. Obrazně: potřeboval jsem, aby šli kousek za mnou, sledovali postup a řekli: teď půjdeme tudy. (Konec nastal na poradě, když mi vysvětlili, co to je agilní přístup a open source, popsali přesně to, co jsem do té doby dělal, a důrazně mě upozornili, že by tohle ode mne potřebovali, tak kdybych byl té dobroty…)

Pokud nezemřeli, sedí u toho stolu a debatují dodnes. Nepochybuju o tom, že jejich dílo bude skvělé, skvěle navržené a rozmyšlené, do detailů promyšlené… Vzpomínám si na scénku ze Stopařova průvodce po Galaxii, kde se Ford Prefect ptá Golgafrinčamanů, jestli už vynalezli aspoň kolo, když to je ten nejjednodušší stroj. Odpovědí mu bylo jedovaté: “Když jste tak chytrej, tak nám řekněte: Jakou má mít barvu, ha?” To je ten pocit, co má dobyvatel, když dostatečně dlouho sleduje diskuse správců: jo, chlapci, u vás to bude v těch nejlepších rukou, tedy až to někdo udělá, předá vám to a uteče dřív, než spustíte svoje “udělali bychom to líp”.

Správci se často ujišťují navzájem v tom, že jejich přístup je “správnější”, třebas tím, že díky pečlivé analýze eliminují už na začátku některé slepé uličky. Po letech sledování takto vedených projektů mohu zodpovědně říct, že ani sebelepší analýza, když není podepřená o reálné testy na prototypech, nedokáže zabránit zabřednutí ve slepé uličce. Jen k němu dojde výrazně později a s horšími následky, protože “správcovsky zanalyzované” projekty mívají v tu dobu nad slepou uličkou vymyšlenou mohutnou nadstavbu, která někdy způsobí, že rychlejší je vymyslet a postavit na konec slepé uličky oranžový portál, než couvnout a jet jinudy.

Závěr

Provokuju, já vím. Ale provokuju úmyslně. Mezi vámi, čtenáři, je mnohem víc správců, než dobyvatelů, že? Bylo by fajn, kdybyste zkusili někdy, třeba na krátkou dobu a na malou omezenou věc, vylézt ze svého “úřadu královského správce”, a vyrazit neprobádanou cestou, rychle k nějakému cíli. Naučí vás to jednu skvělou věc: rozhodovat se v reálném čase a na základě neúplných vědomostí. A až se zase vrátíte ke svému správcování, tak vám garantuju, že nadávání na “to prase, co to psalo před váma”, vám půjde trošku hůř přes pysky.

No a pro všechny dobyvatele platí totéž v obráceném gardu: odložte na chvíli brnění, zastavte se a zkuste si refaktorovat svůj kód. Sedněte si na to s nějakým zkušeným správcem, který vám dá opravdu cennou a normální zpětnou vazbu, ne jen “to je prasárna, já bych to napsal jinak”, a zamyslete se. Jste bystří a rychle se učíte, já to vím, tak se naučíte být rychlí, efektivní, ale trošku míň neotesaní…

Jedni se bez druhých neobejdou. Zkusme si proto vyjít vstříc. A ne jen na svátky!

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.