Category Archives: Uncategorized

Jak na problémy

Postupem času mi začíná vadit, že lidé mají veliký problém s řešením problémů. Protože mě se mi toto postižení také nevyhýbá, tak jsem si to tu chtěl trochu ujasnit. Přitom je to tak jednoduché. Pokud se vyskytne nějaký problém, je potřeba postupovat následovně.

  1. Rozhodnout se, jestli chceme problém řešit.
  2. Najít příčinu
  3. Napravit problém, pokud to stojí za to
  4. Pokud problém přetrvává, začít znovu od začátku.

Je to jednoduché jako facka, ale přesto se u jednotlivých bodů zastavím

Rozhodnout se, jestli chceme problém řešit

Bože, dej mi sílu, abych změnil věci, které změnit mohu,
dej mi trpělivost, abych snášel věci, které změnit nemohu
a dej mi moudrost, abych obojí od sebe odlišil.
Fridrich Öttinger

Ano je to tak, ne všechny problémy si zasluhují být vyřešeny, ne všechny problémy vyžadují, abychom je řešili my. Ne všechny problémy vyřešit dokážeme. Uznávám, v ideálním světě bychom se po každém problému měli vrhnou a okamžitě ho rozcupovat na kousky. V realitě to bohužel nejde. Máme jen jednu hlavu a problémů se nám do ní moc nevejde. Proto je potřeba se pokaždé zamyslet, jestli nemáme něco důležitějšího na práci.

Dokonce existují i problémy, které dokáže někdo jiný vyřešit lépe než my. V takovém případě šup s problémem pryč. Je to těžké. Zvlášť když jste jako já nejlepší na světě. Ale nebojte, vaší nenahraditelnosti trocha delegování neuškodí.

Najít příčinu

Něco je potřeba udělat. Toto je něco. Tudíž je toto potřeba udělat. Sir Humphrey Appleby

K tomuto bodu snad není potřeba nic dodávat. Než můžu problém napravit, musím najít příčinu! Opravdu najít, ne jen si něco myslet. Je potřeba zašpinit si ruce, nasbírat data, udělat měření, zeptat se nezávislých expertů, cokoliv. Tato fáze na rozdíl od předchozích chce nějakou práci, ale věřte mi, vyplatí se to.

Napravit problém, pokud to stojí za to

Cesta do pekla je dlážděna dobrými úmysly.

Pokud znám příčinu, tak už obvykle vím, jak problém vyřešit. Nejlepší je příčinu odstranit. Pokud by to bylo moc složité nebo pracné, můžeme se pokusit řešit negativní následky. Ale to je až záložní varianta. Pokud neodstraním příčinu, tak problém obvykle vyhřezne někde jinde. Tak jako tak, je důležité je si znovu porovnat náklady na řešení se současným stavem. Některá řešení totiž přináší víc škody než užitku.

Pokud problém přetrvává, začít znovu od začátku

Pokud něco nefunguje, dělejte toho víc.
První pravidlo špatného managementu

Jsou i lidé méně dokonalí než já, kteří každý problém nevyřeší hned na první pokus. Některé problémy také mohou mít víc příčin. Pokud tato situace nastane, je potřeba začít od začátku. Ano od bodu jedna. Je těžké opustit problém, který jsme nedořešili, ale vždycky dává smysl, zamyslet se jestli je to ještě aktuální nebo jestli neexistuje někdo kvalifikovanější. Rozhodně není radno přeskakovat opětovné hledání příčin.

Tak co, zní to rozumně, že? Tak proč to sakra neděláme? Proč to všelijak přeskakujeme, prohazujeme a podobně? Čert ví, ale pro zajímavost si tu ještě sepíšu alternativy, s kterými se dnes a denně potkávám.

Hop sem, hop tam

Vidím problém, vrhnu se na něj. Vidím další, hrr na něj. Jéé další, ten taky musím vyřešit. A už to jede. Toto se mi stává každý týden. Jak se tomu dá zabránit? Agilisti to za nás vyřešili. Stačí mít seznam, pěkně seřazený podle priority a nové problémy zapisovat na místo, které jim náleží. Až se problém dostane navrch, tak ho vyřešíte. Odborníci tento přístup označují termínem „průser driven developement“. Zní to hanlivě, ale mě se to líbí. V PDD vždy řešíme největší průser. A to až do té doby, než ho snížíme natolik, že klesne pod druhý největší nebo než něco jiného aktuálně největší průser přeroste. Dagi by namítnul, že tomu chybí koncepce. On je takový pečlivý a systematický. Má pravdu, ale i PDD je mnohem lepší než chaotické řešení potíží bez ohledu na jejich prioritu.

