Yazılım dünyasında herkesin korkarak bahsettiği, dokunanın elini yaktığı, şirketin en kıdemli mühendislerinin bile değiştirmekten çekindiği o meşhur canavarı hepimiz tanırız: Legacy Code (Miras Kod).

Peki bu kodlar gökten zembille mi iniyor? Şirkete gece yarısı gizlice sızan kötü niyetli hackerlar mı yazıyor bu spagetti yığınlarını? Elbette hayır. Legacy kod, bir zamanlar projeye büyük umutlarla katılmış, her sabah kahvesini alıp bilgisayarının başına heyecanla oturan, "Bu projeyi çok daha iyi bir mimariyle baştan yazabiliriz!" diyerek toplantılarda sunumlar yapan mühendisler tarafından yazıldı.

Peki ne oldu da o parlak mühendis, arkasında dokunulmaz bir kod bataklığı bırakarak şirketten ayrıldı? Cevap, son yılların popüler kavramı olan "Sessiz İstifa"nın (Quiet Quitting) ta kendisinde gizli.

Duygusal Kopuşun Anatomisi

Bir geliştiricinin projeye olan inancını yitirmesi bir günde olmaz. Yavaş yavaş, küçük darbelerle gerçekleşir.

Önce kod kalitesini artırmak için yazdığı testler, ürün yöneticisi tarafından "Şu an buna vaktimiz yok, hızlıca canlıya alalım" denilerek iptal edilir. Ardından, mimari bir hata yapıldığı ve bunun ileride başlarını ağrıtacağı uyarısı, "Şimdilik böyle idare edelim, sonra refactor ederiz (düzenleriz)" klişesiyle hasıraltı edilir. (Ve hepimiz o "sonra"nın hiçbir zaman gelmeyeceğini çok iyi biliriz.)

Birkaç ay sonra o mühendis, inandığı teknik doğrular ile şirketin bitmek bilmeyen feature (özellik) yetiştirme baskısı arasında sıkışır. Ve işte o an, bir psikolojik savunma mekanizması olarak duygusal kopuş yaşanır. Artık kodun kalitesi umurunda değildir. Yalnızca ona verilen Jira biletini (ticket) kapatmak ve mesai bitiminde bilgisayarını kapatmak ister.

İşte sessiz istifa tam olarak budur. Fiziksel olarak oradadır, kod yazıyordur ama ruhen projeyi terk etmiştir.

Legacy Kodun Doğuşu

Sessiz istifa evresine giren bir mühendis, artık kodun sürdürülebilirliği (maintainability) için savaşmaz. "Bunu buraya if bloğuyla eklesem çalışır mı? Çalışır. Tamam o zaman," der ve geçer. Dokümantasyon yazmayı bırakır. Değişken isimlerine özen göstermez. Çünkü o koda duyduğu saygı ve sevgi bitmiştir.

Hiçbir legacy kod kötü veya yeteneksiz bir mühendis tarafından yazılmaz. Aksine, umudunu kesmiş, teknik borcun altında ezilmiş ve yöneticilerine sesini duyuramamış bir mühendis tarafından yazılır. Legacy kod, yeteneksizliğin değil, iletişimsizliğin ve tükenmişliğin (burnout) dijital bir anıtıdır.

Çözüm Kodda Değil, Kültürde

Şirketler genellikle bu legacy kod yığınından kurtulmak için en kolay yolu seçerler: Kodu tamamen çöpe atıp, yeni baştan yazmak. Ancak aynı toksik şirket kültürü, aynı gerçekçi olmayan teslim tarihleri ve aynı baskı devam ettiği sürece, o "yepyeni ve temiz" kod tabanı da sadece 6 ay içinde yeni nesil bir legacy koda dönüşecektir.

Bir projedeki kodun kalitesi, o kodu yazan ekibin psikolojik sağlığının doğrudan bir yansımasıdır. Eğer kodunuz spagettiye dönüşmüşse, geliştiricilerinize daha fazla eğitim vermeden önce, onlara neden artık projenizi umursamadıklarını sorun. Çünkü kodu iyileştirmenin yolu linter kurallarını sıkılaştırmaktan değil, masanın diğer tarafında oturan insanın hevesini kırmamaktan geçer.