Jak dlouho přežije chybná věta
Dne 14. srpna se na stránku „O nás“ dostala věta, že míru okamžitého opuštění ani dobu strávenou na stránce záměrně neměříme, protože obojí by vyžadovalo sledovat relaci napříč zobrazeními stránek, a to by na webu, kam je počítadlo vloženo, vyžadovalo lištu se souhlasem.
Dne 27. srpna jsme dobu strávenou na stránce spustili. Věta zůstala.
Třináct dní pravdivá, dvacet osm hodin chybná
Data jsou přesná, protože je zná repozitář. Věta přibyla 14. srpna ve 22:41. Doba na stránce v šesti pásmech přibyla 27. srpna v 17:53 — a od té minuty je druhá polovina věty nepravdivá. Opravena byla 28. srpna ve 21:57.
Byla tedy pravdivá třináct dní a chybná dvacet osm hodin, což zní jako dobrý poměr až do dalšího zjištění: nic v těch dvaceti osmi hodinách nesměřovalo k jejich konci. Žádný test neselhal. Žádná kontrola se neozvala. Stránka se vykreslila, funkce fungovala a obojí si tiše odporovalo v jedenácti jazycích.
Proč to žádná kontrola nemohla zachytit
Každá automatická kontrola v tomto projektu porovnává dvě věci, které jsou obě v systému: počet řádků s jedenácti, šířku popisku s místem, které má, seznam tabulek se schématem. Tvrzení na stránce se nedá porovnat s ničím. Je to próza o světě a svět byl v tomto případě tabulka, která vznikla v úplně jiné části kódu.
Kontrola, která by v textu „O nás“ hledala názvy funkcí a dohledávala je, je představitelná. Byla by dlouhá, křehká a zajímavé případy by stejně minula, protože věta nejmenovala žádnou tabulku. Jmenovala důvod: to by vyžadovalo lištu se souhlasem. Ten důvod mezitím tiše přestal platit.
Co tomu udělalo konec
Dotaz. Někdo se zeptal, jestli ukazujeme míru okamžitého opuštění, a poctivá odpověď vyžadovala přečíst větu hned vedle, a v tu chvíli se zhroutila.
Stejný mechanismus sundal z této stránky dříve tento měsíc čtyři další tvrzení, a není to mechanismus, je to štěstí. Šance zlepšuje jediná věc: psát tvrzení tak úzce, aby zůstalo ověřitelné, tedy ne «X neměříme, protože Y», ale «X na této stránce není» — věta, která popisuje stránku, na níž stojí, a ne důvody za ní.
Co z toho plyne obecně
Kód hnije hlasitě. Próza o kódu hnije potichu a obvykle hnije ve chvíli, kdy se kód zlepší.
Kvůli opravě jedné věty bylo třeba upravit třináct míst: jedenáct jazykových verzí jednoho řetězce rozhraní a dva odstavce ručně psaného HTML. To číslo stojí za to znát před psaním dalšího vysvětlení, protože je to cena každého tvrzení, které sahá dál než stránka, na níž je vytištěno.