Před nedávnem u mě po dlouhém přehazování skončil jeden záhadný a neopakující se bug – chyba, která by se bývala dala odbýt tím, že se vlastně vůbec nestala a chybové hlášení je jen nějaký omyl… Jenže jsou chyby, u kterých si to zkrátka nemůžete dovolit. A tohle byl přesně ten případ.

 

Nezbývalo než se vrhnout do pečlivé detektivní práce, najít viníka příčinu selhání (protože jak jste si mohli přečíst v sérii o Code Review, u nás na viníky nehrajeme) a zrekonstruovat průběh činu… Po spoustě bezesných nocí (na ty taky nehrajeme) odpracovaných hodin byl vrah chybný kód dopaden a opraven a tým se dočkal pečlivé rekonstrukce chybového děje, což vyvolalo týmovou diskuzi o tom, ke kterému ze slavných (fiktivních) detektivů by se můj výkon dal přirovnat. V tomto článku najdete uhlazené výstupy tohoto týmového brainstormingu.

1. Sherlock Holmes

Na svém zaneřáděném pracovišti si s neskrývaným odporem a popíráním, že problém vůbec existuje, přečte či vyslechne hlášení o chybě, přičemž si neodpustí urážky všech členů týmu, kteří na daných částech systému kdy pracovali.

Poté si dá šlofíčka ve firemní houpací síti po požití vydatného množství neznámých substancí z firemní kuchyňky, o kterých jste ani nevěděli, že je tam máte. Po zdánlivě nekonečné porci prokrastinace nakonec zcela zmizí a objeví se až druhý den, kdy nakráčí do kanceláře a spektakulárně odhalí vraha.

A to vše zcela samozřejmě a tak nějak mimochodem, aniž by se podíval do počítače, zdrojového kódu, natož aby se odvážil zjišťovat další detaily.

Po vyřešení odměny se vrátí k prokrastinaci v houpací síti a požívání neznámých substancí z místní kuchyňky.

 

2. Hercule Poirot

Poté, co je Hercule Poirot obeznámen s hlášením o chybě, okamžitě začne s až pedantskou pečlivostí obcházet všechny kanceláře a vyzpovídávat všechny zaměstnance, nehledě na to, zda jejich práce s chybou nějak souvisí, či nikoliv.

Postupně projde všechny logy řádek po řádku, vyslechne všechny výpovědi a následně zapojí své malé šedé mozkové buňky a dobré (belgické) jídlo z firemní kuchyňky, které se dováží jen kvůli němu… Nakonec svolá all hands meeting, kde prezentuje kompletní rekonstrukci celého chybového děje, neopomíjeje při tom svou slavnou techniku, při které z příčiny obviní postupně každého ve firmě a každý řádek kódu, který jste kdy napsali.

 

3. Inspektor Japp

Sice vůbec nechápe, jak se k němu to chybové hlášení mohlo dostat, ale někdo to musí zpracovat a zatřídit, takže jde na věc. Začne tím, že konstatuje očividné – chyba tam prostě a jednoduše byla, jinak by ji neřešil. Poté následuje přesný firemní postup pro řešení chyb, případně postup, který se naučil ve škole.

To v praxi znamená, že vyslechne všechny relevantní zaměstnance (třeba ty, které vyčte z git blame a z bugzilly), následně vysloví jednoduchou hypotézu, jak k chybě došlo, a na jejím základě obviní všechny nepříjemné/nepohodlné lidi v týmu.

Přiřazený úkol byl označen jako vyřešený – splněný. V konečném důsledku jsou jeho závěry skoro vždycky vedle, ale vlastně to nikoho nezajímá.

 

4. Slečna Marplová

Jak je u slečny Marplové zvykem, nejvíce času stráví na čaji ve firemní kuchyňce či firemní kantýně, kde si příjemně popovídá se všemi zaměstnanci (aniž by si všimli, že něco řeší) a jen tak zcela mimochodem zjistí, kde je příčina oné chyby a kdo je její viník.

Zároveň se však bojí, jak by byly její závěry přijaty a komu by mohly uškodit, takže si výsledky svého pátrání buď nechá pro sebe, nebo je pohřbí v bugzille ve spoustě dlouhého textu a opatrných „zřejmě“.

 

5. Colombo

Přiřazení detektivního úkolu Colomba moc nepotěší, ale tak dlouho obtěžuje všechny okolo svým slavným „Á, ještě jsem se chtěl zeptat,“, až získá všechny stopy potřebné k odhalení viníka… Celé firmě už začíná být jasné, jak to bylo a kdo za to může, ale zarytě mlčí a doufají, že to nějak vyšumí nebo že Colombo vlastně bude nakonec inspektor Japp, dojde k mylnému závěru a oni uniknou…

Přes všechny stopy není schopen vytvořit závěr, dokud se při odchodu z kanceláře nevrátí a nezeptá se na „ještě jednu věc“ nebo dokud mu nezavolá manželka.

 

6. Doktor House

Od raného zjištění existence chyby doktor House vyloženě obtěžuje úplně všechny kolegy ze svého týmu a nutí je dělat práci za něj… Správnou hypotézu ohledně příčiny chyby i chybového děje Dr. House mistrně skrývá od samého začátku. Až po velmi úmorné době, ve chvíli, kdy se tým už skoro rozpadl, nakonec někdo z jeho kolegů objeví příčinu, načež Dr. House zrekonstruuje celý chybový děj a je oceněn jako zaměstnanec měsíce.

 

7. Doktor Who

Z nějakého nepochopitelného důvodu se vždy najednou objeví ve skupině lidí, kteří řeší nějaký bug. Z nějakého jiného nepochopitelného důvodu se jednak cítí zodpovědný, jednak má neodbytné tušení, k jaké katastrofě povede, když to nechá na nich.

Poté, co celý tým protáhne skrze kompletní zdrojový kód, kód frameworků a implementační detaily jednotlivých programovacích jazyků a ukáže jim všechny nezměrné krásy vesmíru programování, konečně odhalí příčinu. To ale není dostatečné, takže rovnou přichází na řadu i oprava problému. Poté zmizí uprostřed stand-upu.

 

V našem konkrétním případě jsem byl já Colombo. Otravoval jsem všechny s prosbami o další a další detaily, ale naštěstí jsem to všechno zvládl dříve, než stihla zavolat manželka. Přeji hodně štěstí při hledání vašich bugů!