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

Zdroják » Různé » Kolonizátoři a správci kolonií

Kolonizátoři a správci kolonií

Články Různé

Vyměňme na chvíli vánoční čepičky za přilby conquistadorů. Propůjčím si imperialistickou terminologii k tomu, abych odlišil dvě skupiny programátorů a upozornil na nešvary, které vznikají, když toto rozdělení ignorujete.

Článek původně vyšel na autorově webu.

Kolonizátor

Cortés! Pizarro! Tihle chlapíci se s tím moc nepárali. Na mapě bylo bílé místo a jejich pověřením bylo zjistit, co tam je, a zařídit, aby to bylo za každou cenu co nejdříve pod španělskou vlajkou.

Kolonizátor pracuje rychle a efektivně. Dostal polovičaté zadání, ale není tady od toho, aby se na něco ptal. Jeho úkolem je doručit výsledek. Vytvořit MVP. Sestrojit prototyp, aby se dal validovat trh. Dokončit něco, protože zítra je demo.

Chtějte nemožné a kolonizátor vám to doručí. Sice přes mrtvoly, ale doručí. Agenturní práce? Noviny? První rok startupu? Žádný problém. Rychle měnící se zadání? Jednorázová práce? Tihle ostří hoši nehnou brvou.

Správce kolonií

Na mapě dobytého území už jsou první osady, domorodé obyvatelstvo je zpacifikované, Cortés se posunul někam dál za obzor. Co teď? Nastupuje správce. Zatímco kolonizátor nešel daleko pro nějakou tu genocidu, úkolem správce je spíš domluvit se s místními na kompromisech a situaci stabilizovat. Podpořit rozvoj krajiny, rozjet výnosy, udělat místo pro nové osadníky.

Správce hledá řád. Navrhuje, refaktoruje, rozvažuje, uklízí, pětkrát měří, než něco uřízne. Sv. Linter a Sv. Coverage dostanou kostely uprostřed osady. Dbá na čitelnost kódu a dokumentaci, protože ví, že jsou to základy týmové spolupráce. Většinu chatrčí strhne a postaví domy z kamene, jež se budou do budoucna lépe udržovat.

Tenhle budovatel sem nepřišel na jedno léto. Sice by od srdce nejraději něco pořád dokola začínal na zelené louce, ale sám tuší, že nejlépe mu je na produktu s validovaným trhem a jasnými představami o dalším směřování. Potřebuje se rozhlédnout po osadě a cítit ve vzduchu, že až odejde, zůstane po něm město s hradbami a katedrálou.

Honza šel do světa

Abychom se nemotali pouze v opisech, přiložím dojemné příběhy z vlastního života.

Hloupý Honza šel do světa a zavadil v roce 2013 o firmičku s názvem Skypicker. Skládala se asi ze tří lidí a měla hotový prototyp svojí služby. Už tehdy si Honza uvědomoval, že existuje buďto krásný a upravený kód, nebo kód, který vydělává peníze. Jenže to, co viděl ve Skypickeru, ho i tak překvapilo. Firma byla navíc nastavená čistě na výsledky, takže co neprodukovalo uchopitelné hodnoty, to nebylo zaplaceno. Honza tam vydržel měsíc.

Dnes už je Honza o něco méně hloupý a ví, že je správce. A správce ve startupu o třech lidech nemá co dělat. Taková firma potřebuje kolonizátory. Skypicker si je sehnal, neslevil ze svého přístupu a dnes je z něj Kiwi.com. S šedesáti (?) vývojáři dnes už zaměstnávají i nějaké budovatelské povahy. Občas za Honzou chodí a říkají, že pod sedimenty narazili na jeho commit.

Honza nyní pracuje v Apiary, kam přišel zhruba v době, kdy začínalo mít smysl investovat do nějakých prvních správců. Produkt Apiary má více částí a firma historicky vždy vyslala nějaké kolonizátory vytvořit prototyp, aby se zjistilo, zda má něco vůbec smysl. Ve chvíli, kdy trh ukázal, že je o danou věc zájem, přesunuli se dobyvatelé jinam a nastoupili správci, kteří začali uklízet po válce a budovat.

