Yazılım mühendisliğinde "Legacy Code" (Miras Kod) diye bir kavram vardır. Yıllar önce, kim olduğu belirsiz geliştiriciler tarafından, o günün koşullarında, hiçbir dokümantasyon bırakılmadan yazılmış, kimsenin dokunmaya cesaret edemediği ama sistemin temelinde çalışmaya devam eden o eski, yamalı ve anlaşılmaz kod yığınıdır. "Buna dokunma, neden çalıştığını kimse bilmiyor ama çalışıyor" dediğimiz o kutsal ve dokunulmaz dosyalar.
İnsan bedeni, tam olarak budur. Milyarlarca yıllık evrimin, deneme-yanılmayla, hiçbir mimar veya baş mühendis olmadan, rastgele mutasyonlar ve doğal seçilimle yazdığı dünyanın en eski, en karmaşık ve en büyük Legacy Code projesidir. Ve tıpkı eski bir yazılım projesi gibi, içi mantıksız tasarım kararları, gereksiz karmaşıklıklar ve açıklanamayan "bug"larla doludur.
Bir paramedik ve aynı zamanda bir sistem mühendisi olarak, insan bedenine baktığımda gördüğüm şey inanılmaz bir dağıtık sistemdir (Distributed System). Beyniniz ana sunucudur (Master Node). Sinir sisteminiz ağ altyapısıdır (Network). Hormonlarınız, organlar arasında veri taşıyan API çağrılarıdır. Bağışıklık sisteminiz ise sürekli çalışan bir güvenlik duvarıdır (Firewall) ve bazen yanlış alarm vererek kendi hücrelerinize saldırır (Otoimmün hastalıklar; yazılımdaki karşılığı: Firewall'un kendi sunucunuzu engellemesi).
İşin komik yanı, bu "Tanrısal tasarım" diye yücelttiğimiz bedenin içinde korkunç mühendislik hataları vardır. Yemek yediğimiz ve nefes aldığımız boru aynıdır (Farinks). Bu yüzden her yıl binlerce insan yemek yerken boğulur. Hangi mühendis, veri giriş portuyla (ağız) hava giriş portunu (burun/ağız) aynı boruya bağlar? Bu, bir sunucunun aynı porttan hem HTTP hem de veritabanı trafiği almasına benzer; korkunç bir tasarım kararıdır.
Göz siniri retinanın önünden geçer ve kör nokta oluşturur (kablo yönetimi berbat). Apandis organı hiçbir işe yaramaz ama bazen iltihaplanıp sizi öldürmeye çalışır (kullanılmayan ama silinmemiş eski bir modülün aniden hata fırlatması). Dizlerimiz ve bel omurlarımız, dört ayaklı yaşam için tasarlanmış ama biz iki ayak üzerinde duruyoruz; yani donanım (hardware) üzerinde hiç test edilmemiş bir yazılım güncellemesi (update) çalıştırıyoruz.
Ve tıpkı eski yazılım projelerinde olduğu gibi, bir organ bozulduğunda zincirleme bir çökme (Cascade Failure) başlar. Böbrekler iflas ederse kan temizlenemez, toksinler birikir, kalp zorlanır, akciğerler sıvı dolar. Tek bir servisin (mikroservisin) çökmesiyle tüm sistemin domino taşı gibi yıkılması... Bunu hem sunucu odasında hem de acil serviste defalarca yaşadım.
Ancak bu kaotik ve hatalı tasarıma rağmen, insan bedeni milyarlarca yıldır ayakta. Kendini onarıyor, adapte oluyor, yeni tehditlere karşı güncelleme (bağışıklık) yapıyor. Hiçbir yazılım projesi bu kadar uzun süre production'da kalmayı başaramadı. Belki de mükemmel olmayan ama "yeterince iyi" çalışan sistemlerin, aşırı optimize edilmiş kırılgan sistemlerden daha dayanıklı olduğunu kabul etmemiz gerekiyor. Hem sunucu odasında hem de insan bedeninde asıl mucize, mükemmellik değil; o kaosa rağmen ayakta kalmaktır.