Řešení problému bez znalosti příčiny

Dvakrát měř, jednou řež.
Teta Kateřina

To je přístup, který mě vytáčí úplně nejvíc. Mám problém. Myslím si, že znám řešení. Tak nepátrám po příčině a rovnou začnu řešit. Pokud je to řešení levné a rychlé, tak proč ne. Ale viděl jsem nespočet zdlouhavých a nákladných pokusů o řešení problému bez znalosti příčin. Není nic zoufalejšího, než vidět tým, který se několik měsíců pachtí s řešením, aby nakonec zjistil, že problém zůstal nebo se dokonce i prohloubil.

Co s tím? Dělejte to jako v Google. Bez znalosti dat se nepouštějte do žádných větších akcí. Já chápu, že naprosto přesně víte jak problém vyřešit. Dokud mi ale neukážete důkazy, tak vám nabídnu svoji zázračnou hadí mastičku. Ta pomáhá na všechno, takže určitě vyřeší i vaši potíž.

Řešení hledá problém

Znáte to, už dlouho chcete změnit stávající stav. Víte, že tak jak to je, je naprosto špatně. Víte dokonce i jak by to mělo být správně. Ale kvůli zatracenému PDD vás k tomu nechtějí pustit. Prý jsou důležitější věci. Ale teď se konečně objevil problém, který se tou vaší vysněnou změnou určitě vyřeší. Hurá. Akorát, jsme tak kde jsme byli. Ano, pravděpodobně se věci posunou lepším směrem. Je tu ale velké riziko, že pokud to ten problém neřeší, tak vás PDD přeruší v půlce a donutí najít a vyřešit příčinu. Můžete mít samozřejmě pravdu nebo i kus štěstí a vaše vysněná změna může daný problém řešit. Ale i tak bych doporučoval nejdřív si to ověřit. Prostě nezbývá než měřit, dělat pokusy a pátrat.

Uznávám, že věci příliš zjednodušuji. To víte, jsem takový přízemní člověk. Velké ideály mi nic neříkají. No tak dobře, uznávám, že občas je potřeba dělat věci bláhové, bez racionálních podkladů, bez rozmyslu. Občas je potřeba zariskovat a prostě to zkusit. Je ale nezbytné to dělat vědomě. Je nutné si přiznat, že nevíme co děláme, ale že nám nic jiného nezbývá. Neuvěřitelně mě ale štve, když lidi předstírají, že jednají racionálně a přitom se chovají chaoticky. Co hůř, nejvíc mě to štve u sebe.

Zabijáci motivace

Dneska tu budu trochu řešit motivaci. Je to téma, které mě dlouhodobě provází a včera mi došlo, že bych si o tom zase chtěl něco napsat. Takže se nedivte, že tu píšu to samé co se dočtete v chytrých knížkách, píšu si, protože se mi chce.

Já mám totiž takový problém. Veliký problém. Peníze mě vůbec nemotivují. Jasně, rád si nechám za práci dobře zaplatit. Na můj pracovní výkon to ale nemá žádný vliv.

Takže musím hledat motivaci jinde. Abych byl přesný, ani ne tak jinde, jako spíše uvnitř. Programováním se živím, protože mě to jednoduše baví. Kromě toho, že můžu sedět v teple a nemusím zvedat nic těžkého, tak mě baví řešit zapeklité problémy, bavíme mě vymýšlet jak to dělat co nejlépe. Mám rád pocit, že jsem něco dokázal, něco vytvořil, někomu pomohl. To tvoření je pro mě hrozně důležité. To je důvod, proč se pořád držím kódování. Člověk může přetvářet myšlenky v něco, co se hýbe, občas i funguje a je to k něčemu dobré. Dobrá, nedá se na to sáhnout, ale tím lépe. O to je člověk svobodnější. Nemusí se babrat s ničím fyzickým, může přímo přetvářet myšlenky.