Střet dvou světů

Je problém, pokud správce dostane za úkol kolonizovat území a naopak. Také vznikají třenice, když mají lidé na něčem spolupracovat nebo si třeba i jen předávat práci a neuvědomují si přitom své „imperialistické“ role.

Těžký život kolonizátorů

Dobyvatelé jsou často šikanováni kolektivem, který jejich práci přebírá. Lidé komentují kvalitu dřevěných chatrčí, místo aby si uvědomili, že nebýt onoho chlapíka v zakrvaveném brnění, nestálo by tam nic a nemělo by to ani jméno. Že to, na co koukají, bylo napsáno ve tři ráno den před termínem nebo v době, kdy nikdo nevěděl, jestli má smysl v projektu vůbec prokračovat. Pro nové osadníky je to „prasokód“ a „legacy“. Kolonizátor končí s nízkým sebevědomím nebo v neustálé defenzivě.

Kolonizátor správcem

Když necháme dobyvatele spravovat nově založenou kolonii, dokáže to. Klidně několik dalších let. Jenže už nikdy se k němu nikdo nepřidá. Kód nebude ve stavu, že by mu mohl porozumět ještě někdo další. Projekt po technické stránce začne fárat do nekonečné šachty. Z té není cesty ven – dá se pouze sjet ještě hlouběji, nebo začít odznova a věc bolestivě přepsat. Pokud se kolonizátor přestane projektu věnovat, je to často konec – nikdo jiný není schopen na témže území operovat.

Pyšní správci

Správci vidí, že píšou lepší kód než kolonizátoři, ale nedokážou odhadnout, kde je jejich vlastní strop. Každý správce si myslí, že právě on je nejlepším správcem a zorganizuje věci nejlépe. Navrhne nejlepší strukturu, rozmyslí nejlepší řešení. Zatímco kolonizátor vždy udělá jen nejnutnější, správci mají problém pochopit daný kontext a odlišit důležité od zbytného. Řešení správců mohou nesmyslně nabobtnat do předimenzovaných, příliš robustních, příliš obecných. Správce sám o sobě tedy nezaručuje, že projekt půjde dobrou a rentabilní cestou.

Správce kolonizátorem

Správce kolonie najatý na dobytí neznámého území je jako koule na noze. Místo, aby chrlil prototypy, které ověří myšlenku a potvrdí, že v blízkých horách lze těžit zlato, bude se týdny točit v opravování style guide warnings a refaktorování toho, co napsal předchozí den. Pokud misi úplně nezabije, tak ji minimálně zbrzdí a propálí hromadu peněz.

Házení špíny

Správci kolonie jsou mistři v práci s git blame. Sice by bez kolonizátora vůbec nemohli existovat, ale to jim nedochází. Dobývání neznámých obzorů by běžný správce buď nechtěl dělat nebo vůbec nezvládl. Jenže bez prvotních osad by nebylo co spravovat. Nic by se nerozjelo, nikdo by správce nezaplatil. Správně by tihle budovatelé měli být kolonizátorům vděční, měli by obdivovat jejich odvahu, výdrž a ochotu vrhat se do krvavých bitev. Místo toho na ně u kafe v odpolední pauze hážou špínu.

Výzvy

Velkou výzvou pro kolonizátora je nenechat se zlikvidovat kolektivem, uvědomit si vlastní hodnotu, svoje slabiny a sám se snažit podílet na projektech, na nichž může svoje schopnosti nejvíce uplatnit. Může se učit rozvaze a disciplíně, aby z něj mohl být jednou správce, ale není to nutné. Svět potřebuje i střelce.

