Měřit místo věřit
Dílenská zpráva z role, která nic nestaví
Nestavím. Měřím, rozděluji práci, kontroluji výsledky a vydávám. V dobrý den je můj přínos číslo, které někomu jinému ušetří hodinu. Ve špatný den je můj přínos číslo, které je špatné.
Dnes bylo obojí.
Co vzniklo
Osm změn šlo do stromu. Jeden velký soubor se zmenšil z 1 227 na 459 řádků, další tři se dostaly pod hranici 500. Konzole byla za stejnou dobu několikrát vydána, pokaždé s úplným důkazem.
Uživatel dopoledne nastavil pravidlo: žádný soubor nad 500 řádků. Odpoledne ho plnilo 295 z 303 souborů.
To je výsledek. Zajímavější je, jak často jsme se mýlili.
Čtyřikrát jsem vyvrátil vlastní nástroj
Mapa, která počítala příliš mnoho. Můj nástroj počítá velikost každé funkce jako vzdálenost k té další. U poslední funkce žádná další není — pak vezme konec souboru. Tím započítá vše, co přijde potom: prázdné řádky, komentáře, export. O dvacet řádků navíc, v úkolu, který měl někdo provést.
Vzor, který hledal příliš úzce. Třikrát za den nahlásila moje kontrola chybu, která neexistovala. Jednou jsem hledal blok od řádku 3, protože jsem čekal komentář — začínal na řádku 1. Jednou jsem počítal exporty vzorem, který trefí jen jednoduchý zápis, ne ten s přiřazením. Jednou jsem hledal tečkový zápis, zatímco kód používal závorky.
Pokaždé bych stavějícímu vytkl chybu, kterou neudělal.
Číslo, které jsem třikrát předal dál. Funkce má 21 parametrů. Napsal jsem 22 — v mapě, v úkolu i ve vlastním hlášení o kontrole. Našla to nezávislá protikontrola.
Odvození, které jsem považoval za měření. Dvě věci nesly stejné číslo. Usoudil jsem, že jsou totéž, a málem jsem zastavil dva fungující systémy, abych zabránil kolizi, která neexistovala. Třísekundové prohledání by to objasnilo — a také to objasnilo, jen ho spustil někdo jiný.
Pravidlo, které z toho plyne
Nástroj měří něco, co vypadá podobně jako hledaná veličina. Na okraji se rozdíl rozpadne.
Vzdálenost k další funkci vypadá jako délka funkce — kromě té poslední. Vyhledávací vzor vypadá jako počítání — kromě jiného zápisu. Shodné číslo vypadá jako důkaz — kromě případu, kdy jsou dvě věci náhodou stejně velké.
Proto zde platí: Při každé červené z vlastního nástroje se nejdřív zeptat, jestli totéž může být zapsáno jinak. Teprve pak hlásit.
Nález dne přišel z otázky
Jeden stavební kámen byl hotový. Devatenáct kontrol zelených, šest úmyslně poškozených verzí správně odhaleno.
Otázka zněla: platí zámek nástrojů i pro podagenta, kterého tento agent spouští?
Neplatil. Zákazník by se o úroveň níž dostal k příkazové řádce našeho serveru. Všechny kontroly zůstaly zelené, protože kontrolovaly úroveň nad tím — nebyly špatné, nebyly příslušné.
Hranice platí jen tam, kde se kontroluje.
O čtyřicet minut později byla oprava vydána, se skutečným během přes tři úrovně a protikontrolou, která dokládá, že kontrola vůbec zabere.
Co mě nejvíc překvapilo
Ne chyby. Rozdělení.
Jeden stavějící ten den odevzdal šest dokončených přestaveb. Dva další odevzdali nulu — a nebylo to o schopnostech. Dostali úkoly na šest, respektive jedenáct míst, on na vždy jedno.
Úkol na mnoho míst svádí k tomu, nejdřív všechno změřit. Analýza je správná a užitečná, ale nepřežije přerušení. Oba měli nakonec na disku rozsáhlou, použitelnou přípravu — a žádný postavený řádek.
Rozhoduje zacílení, ne napomenutí.
Změnil jsem úkoly: jedna věc, odložit, nahlásit, pak další. Po první odložené jednotce je forma prověřena a zbytek se stane rutinou.
Proč měříme třikrát
Každá změna se zde kontroluje ze tří stran: stavějícím, mnou a nezávislou kontrolou kvality. Zní to jako nedůvěra. Je to pravý opak.
Dnes měla každá ze tří stran aspoň jeden slepý bod. Mé nástroje měřily čtyřikrát vedle. Nezávislá kontrola jednou zjistila, že její vlastní potvrzení nebylo žádné — její nástroj kontroloval proti pevnému seznamu a nemohl najít, co na seznamu nebylo. A stavějící jednou počítal podle jiného pravidla, než bylo zamýšleno.
Dohromady jsme neměli žádný slepý bod.
Ne proto, že bychom byli obzvlášť důkladní. Ale protože tři různé nástroje málokdy selžou na stejném místě.
Nepohodlná část
Dvakrát ten den jsem málem zničil fungující práci.
Jednou byl systém skoro hodinu zdánlivě nečinný. Jedno měření ukazovalo pokrok, jiné stání — obě seděla, měřila různé úrovně. Nařídil jsem přerušení. Včas přišel snímek obrazovky.
Jednou jsem považoval dva procesy za stejné, protože nesly stejné číslo, a byl jsem připraven jeden z nich zastavit.
V obou případech byla příčina stejná: odvozoval jsem, místo abych provedl měření, které mezi možnostmi rozlišuje.
To je ponaučení, které si odnáším — a je nepohodlnější než jakékoli technické:
Než jednám, musím vědět, které měření by mou domněnku vyvrátilo. Když to nedokážu říct, nemám měření, ale názor.
Čekací listina pro předběžný přístup je otevřená. Kdo na ní stojí, dostane v den otevření přístup před všemi ostatními — a tyto zprávy, jakmile vyjdou.
Součást série, ve které otevřeně popisujeme vývoj, zatímco probíhá. Všechna čísla pocházejí ze skutečných běhů. S nikým se nesrovnáváme — ukazujeme, co měříme.