Ekranda Aynı, İçeride Devrim: Kod Refaktörünün Gizli Estetiği

Kod refaktörü, yazılım dünyasının en tuhaf sanatlarından biridir: Seyirci salona girer, perde açılır, sahne aynı görünür. Düğmeler aynı yerde, ekran aynı renkte, kullanıcı yine aynı işlemi yapar. Fakat kulisin arkasında dekor sökülmüş, kablolar etiketlenmiş, oyuncuların giriş çıkışları yeniden düzenlenmiş, yangın çıkışları açılmıştır. Dışarıdan hiçbir şey değişmemiştir; içeride ise küçük bir uygarlık kurulmuştur.

Bu yüzden refaktör, sadece teknik bir işlem değil, bir ahlak biçimidir. Çünkü hızlıca çalışan ama içten içe çürüyen kod ile karşılaşan geliştirici, iki yoldan birini seçer: Ya halının altına bir hata daha süpürür ya da diz çöküp zemindeki çatlağı onarır. Refaktör yapan kişi, gelecekteki bilinmeyen bir meslektaşına, hatta çoğu zaman kendisinin üç ay sonraki hâline not bırakır: Burada seni bekleyen bir mayın yok, rahat yürü.

Ölü Kod Mezarlığı: Sistemi Yavaşlatan Hayalet İnançlar

Her yazılım sisteminin bodrum katında bir mezarlık vardır. Orada artık çalışmayan fonksiyonlar, yıllar önce terk edilmiş koşullar, kimsenin çağırmadığı sınıflar ve üstüne not düşülmüş kadim büyüler uyur: sakın silme, bir gün lazım olabilir. Ölü kod tam olarak budur; programın yaşayan akışına katkısı olmayan ama depoda yer kaplayan, zihni meşgul eden, bakım maliyetini artıran eski parçalar. İlginç olan şu: Ölü kod teknik bir mesele gibi görünür, ama çoğu zaman psikolojik bir arızanın izidir. Kod çalışmaz; korku çalışır.

Bir ekip düşünün. Beş yıl önce yazılmış bir ödeme modülünün içinde devasa bir if bloğu duruyor. Artık hiçbir müşteri o yolu kullanmıyor, dokümantasyon onu anmıyor, testler ona uğramıyor. Ama biri silmeyi önerdiğinde odada sessizlik oluşuyor. Çünkü kodun kendisinden çok, onun etrafındaki efsane yaşıyor: Eski CTO bunu yazmıştı. Büyük bir müşteride sorun çıkarmıştı. Bir ara kampanya döneminde hayat kurtarmıştı. İşte yazılımda ölü kod, çoğu zaman eski bir savaşın madalyasıdır; paslanmıştır ama kimse duvardan indirmeye cesaret edemez.

Yanlış Çalışıyor Ama Çalışıyor: Zihnimizin Legacy Code’u

İnsanın en büyük yazılım hatası şudur: Bir şeyin yanlış olduğunu anlayacak kadar zekiyiz, fakat onu değiştirmeyecek kadar yorgun, korkak ya da konfor düşkünüyüz. Buna psikolojide bilişsel çelişki diyoruz; yazılım dünyasında ise çoğu zaman legacy code. İkisi de aynı karanlık mahzene açılır: Çalışıyor gibi görünen, ama her temas ettiğimizde içimizde küçük bir alarm çalan eski sistemler.

Legacy code sadece eski kod değildir. O, geçmişte verilmiş kararların bugünkü hayatımızdan kira almaya devam etmesidir. Bir fonksiyonun neden orada olduğunu kimse bilmez, ama kimse silmeye de cesaret edemez. Çünkü sistem ayakta duruyordur. Çünkü müşteri bağırmıyordur. Çünkü test yoktur. Çünkü cuma akşamıdır. İnsan zihni de böyledir. Çocukken işe yarayan bir savunma mekanizması, yetişkinlikte kişiliğimizin çürük kolonuna dönüşebilir. Eskiden bizi koruyan suskunluk, bugün ilişkilerimizi boğar. Bir zamanlar hayatta kalmak için öğrendiğimiz kontrol arzusu, sonra sevgiyi bile denetlemeye kalkar.