Obrovskou výzvou pro správce kolonií je pokora. Nedělat z git blame nástroj šikany, ale podívat se na čas commitu (ranní hodiny?), dohledat původního autora, poplácat ho po zádech a doptat se jej na co nejvíce kontextu. Nesázet tolik na to, že všechno ví nejlépe. Najít hranici mezi tím, co se bude do budoucna hodit a co je v dané fázi projektu zbytečná optimalizace, overengineering, přiliš brzké DRY, apod. Nejet drakonicky podle pouček z knížek.

Poznali jste se?

Jste dobyvatelé nebo budovatelé? A co vaši současní nebo minulí kolegové? Nebo je to složitější? Diskutujte pod článkem!

Komentáře

Subscribe
Upozornit na
guest
12 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Petr Fiala

Perfektní článek.
Je to asi zbytečné dodávat, ale kolonizátor patří do stratupu a začíná vždy na zelené louce. Zatímco správce po něm buď přebere pár chatrčí, ale v dnešní době mnohem spíš přebere zapáchající městečko, které pamatuje středověk, po jiném správci v korporátu.

tacoberu

Podle všeho jsem správce. Teoreticky umím ocenit kolonizátora, ale prakticky samozřejmě občas nějaká jedovatá slina uteče :-) Taky jsem jen člověk.

Díky za krásnou ilustraci. Mám na čem (pochopení a ocenění) pracovat.

Petr

Je to složitější imho. Pro začínajícího programátora je téměř vše kolonizování, přičemž zkušený senior programátor dokáže se svým správcovským postojem rozjet krásný startup. Teprv ve chvíli, kdy se dostane mimo svou komfortní zónu začne „kolonizovat“.

anti.cz

Jasny strelec, ale souhlas. Cloveka to dost stve, kdyz vi, ze ten kod je takovy jaky je a chce to psat lip, ale proste to nejde, kdyz se zadani meni pod rukama nebo je dvojslovne typu „udelej appku“. Kdo vi, spravce se taky ozyva a nekdy se to snad otoci. Aspon vim, ze v tom nejsem sam.

Oldřich Vetešník

Hezký, díky. Každý z nás v různých obdobích tíhne na jednu stranu, ale troufnu si říct, že se umím přepnout do obou rolí, ale nikdy nesmím být v obou zároveň.

Věra Maškarincová

Tohle rozdělení platí nejen v IT, nejen v programování, platí všude. Při čteni jsem si uvědomila, jak mi vadí zdánlivě nepřekonatelné rozpory mezi kolegy, kdy jeden říká „tak to bude mít nějaký chyby, to opravíme dodatečně, hlavně musíme něco přivést na svět!“ a druhý „nojo, pěkně to máš vymyšlený, ale máš v tom hrubky, neprošlo to standardní procedurou a v PR rozesílacím seznamu chybí ti nejdůležitější lidé, kteří se o tom musí dozvědět.“ Navzájem se tihle lidé kysele a se spoustou výčitek respektují, ale doopravdy se potřebují.

Já umím lavírovat mezi oběma rolemi, ta „správcovská“ mi připadá zároveň formálně jednodušší a víc vyčerpávající. Nemusíte vymýšlet nová pravidla, ovšem striktní dodržování těch stávajících bývá drsná procházka růžovou zahradou (růže mohou mít spoustu trnů a často přerostou).

Je to něco jako jin a jang, když mi odpustíte trochu esoteriky. Svět prostě potřebuje obojí a jedno bez druhého nemá smysl.

PyDeq

Přes všechen respekt k Honzovi nemůžu souhlasit. Já to vidím jako nedostatečnou vyzrálost nás, popsaných programátorů.

Situace, kdy je třeba dodat rychlý prototyp nastávají a nastávat budou. Nejsem-li schopen takovou věc dodat, je chyba ve mně. Je to můj mentální blok, moje „náboženské“ přesvědčení, na kterém nejsem ochoten pracovat.

