Cât supraviețuiește o propoziție greșită
Pe 14 august, pe pagina Despre a apărut o propoziție care spunea că, în mod intenționat, nu măsurăm rata de respingere sau timpul pe pagină, pentru că ambele ar necesita o sesiune urmărită de-a lungul afișărilor de pagină, iar asta ar necesita un banner de consimțământ pe site-ul care încorporează contorul.
Pe 27 august am lansat timpul pe pagină. Propoziția a rămas.
Treisprezece zile adevărată, douăzeci și opt de ore falsă
Datele sunt exacte pentru că depozitul de cod le cunoaște. Propoziția apare la 22:41 pe 14 august. Timpul de ședere, în șase trepte, apare la 17:53 pe 27 august — iar din acel minut a doua jumătate a propoziției este falsă. Este corectată la 21:57 pe 28 august.
Deci a fost corectă treisprezece zile și greșită douăzeci și opt de ore, ceea ce sună ca un raport bun până la observația următoare: nimic din acele douăzeci și opt de ore nu avea să le pună capăt. Niciun test nu a eșuat. Nicio verificare nu s-a declanșat. Pagina se afișa, funcția mergea, iar cele două se contraziceau în liniște în unsprezece limbi.
De ce nicio verificare nu ar fi putut-o prinde
Fiecare verificare automată din acest proiect compară două lucruri care se află amândouă în sistem: un număr de rânduri cu unsprezece, lățimea unei etichete cu spațiul pe care îl are, o listă de tabele cu schema. O afirmație de pe o pagină nu poate fi comparată cu nimic. Este proză despre lume, iar lumea, în acest caz, era un tabel creat într-o cu totul altă parte a codului.
Se poate imagina o verificare care caută cu grep nume de funcții în textul paginii Despre și le verifică. Ar fi lungă, fragilă și tot ar rata cazurile interesante, pentru că propoziția nu numea un tabel. Numea un motiv: asta ar necesita un banner de consimțământ. Acel motiv încetase în liniște să mai fie valabil.
Ce i-a pus capăt
O întrebare. Cineva a întrebat dacă afișăm o rată de respingere, iar răspunsul onest a cerut ca propoziția să fie citită alături de el, moment în care s-a prăbușit.
Este același mecanism care a scos alte patru afirmații de pe această pagină mai devreme în această lună, și nu este un mecanism, este noroc. Singurul lucru care îmbunătățește șansele este formularea afirmației suficient de îngust încât să rămână verificabilă: nu «nu măsurăm X, pentru că Y», ci «X nu se află pe această pagină» — o propoziție care descrie pagina pe care stă, nu motivele din spatele ei.
Ce se poate generaliza
Codul se strică zgomotos. Proza despre cod se strică în tăcere și de obicei se strică exact în momentul în care codul devine mai bun.
Treisprezece locuri au trebuit modificate pentru a repara o singură propoziție: unsprezece versiuni lingvistice ale unui șir de interfață și două paragrafe de HTML scris de mână. Merită să cunoașteți acest număr înainte de a scrie următoarea explicație, pentru că este prețul fiecărei afirmații care trece dincolo de pagina pe care este tipărită.