A myslím, že v tom nejsem sám. Spousta známých i kolegů dobrovolně pracuje o víkendech a dovolených protože je to prostě baví. To se ale máme, v práci děláme to co nás baví. Hurá. Hmm.

Jak to, že tedy nejsem šťastný a spokojený hypervýkonný pracant? Proč v práci věčně držkuju, šéfovi odmlouvám a jinak podvracím morálku? Protože mě neuvěřitelně ničí zabijáci motivace. Seznamte se tedy prosím s novodobými jezdci apokalypsy

Schůze a papírování

Pokud je kódování supersíla, pak jsou schůze kryptonit.

Všichni milujeme schůze, proto si na ně nosíme laptopy, abychom si potěšení ještě znásobili nějakým tím kódováním. O tom snad ani není potřeba mluvit, proto se přesunu k dalším položce v této kategorii, k papírování.

Teď, ve století ovocného netopýra už nepapírujeme papírově, ale elektronicky. O to hůř, papírování je mnohem snazší, takže toho člověk zvládne mnohem víc. Tady musím uznat, že k něčemu papírování může být dobré. Ale přimlouvám se za nějakou rozumnou míru. Zamysleme se občas, kolik nás to všelijaké vykazování, odškrtávání, předávání a čertví co ještě stojí a kolik nám to přináší.

Zmar

To mě přivádí k další kategorii a tou je zmar. Už je to pár let, co jsem dělal u jednoho nejmenovaného růžového telefonního operátora. Na produkci jsem dostal své první čtyři řádky kódu po šesti měsících! Moji radost z tohoto kolosálního úspěchu kalil fakt, že se tam to mé veledílo dostalo omylem. Od té doby už jsem se s takovým pocitem zmaru nesetkal. Ale je to klasický a oblíbený zabiják motivace.

Zkuste sami zavzpomínat, stalo se vám někdy toto? Na něčem makáte. Je to hrozně důležité. Zachrání to planetu od hladomoru. Vyhraje vám to důležitou zakázku. Vydělá balíky peněz. Je to fakt něco. Už je to hotové. Super, můžeme to nasadit. Cože marketing si to rozmyslel? Už to nepotřebujeme? Poprvé se s tím člověk smíří. Podruhé to taky nějak skousne, ale potřetí už vás to fakt srazí do kolen.

Vyrušení a multitasking

Dělám na něčem co mě fakt baví. Už to mám skoro vyřešené. Najednou na mě začne mávat kačer. To mi Adium signalizuje, že se mnou chce někdo četovat. To bude další obdivovatel, kterého můžu ohromit svoji genialitou a bezmeznými znalostmi. Bravurně mu odpovím. Ale i tak mi to pár minut zabere. Cože jsem to předtím dělal? Nevím. Nevadí, využiji vyrušení a kouknu do mailu. Cože, někdo na mě hodil bug? Critical. Hmm, vždyť je to v jiné komponentě. Něco jsem řešil. Co to vlastně bylo? Nemá cenu se k tomu vracet, za pět minut mám schůze a po ní oběd. Odpoledne to samé. Cože jsem to vlastně za dnešek udělal? Nevím.

Dneska jsem si schválně zapisoval co všechno jsem dělal, u dvacátého řádku, někdy ve dvě odpoledne mě to přestalo bavit. Co s tím? Někde mají vyhrazených deset minut v každé hodině na vzájemnou komunikaci. Kolega má v kalendáři vyznačené dopoledne, že nechce být vyrušován. Moc mu to nefunguje. Já vážně přemýšlím, že si to vyhlásím soukromě. Něco v tom smyslu, že pokud minuta nezačíná na 5 nebo hodina není větší než 13 tak nechci být rušen. Alespoň to posílí moji pověst excentrika. Nebo si pořídím klobouk neviditelnosti. Když ho budu mít na hlavě, tak budu předstírat, že tam nejsem. Hmm, abych to s tou svojí pověstí nepřehnal.

Povyšování

Každý je povyšován na úroveň své nekompetence.

Ano, pro mě je povýšení demotivující faktor. Jsem fakt divnej. Ale má to logiku, každá vyšší funkce sebou přináší více schůzí, papírování a vyrušení. Hloupě jsem se nechal jmenovat architektem a teď za to pykám. Zatracená ješitnost.

