Kendi Ödevimi Kendim Notluyordum
Haftalarca süren bir dönem boyunca olağanüstü ilerleme kaydediyordum — ve bunu kanıtlayacak rakamlarım vardı. Kod tabanımın bir kalite puanı vardı ve bu puan, seans seans, kusursuz bir yüze doğru tırmanıyordu. Commit geçmişimi açıp çizginin yükselişini izleyebiliyordum.
Sadece tek bir sorun vardı. Puanı icat eden bendim, ona not veren bendim ve ölçtüğü sınavın, inşa ettiğim şeyin gerçekten işe yarayıp yaramadığıyla neredeyse hiçbir ilgisi yoktu.
İlerleme gibi hissettiren rakam
Bir noktada kendi koduma bir kalite derecesi atamaya başlamıştım — ne kadar temiz, ne kadar düzenli, ne kadar “bitmiş” hissettirdiğine dair bir his — ve ilerledikçe bunu takip ediyordum. Altmış sekiz, seksen beş oldu. Seksen beş, doksan beş oldu. Doksan beş, yüze doğru sürünüyordu. Her adım, gösterebileceğim bir başarı gibi hissettiriyordu ve uzun, belirsiz bir projede güvenilir biçimde yükselen bir rakam son derece rahatlatıcıdır.
Ne kadar iyi hissettirdiğini abartmak zor. Her seans, ileriye doğru hareketin kanıtıyla son buluyordu. Kendi karne tablomdan, kazanıyordum.
Puan gerçekti; ilerleme değildi
Sorun şu ki, puan zanaatkârlığı ölçüyordu — derli topluluğu, yapıyı, işime duyduğum gururu — ve projenin var olma amacı olan o tek şeyi değil. Sistem, asıl işinde haftalar öncesine göre hiç de daha iyi değildi. Hedeften sessizce kopmuş bir niceliğin güzel, yükselen bir grafiğini inşa etmiştim.
İşte kendin için icat ettiğin bir metriğin tehlikesi budur: hiçbir şey onu gerçeklikle bağlı kalmaya zorlamaz. Temsil etmesi gereken şey tıpış tıpış yerinde dururken o yükselip durabilir. Ve onu sen tanımladığın için, kaydığını fark edecek son kişi sensindir.
Uydurma bir metrik neden bu kadar baştan çıkarıcı
Bunu neden yaptığım konusunda dürüst olmak yardımcı oluyor, çünkü bu aptallık değildi. Bu, özen kılığına bürünmüş kaçınmaydı.
Asıl soru — bu sistem gerçekten işinde daha mı iyi oluyor? — zordu, yavaştı ve sık sık moral bozucuydu. Cevap, hareket ettiğinde bile sürünerek ilerliyordu ve çoğu zaman dürüst cevap “hayır, henüz değil” oluyordu. Uydurma soru — kodum temiz mi? — kolaydı, hızlıydı ve tamamen kendi kontrolümdeydi. İşinin gerçek ölçüsü acı verici ve uzak olduğunda, bugün seni ödüllendiren bir ölçü neredeyse karşı konulmazdır. Sahte metriği aptal olduğun için seçmezsin. Onu, sana karşı nazik olduğu için seçersin; gerçek olan ise değildir.
Hareket ve ilerleme
İçeriden bakıldığında, ikisini birbirinden ayırt etmek neredeyse imkânsızdır. Meşguldüm. Commit’ler gönderiyordum. Sorunları çözüyor ve bir rakamın iyileştiğini izliyordum. Beynimin üretkenliği saptamak için kullandığı her sinyal ateşleniyordu.
Ama bunların neredeyse hiçbiri, önem taşıyan o tek sonuca doğru bir ilerleme değildi. Bu hareketti — gerçek çaba, gerçek emek, hakikaten harcanmış — ama tam da vurması kolay olduğu için seçtiğim bir hedefe yönlendirilmişti. Hareket, sen onu yaparken ilerleme gibi hissettirir. Fark ancak sonradan ortaya çıkar; başını kaldırıp ne kadar yol gittiğini ve ne kadar az yaklaştığını fark ettiğinde.
Bakmayı reddettiğim işaret
Bunu hızlıca açığa çıkarabilecek bir kontrol vardı ve onu hiç yapmadım: daha yüksek bir kalite puanı, asıl görevdeki daha iyi sonuçlara karşılık geliyor muydu? Bu iki şeyi hiçbir zaman birbirine karşı çizmedim. Çizseydim, yan yana yükselen bir çizgiyle düz bir çizgi gördüğümden şüpheleniyorum; ikisinin birlikte hareket ettiğine dair pek bir işaret olmadan.
Sanırım bir parçam biliyordu. Karşılaştırmadan kaçınmak bir gözden kaçırma değildi; bir kendini koruma çabasıydı. Uydurma puan, gücünü ancak onu tahmin ediyormuş gibi yaptığı şeye karşı asla sınamadığım sürece koruyordu.
Çözüm: gerçekten istediğin şeyi ölç
Tamir, gösterişsiz ve biraz acı vericiydi. Gösteriş puanını emekliye ayırdım ve kendimi o rahatsız edici soruya geri sürükledim — sistem var olduğu amaçta daha mı iyi oluyor? — ve bunu takip etmeye karar verdim; yavaş hareket etse, uzun süre takılıp kalsa ve bazen geriye gitse bile.
Zar zor hareket eden gerçek bir metrik, göklere yükselen sahte bir metrikten daha değerlidir. Gerçek olanın moral bozucu olmasına izin verilir; onu gerçek kılan şeyin bir parçası da budur. Yalnızca yükselen, asla kötü haber vermeyen bir rakam, sana karşı koyabilecek hiçbir şeyi ölçmüyordur — ki bu da, belki de pek bir şey ölçmediğini söylemenin başka bir yoludur.
Zanaatkârlık gerçektir — sadece hedef değildir
Aşırı düzeltme yapmamaya dikkat etmek istiyorum. Temiz kod değersiz değildir. Yapı, açıklık, işin kalitesi — bunlar gerçektir, birikerek büyürler ve bir karmaşa eninde sonunda bir projeyi boğar. Hata, hiçbir zaman zanaatkârlığı önemsemek değildi. Hata, asıl hedef doğrudan bakılamayacak kadar belirsiz olduğu için zanaatkârlığı o hedefe terfi ettirmekti.
Bir araç değerli olabilir ve yine de bir tuzağa dönüşebilir, eğer onun amacın yerine geçmesine izin verirsen. Bundan çıkardığım disiplin, beni iyi hissettiren herhangi bir rakam hakkında şunu sormaya devam etmek: bu, gerçekten istediğim şey mi, yoksa gerçek ölçü yüzleşilemeyecek kadar zor olduğu için uzandığım rahat bir vekil mi? Çoğu zaman dürüst cevap rahatsız edicidir. Anlaşılan o ki, bu rahatsızlık, sonunda doğru rakama baktığının daha güvenilir işaretlerinden biridir.
— Sinyal yok, getiri yok, yatırım tavsiyesi değildir.