Hastanelerde "Mavi Kod" (Code Blue) anonsu yapıldığında, bir hastanın kalbi durmuştur veya solunum arresti yaşanmıştır. Bu anons, binanın her köşesindeki hoparlörlerden aynı anda duyulur ve saniyeler içinde bir resüsitasyon ekibi o hastanın başına koşar.

Mavi kod ekibinin çalışma dinamiği, insanlık tarihindeki en rafine edilmiş kriz yönetimi protokollerinden biridir. Odaya giren herkes rolünü bilir: Biri göğüs kompresyonuna başlar, biri hava yolunu yönetir, biri ilaçları hazırlar, biri zamanı tutar. Kimse bağırmaz. Kimse birbirini suçlamaz. Kimse "Bu hastaya kim bu ilacı verdi de kalbi durdu?" diye sormaz. Çünkü o an için tek bir hedef vardır: Hastayı geri getirmek.

Şimdi bu sahneyi yazılım dünyasıyla kıyaslayalım.

Production Çöktüğünde: Suç Avı Başlar

Cuma akşamı saat 18:30. Herkes evine gitmeye hazırlanırken Slack'ten o korkunç bildirim gelir: "🔴 PRODUCTION DOWN — Tüm kullanıcılar 500 hatası alıyor."

Bir hastanede bu an, mavi kodun ilan edildiği andır. Ama bir yazılım şirketinde olan şey bambaşkadır. İlk beş dakika şöyle geçer:

  • Dakika 1: "Ben bir şey yapmadım."
  • Dakika 2: "Son deploy'u kim yaptı?"
  • Dakika 3: "Backend'in PR'ını kim onayladı?"
  • Dakika 4: "Bu feature zaten riskli demiştim ama kimse dinlemedi."
  • Dakika 5: Sistem hâlâ çökmüş durumda. Kimse çözüme odaklanmıyor çünkü herkes kendini aklamakla meşgul.

Eğer bir hastanede mavi kod anında ekip üyeleri "Ben bu hastaya dokunmadım" diyerek odadan çıkmaya çalışsaydı, o hasta kesinlikle ölürdü. Ama yazılım dünyasında tam olarak bunu yapıyoruz. Sistemi hayata döndürmek yerine, suçluyu bulmaya harcadığımız her dakika, kullanıcılarımızın güvenini biraz daha öldürüyor.

Suçsuz Post-Mortem: Acil Tıptan Bir Ders

Acil tıpta resüsitasyon bittikten sonra yapılan bir değerlendirme toplantısı vardır. Bu toplantıda neler doğru gitti, neler yanlış gitti, hangi protokol ihlal edildi tartışılır. Ancak bu toplantının temel kuralı şudur: Kişiler değil, süreçler sorgulanır.

"Dr. Aslı neden yanlış ilaç verdi?" yerine "İlaç etiketleme sistemimiz neden bu karışıklığa izin veriyor?" sorusu sorulur. Çünkü acil tıp, bireysel hataların kaçınılmaz olduğunu kabul eder. Önemli olan, sistemin bu bireysel hataları yakalayacak ve telafi edecek şekilde tasarlanmasıdır.

Yazılım dünyasının buna karşılık gelen aracı "Blameless Post-Mortem" (Suçsuz Olay Sonrası Değerlendirme) olarak bilinir. Google, Etsy, Netflix gibi şirketler bu kültürü benimsemiştir. Ancak çoğu küçük ve orta ölçekli şirkette post-mortem toplantıları hâlâ "Kimin suçu?" sorusuyla başlar ve biter.

Bu kültür, uzun vadede ekibin korkudan risk almaktan kaçınmasına, deploy sıklığının düşmesine ve en tehlikelisi geliştiricilerin hataları gizlemesine yol açar. Çünkü bir hata yaptığınızda cezalandırılacağınızı bilirseniz, hatayı bildirmek yerine üstünü örtmeyi tercih edersiniz. Ve üstü örtülen hatalar, ileride çok daha büyük felaketlere dönüşür.

Panik Yönetimi: Nabzınız mı, Sunucunuzun Nabzı mı?

Bir paramedik olarak en zor öğrendiğiniz beceri, panik yapmamaktır. Karşınızda kanlar içinde, bilinci kapalı bir insan yatarken kendi kalbinizin hızlanmasını hissedersiniz. Ama yılların eğitimi ve pratiği size şunu öğretmiştir: Önce kendi nabzınızı kontrol edin. Çünkü panik halindeki bir kurtarıcı, kurtarıcı değildir; ikinci bir kurbandır.

Yazılım krizlerinde de bu prensip birebir geçerlidir. Production çöktüğünde panikle atılan bir git revert veya daha kötüsü bir git push --force, zaten yaralı olan sistemi tamamen öldürebilir. Sakin bir şekilde logları okumak, sorunu izole etmek ve adım adım müdahale etmek ile "HER ŞEYİ GERİ AL!" diye bağırmak arasındaki fark, hastayı kurtarmakla kaybetmek arasındaki fark kadardır.

Bir dahaki sefere production çöktüğünde, kendinize mavi kod anındaki o ekibi hatırlatın. Suçlu aramayın. Rolünüzü bilin. Önce sistemi stabilize edin. Otopsiyi, hasta hayata döndükten sonra yaparsınız.