No, ještě jsem měl pár témat, která jsem tu chtěl rozebrat. Třeba trestání za dobré skutky, řízení metrikami a podobně. Padla z toho na mě ale nějaká chmura. Takže nechám doplnění seznamu na každém z vás.

Abych si spravil náladu, tak se zamyslím nad tím co dělat, když se v takové situaci ocitnete. Nejdůležitější je pokusit se to změnit. Štve vás něco? Tak to změňte. Že jste na to příliš malý pán? Ale jděte. Taky jsem si to myslíval, ale není to tak. Před pár lety jsem tu citoval pana DeMarca.

Osoba, která si nejvíce přeje přehodit tuto zodpovědnost někam výše je přesně tou osobou která ví, že by mohla tuto změnu uskutečnit, ale že to nebude jednoduché.

Zkuste to změnit ze své pozice. Když nevíte jak, tak se seberte, dejte si sraz se šéfem a proberte to s ním. Pak to s ním proberte ještě jednou. Pak znova. Pak pár týdnu počkejte. Pak ještě jednou. No a pak se to třeba pomalu změní.

Místo můžete změnit vždycky, ale věřte zkušenému fluktulantovi. Jinde to o moc lepší nebude. Bude to jiné, ze začátku to bude mnohem lepší, ale pokud jste šikovní, tak vás životní cyklus programátora stejně nemine.

Také pracujete ve spánku?

Je pátek ráno. Mám hotovou implementaci a zbývá už jen zprovoznit integrační testy. První test. Drobný refaktoring a už běží. Jejda je tu ještě jeden. A padá. K čemu sakra je? Nemám potuchy. Kdo ho napsal? Franta? Ale ten už tu nepracuje! Vždyť to sakra musí fungovat. Zkusím změnit toto. Nepomáhá. Co zkusit tamto. Taky nic. Cože to už je oběd? Předělám integrační test na unit test. Sláva teď se to dá debuggovat. Cože, takhle se to přeci chovat nemůže. File.isDirectory vrací false a File.getAbsoluteFile().isDirectory() vrací true. To není možné. V tom počítači snad straší, vždyť to musí jet. Sakra musím na schůzi. Dvě hodiny v čudu. Musím udělat pár pokusů, jestli to není SecurityManagerem. Není. Cože, to už je pět? Mám pravidlo, že v pět odcházím. Ještě ho chvíli porušuji. Kašlu na to, jdu domů. Musí to počkat na pondělí. V noci ve dvě ráno se probudím, otevřu oči a znám řešení. Vždyť je to tak jednoduché!

Předpokládám, že se vám něco podobného také někdy stalo. Řešení zapeklitých problémů často člověka napadá, když na nich nepracuje. Při jízdě autem, ve sprše, při cvičení, na záchodě a i ve spánku. Někomu údajně přicházejí nápady ve snech, mě se obvykle zjevují hned po probuzení. Jednu dobu jsem se dokonce bál, že mě kolegové budou podezírat z toho, že nejsem tak neskonale geniální jak ve skutečnosti jsem. Že si budou myslet, že mám doma poradce, který mi všechno poradí. Večer nikdy nic nevím a ráno mám řešení. Podezřelé, není-liž pravda?

Samozřejmě nejsem první, kdo si toho jevu všiml, takže to tu nebudu moc rozebírat. V zásadě jsem si tu jen chtěl zaznamenat tuto radu.

Nemůžeš na to přijít? Tak vypadni od toho počítače a jdi dělat něco jiného.

Ideálně něco, u čeho se nedá myslet na programování. U mě je to těžké, na programování dokážu myslet skoro u všeho. Ale je pár věcí u kterých to nedovedu. Třeba kreslení. Nebo spánek. Někdo dokonce tancuje, ale tak špatně jsem na tom ještě nikdy nebyl.

A jsou to právě ty činnosti, které nás donutí to pustit z hlavy a po kterých nás to prostě napadne. Nevím čím to je. Psychologové si myslí, že to vědí, ale moc bych jim nevěřil. Pokud by vás snad zajímali detaily, tak si přečtěte Pragmatic Thinking and Learning, tam je to rozpitvané dost. Kdo nerad čte může si pustit video o Hammock Driven Developmentu.

Já už budu končit, musím vypadnout od počítače a vymyslet, jak přesvědčit šéfa, aby mě platil i za čas kdy spím.

Hammock Driven development