7 tipů, jak hledat bugy jako slavný detektiv

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.

Tento článek vznikl pro firemní blog Trigama International s.r.o., originál najdete zde.

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ů!

 
28. 8. 2019 20:25 humor, programming


Tagy

informace (20), návod (2), mysql (1), užitečné (7), internet (1), komix (99), ironie (1), humor (99), Bůh (2), škola (38), plánování (1), Čas (2), hříchy (1), otroctví (1), esej (4), Erasmus (24), project management (2), programming (17), teamwork (1), bad code (1), práce (2), clean code (1), good architecture (1), společnost (3), rodičovství (2)

Hledání

Odběr zpráv

RSS feed Blog (RSS)