Eski bir yazılım projesini açmak, terk edilmiş bir binaya girmeye benzer. Dosyalar odalardır, fonksiyonlar koridorlar, veritabanı ise bodrumda uğuldayan eski kazandır. Fakat geçmişte burada yaşayan insanların sesleri en çok yorum satırlarında duyulur. // Bu geçici çözüm daha sonra düzeltilecek cümlesi, teknik bir açıklamadan fazlasıdır. O, yıllar önce ekran karşısında oturan bir geliştiricinin umut, yorgunluk ve kendini kandırma kapasitesini aynı anda muhafaza eden küçük bir zaman kapsülüdür.
Yorum Satırı Neyi Saklar?
Kod çoğunlukla ne yapıldığını gösterir; yorum ise geliştiricinin yaptığı şeyi nasıl anlamlandırdığını anlatır. Bu ayrım önemlidir. Bir algoritmanın davranışı testlerle ölçülebilir, fakat onu yazan kişinin neden savunmacı, aceleci ya da aşırı açıklayıcı davrandığı ancak dilde görünür hâle gelir. // Buraya dokunmayın diyen biri yalnızca teknik risk bildirmiyor olabilir. Belki sistemin kırılganlığından utanıyor, belki geçmişte yaşadığı bir arızanın tekrarından korkuyor, belki de ekip arkadaşlarına duyduğu güveni çoktan kaybetmiştir.
Bu nedenle eski yorumları okurken küçük bir yazılım arkeolojisi yürütürüz. Büyük harflerle yazılmış uyarılar panik katmanını, uzun savunmalar yaklaşan kod incelemesinin kaygısını, alaycı notlar ise kurumsal tükenmişliği ele verebilir. // Neden çalıştığını bilmiyorum itirafı ilk bakışta komiktir; ama aynı zamanda entelektüel dürüstlüğün ender bir örneğidir. Geliştirici, denetim yanılsamasını bırakmış ve sistemin kendisinden daha karmaşık olduğunu kabul etmiştir.
Teknik Borcun Duygusal Faizi
Teknik borç yalnızca kötü mimari veya ertelenmiş bakım değildir; duygusal bir faiz de üretir. Sürekli yamalanan bir modül, geliştiricide öğrenilmiş çaresizlik yaratabilir. Başlangıçta ayrıntılı ve sakin olan yorumlar zamanla // yine bozuldu, // mecburen ya da meşhur // çirkin ama çalışıyor biçimine dönüşür. Sürüm geçmişiyle birlikte okunduğunda bu değişim, bir zihnin sistem karşısındaki geri çekilişini gösterir. Kod tabanı büyürken geliştiricinin özne olma duygusu küçülür.
Öte yandan her tuhaf yorum psikolojik bir itiraf değildir. Baskıcı teslim tarihleri, eksik belgeler, değişen gereksinimler ve eski donanım sınırlamaları hesaba katılmadan yapılan yorumlar kolayca haksız bir teşhise dönüşür. Bugün anlamsız görünen bir çözüm, on yıl önceki tarayıcıların veya işlemcilerin zorunlu kıldığı en mantıklı seçenek olabilir. İyi bir kod arkeoloğu, geçmişi bugünün standartlarıyla yargılamaz; önce dönemin teknik iklimini yeniden kurar.
Kod İncelemesi mi, Ruh Çağırma Seansı mı?
Yorum satırlarında ekip kültürü de fosilleşir. Kibar ve gerekçeli notlar, bilginin paylaşıldığı bir ortamı düşündürür. Suçlayıcı ifadeler ise kodun ortak üretim değil, bölge savaşı olarak görüldüğünü gösterebilir. İsim verilerek bırakılmış sitemler, organizasyon şemasında görünmeyen iktidar çatışmalarını açığa çıkarır. Bazen tek bir // patron böyle istedi cümlesi, onlarca toplantı tutanağından daha dürüst bir kurum tarihi sunar.
Yine de yorumların en dokunaklı yanı, gelecekteki bilinmeyen bir okura seslenmeleridir. Geliştirici, kendisinden aylar veya yıllar sonra gelecek kişiye bir iz bırakır: Bu yolu denedim, şu tuzağa düştüm, burada dikkatli ol. Bu hareket, programlamayı salt makine talimatı olmaktan çıkarır ve kuşaklar arası bir iş birliğine dönüştürür. Yorum satırı, geçmişteki bir zihnin gelecekteki bir zihne uzattığı eldir.
Bu yüzden eski kodu temizlerken yorumları hemen silmek yerine onları kanıt gibi okumalıyız. Hangisi hâlâ teknik değer taşıyor, hangisi yanlış bilgi veriyor, hangisi projenin tarihini anlatıyor? Gerekirse sürüm arşivinde korunmalı, gerekirse güncellenmeli, gerekirse de törenle emekliye ayrılmalıdır. Çünkü bazen bir sistemin nasıl çalıştığını kod açıklar; o sistemin insanlara ne yaptığını ise yalnızca kenarda unutulmuş bir yorum söyler.