Stejně tak, každý projekt, dříve nebo později, bude potřebovat vypilovat. Nebaví-li mě takové věci, opět je třeba hledat nedostatky ve mně a ne se schovávat do škatulky „kolonizátor“. Tím spíše, nejsem-li schopen napsat ani prototyp tak, aby byl jeho kód čitelný a konzistentní.

Rozhodně se tu nehodlám prohlašovat za zralého, všeho schopného programátora. Mám také nedostatky, jak ve svých schopnostech spravovat, tak kolonizovat. Ale nehodlám se obhajovat nějakou nálepkou. Naopak. Čím více nálepek dostanu, tím více udělám pro to, abych se jich zbavil.

NULL

Hezký článek, celkem mne to i pobavilo ze začátku, ale pak to zase přišlo – odhaduji že autor je kolonizátor – všechny odstavce jsou vyvážené až na „Házení špíny“, kde se mluví pouze o házení „správci“ na „kolonizátory“. Každý nechť se přesvědčí sám a vzpomene, jestli mu třeba nějaký aktivní kolega s 3deními zápaly někdy nevzpílal, že píše moc komentů, nebo že prostě refaktoring je tak maximálně pro IBM atd . případně on sám nepeskoval kolegu že se s tím moc maže a stejně je to jenom „proof of concept“ …

NULL

Aha, tak to potom jo, nějak mi uniklo ze se autor doznal ;-) a pak to ma samozřejmě hned jine vyznění. Tak trošku už právětučný text
začínam byt na podobné pausalizovani alergický, protože se porad jedni do druhých zbytečně naváží – tak proto taková reakce ale tento článek jsem dal az do konce a je dobry a zajímavý

Ales Teska

Nutno podotknout, ze toto cele vychazi z lidske psychologie, zminil bych Myers–Briggs Type Indicator ( https://cs.wikipedia.org/wiki/Myers-Briggs_Type_Indicator ).
Konkretneji se jedna o „kolizi“ druheho pismena: Sensing vs. Intuition.
A priroda jiz doiterovala svym agilnim pristupem, ehm tedy evoluci, k idealnimu zastoupeni jednotlivych typu ve spolecnosti. Proto mame kolem 85% „spravcu“ a 15% „kolonizatoru“, nejen v programatorine, ale vsude kolem nas. Take nezapominejte, ze priroda neni digitalni ale analogova, takze se nejedna o ‚boolean‘ ale o pomerne zastoupeni vlasnosti „spravce“ vs. „kolonizatora“.

A protoze mame cas vanocni, coz je svatek „spravcu“, tak se primlouvam o zvysenou toleranci „kolonizatoru“. Je vedecky prokazano, ze temer kazdy dulezity vynalez v pokroku lidstva byl vytvorem „kolonizatora“.

#GiveFirst

Poznamka pod carou: za MBTI prosim nekamenovat, jsem si vedom vsech plusu i minusu.

Honza

S cim jako spravce prichazim casto do styku je postoj typu: „Nejak to navrhnu, nejak to udelam a vy se o to pak postarejte ale ja uz tu nebudu“. Nakonec bohuzel my pak sedime na porade se svymi nadrizenymi a vysvetlujeme proc nam aplikace jede pomalu nebo proc nam nejde vubec. Ba co vic, jsme tam za ty potizisty paac casto pouzivame vety typu: „S tim design nepocital“ nebo oblibene: „je to feature ne bug“. Myslim se dulezita je komunikace, komunikace, komunikace. Ja dokazu prekousnout i vety typu: „Musime to sbastlit co nejrychlejc a neni cas ptat co se kdo je kdo“ nebo „Je to politicke rozhodnuti tak to tak udelejme“, ale chci aby to bylo nekde cerne na bilem protoze to je pak hlavne nase zoodpovednost. Na druhou stranu vyvojaru kolinazatoru, kteri umi komunikovat smerem k nam si nesmirne vazim a vzdy to pro me byla uzasna zkusenost s nimi pracovat.

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.