#1: 45 Dakikada 440 Milyon Dolar Nasıl Buhar Oldu?
💥1 Ağustos 2012 sabahı, finans tarihinin en büyük ve en yıkıcı yazılım felaketlerinden biri yaşandı. Knight Capital, sadece 45 dakika süren tek bir dağıtım (deployment) ve test hatası nedeniyle 440 milyon dolar kaybetti ve iflasın eşiğine gelerek el değiştirmek zorunda kaldı.
Peki, arka planda tam olarak ne yaşandı?
⏱️ Felaketin 45 Dakikalık Kronolojisi
08:00 | Hazırlık: Mühendisler, NYSE’nin yeni likidite programı için hazırlanan “SMARS” kodunu 8 ana sunucuya manuel olarak yüklemeye başladı.
09:30 | Piyasa Açılışı: Borsanın açılmasıyla birlikte 8 numaralı sunucu (güncellemesi unutulan tek sunucu) anormal sinyaller üretmeye başladı.
09:45 | Yanlış Müdahale: Panikleyen ekip, sorunu çözmek için canlı ortamdaki yeni kodu geri çekti (rollback). Ancak bu hamle, hatalı döngüyü daha da hızlandırdı.
10:15 | Acı Son: Sistem ancak 45 dakika sonra durdurulabildi. Saniyede yüzlerce sahte işlemle milyarlarca dolarlık kontrolsüz hisse alınmıştı.
🔍 Teknik Hatanın Anatomisi
Ölü Kodun (Dead Code) İntikamı: 2003 yılından kalan ve kullanılmayan “Power Peg” adlı eski bir kod sunucularda pasif halde duruyordu. Yeni yazılım, bu eski kodu tetikleyen aynı isimde bir komut içeriyordu.
Unutulan 8. Sunucu: Kod 7 sunucuya yüklendi, 8. sunucuda eski kod aktif kaldı. Bu sunucuya gelen her emir, sistemi sonsuz bir alım-satım döngüsüne soktu.
Manuel Dağıtım Riskleri: Otomatize edilmemiş, insan hatasına açık deployment süreçlerinin faturası kesildi.
📊 Bilanço
Süre: 45 Dakika
Net Zarar: 440 Milyon Dolar
Hisse Kaybı: Tek günde %75 düşüş
Sonuç: Şirket bağımsızlığını kaybetti ve satın alındı.
Bu felaket sonrası SEC, finansal sistemlerde manuel kod yüklemeyi yasakladı, sıkı test otomasyonu ve “Kill Switch” (Acil Durdurma) mekanizmalarını zorunlu kıldı.
💡 Soru / Çağrı:
Yazılım kalitesi ve test mühendisliği, şirketlerin sadece kodunu değil; itibarını, sermayesini ve geleceğini korur.
“Bugün bir bug öğrendin mi?” serisiyle, yazılım test mühendisliğini hak ettiği stratejik konuma taşımak ve tecrübelerimizi tek bir çatı altında birleştirmek istiyorum.
Sizce bu felaketin asıl sorumlusu eksik test senaryoları mı, yoksa otomasyondan yoksun deployment süreçleri mi?
Yorumlarda buluşalım. 👇
