Çatlak Kodun Güzelliği: Legacy Sistemlerde Wabi-Sabi Bulmak

Çatlak Kodun Güzelliği: Legacy Sistemlerde Wabi-Sabi Bulmak

Bir yazılım ekibine eski bir kod tabanı gösterin; odada üç duygu belirir: korku, küçümseme ve hafif bir kaçma isteği. Oysa Japon estetiğinin wabi-sabi bakışıyla yaklaşınca, o yamalı sınıflar, unutulmuş yorum satırları, kimsenin dokunmaya cesaret edemediği fonksiyonlar yalnızca kusur değil; zamanın, emeğin ve hayatta kalma mücadelesinin izleridir. Wabi-sabi, kusurlu, geçici ve eksik olanın içindeki değeri görür. Legacy code ise tam olarak budur: kusurlu, geçici sanılmış ama inatla kalıcı olmuş bir dijital çömlek.

Elbette bu, kötü kodu romantikleştirelim demek değildir. Çürüyen bir mimariyi şiirsel bulup üretim ortamında yangın çıkarmasına izin vermek, estetik değil ihmaldir. Fakat modern yazılım kültürü bazen steril bir mükemmellik fantezisine kapılır. Her şey temiz mimari, kusursuz test kapsamı, parlak isimlendirme ve kutsal SOLID ilkeleriyle doğmalıymış gibi davranırız. Gerçek dünyada ise yazılım, genellikle cuma akşamı yetişmesi gereken bir kampanya, beklenmedik bir regülasyon, ayrılan bir kıdemli geliştirici ve müşteri tarafında hâlâ Internet Explorer kullanan biri tarafından şekillendirilir.

Ö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.