Bir program çöktüğünde ekranda beliren hata mesajı, modern insanın kahve falıdır: herkes ona bakar, herkes bir anlam çıkarır, ama çoğu zaman gerçek suçlu bambaşka bir yerde saklanır. İşte tam bu noktada Pyrrhonculuk, yani hiçbir mutlak doğruya aceleyle teslim olmayan antik kuşkuculuk, debugging masasına sandalyesini çeker. Pyrrhoncu bilge, kodun karşısında şöyle derdi: ‘Bu değişken kesinlikle suçlu’ deme; önce onun suçlu göründüğünü kabul et, sonra da görünüşle hakikati birbirinden ayır.
Pyrrhonculuğun merkezinde epokhe, yani yargıyı askıya alma tavrı vardır. Bu tavır pasif bir kararsızlık değil, zihinsel bir disiplin biçimidir. Debugging de tam olarak böyle çalışır. İyi bir geliştirici, ilk gördüğü stack trace’e tapınmaz. Loglarda bağıran satıra hemen hüküm giydirmez. Çünkü bilir: Sistemler, tıpkı insanlar gibi, semptom üretir; nedenlerini ise çoğu zaman derine gömer. Ateşi olan her hasta enfeksiyon kapmış değildir; null pointer veren her fonksiyon da tek başına suçlu değildir.
Kodun Mahkemesinde Delil, Sanıktan Önce Gelir
Acemi debugger bir inanç savaşçısıdır: ‘Bence cache bozuyor’, ‘Kesin network’, ‘Bu framework zaten problemli.’ Deneyimli debugger ise Pyrrhoncu bir dedektiftir: Her hipotezi geçici olarak tutar, hiçbirine taht kurdurmaz. Hipotezler onun zihninde krallar değil, sorgu odasına alınmış şüphelilerdir. Bu yüzden iyi debugging, inançların değil, kanıtların ritüelidir. Reproduce et, ölç, izole et, değişkenleri azalt, varsayımı test et. Sonra aynı soğukkanlılıkla kendi testinin de yanılabileceğini düşün.
Pyrrhonculuk, dünyanın bilinemeyeceğini dogmatik biçimde ilan etmez; bu bile fazla kesin olurdu. O daha zarif bir hamle yapar: Görüneni görünüş olarak kabul eder, fakat onun nihai gerçek olduğunu söylemekten kaçınır. Debugging’de de loglar, metrikler ve exception mesajları bize birer görünüş sunar. CPU yüzde 100 olabilir; ama sorun CPU değildir, belki sonsuz döngüyü tetikleyen yanlış bir edge case’tir. Veritabanı yavaş görünebilir; belki asıl dert, gereksiz yere patlatılan binlerce küçük sorgudur. Görünüşe saygı duy, ama ona secde etme.
Bu metodolojik kuşku, paranoya değildir. Paranoya her şeyden korkar; Pyrrhoncu debugging her şeyi sınar. Aradaki fark önemlidir. Paranoyak geliştirici kod tabanında hayalet avlar, her satırı düşman sanır. Kuşkucu geliştirici ise sistemli ilerler: Önce hata tekrar üretilebilir mi? Ortam farkı var mı? Son değişiklikler ne? Girdi aralığı ne zaman bozuluyor? Aynı koşulda aynı sonuç alınıyor mu? Bu sorular felsefi bir asalet taşır; çünkü hepsi tek bir büyük kibri parçalar: ‘Ben zaten ne olduğunu biliyorum.’
Mutlak Doğru Yerine Çalışan Model
Bilgisayar biliminde de felsefede de çoğu zaman mutlak hakikat değil, yeterince iyi açıklayan model kazanır. Bir bug’ı çözdüğümüzde evrenin özünü kavramayız; yalnızca belirli koşullarda belirli bir davranışı açıklayan ve düzelten bir nedensellik zinciri kurarız. Pyrrhoncu ruh burada gülümser: İşte huzur, kesinlik sarhoşluğunda değil, yargının terbiyesinde. Debugging’in sonunda bulunan şey çoğu zaman ‘hakikat’ değil, daha dar ve daha dürüst bir cümledir: ‘Bu hata, şu koşulda, şu veriyle, şu fonksiyonun beklenmeyen çıktısından doğuyor.’
Bu yaklaşım ekip kültürünü de dönüştürür. Suçlu arayan ekipler mitoloji üretir: ‘Backend yine bozdu’, ‘Frontend zaten dikkatsiz’, ‘DevOps ayarları karıştırdı.’ Pyrrhoncu ekip ise kişileri değil varsayımları sorgular. Blame yerine trace, ego yerine gözlem, refleks yerine deney koyar. Böyle bir ortamda hata bir utanç nesnesi olmaktan çıkar; sistemin kendini ifşa etme biçimine dönüşür. Bug, düşman değil, gerçekliğin kapıya bıraktığı şifreli nottur.
Sonuçta Pyrrhonculuk ile debugging aynı savaş sanatını paylaşır: Zihnin aceleci hüküm verme alışkanlığına karşı disiplinli bir direnç. Kodun karanlık ormanında ilerlerken en tehlikeli canavar syntax hatası değil, erken kesinliktir. Çünkü yanlış inanç, yanlış koddan daha inatçıdır. İyi debugger, filozofun tornavida tutan hâlidir: Her şeyi söküp dağıtmak için değil, görünenin ardındaki düzeni sabırla yoklamak için. Ve belki de en bilgece commit mesajı şudur: ‘Düzelttim; ama nedenini gerçekten anladığımdan emin olmak için bir test daha ekledim.’