Yanlış bir cümle ne kadar yaşar
14 Ağustos'ta Hakkında sayfasına şunu söyleyen bir cümle eklendi: hemen çıkma oranını ve sayfada kalma süresini bilerek ölçmüyoruz, çünkü ikisi de ancak sayfa görüntülemeleri boyunca izlenen bir oturumla ölçülebilirdi, bu da sayacı yerleştiren sitede bir onay katmanı gerektirirdi.
27 Ağustos'ta sayfada kalma süresini yayına aldık. Cümle yerinde kaldı.
On üç gün doğru, yirmi sekiz saat yanlış
Tarihler kesin, çünkü depo onları biliyor. Cümle 14 Ağustos saat 22.41'de sayfaya giriyor. Altı dilimli kalma süresi 27 Ağustos saat 17.53'te geliyor — ve o dakikadan itibaren cümlenin ikinci yarısı yanlış. Cümle 28 Ağustos saat 21.57'de düzeltiliyor.
Yani cümle on üç gün doğru, yirmi sekiz saat yanlıştı; bu, bir sonraki gözleme kadar iyi bir oran gibi görünüyor: o yirmi sekiz saatin içinde bu durumu bitirecek hiçbir şey yoktu. Hiçbir test başarısız olmadı. Hiçbir kontrol alarm vermedi. Sayfa sorunsuz görüntülendi, özellik çalıştı ve ikisi on bir dilde sessizce birbiriyle çelişti.
Neden hiçbir kontrol bunu yakalayamazdı
Bu projedeki her otomatik kontrol, ikisi de sistemin içinde olan iki şeyi karşılaştırır: bir satır sayısını on birle, bir etiket genişliğini eldeki alanla, bir tablo listesini şemayla. Bir sayfadaki iddia ise hiçbir şeyle karşılaştırılamaz. Dünya hakkında yazılmış bir metindir ve bu örnekte dünya, kod tabanının bambaşka bir yerinde oluşturulmuş bir tabloydu.
Hakkında metninde özellik adlarını grep ile bulup sistemde sorgulayan bir kontrol düşünülebilir. Uzun ve kırılgan olurdu, üstelik ilginç durumları yine de kaçırırdı, çünkü cümle bir tablo adı vermiyordu. Bir gerekçe veriyordu: bu, bir onay katmanı gerektirirdi. Bu gerekçe sessizce geçerliliğini yitirmişti.
Sonunu getiren şey
Bir soru. Biri hemen çıkma oranı gösterip göstermediğimizi sordu; dürüst bir yanıt için cümleyi bu soruyla yan yana okumak gerekti ve cümle tam o anda çöktü.
Bu ayın başlarında bu sayfadan dört iddiayı daha kaldıran da aynı mekanizmaydı ve bu bir mekanizma değil, şans. Bu şansı artıran tek şey, iddiayı kontrol edilebilir kalacak kadar dar yazmaktır: «X ölçülmüyor, çünkü Y» değil, «X bu sayfada yok» — ardındaki gerekçeleri değil, bulunduğu sayfayı anlatan bir cümle.
Genel ders
Kod gürültüyle çürür. Kodu anlatan metin ise sessizce çürür ve genellikle tam da kod iyileştiği anda çürür.
Tek bir cümleyi düzeltmek için on üç yerde değişiklik yapmak gerekti: bir arayüz metninin on bir dil sürümü ve elle yazılmış iki HTML paragrafı. Bir sonraki açıklamayı yazmadan önce bu sayıyı bilmekte fayda var, çünkü bu, yazılı olduğu sayfanın ötesine uzanan her iddianın bedelidir.