“Legacy sistem” denildiğinde çoğu zaman akla eski teknoloji gelir. Oysa burada bahsettiğimiz legacy sistemler, mutlaka eski yazılmış sistemler değildir. Asıl mesele, zaman içinde büyümüş, birçok karar yükü taşıyan ve hâlâ iş yapan mevcut sistemlerdir.

Şu cümleler duyulmaya başladıysa bir sistem fiilen legacy hale gelmiştir:

  • “Buraya dokunmayalım”
  • “Bu kısmı kimse tam bilmiyor”
  • “Çalışıyor ama neden çalıştığını bilmiyoruz”

Bu tür mevcut (legacy) sistemler genellikle bir noktada durmaz. Sessizce büyür, bağlamını kaybeder ve sonunda herkesin kaçındığı bir alana dönüşür.

Mevcut (Legacy) Sistemler Nasıl Oluşur?

Çoğu legacy sistem kötü niyetle veya yanlış tasarımla başlamaz. Aksine, genellikle başarılı olmuş sistemler zamanla bu noktaya gelir.

Çünkü:

  • ürün tutmuştur
  • sistem ayakta kalmıştır
  • kararlar sorgulanmadan devam ettirilmiştir

Başlangıçta doğru olan kararlar, zamanla güncellenmediğinde teknik borçtan daha derin bir probleme dönüşür: karar borcu.

Bu borç biriktikçe mevcut sistemin değişebilirliği azalır.

“Baştan Yazalım” Refleksi Neden Bu Kadar Yaygındır?

Zaman içinde ağırlaşmış sistemlerle karşılaşan ekiplerin ilk refleksi çoğu zaman aynıdır:

“Bunu baştan yazsak daha hızlı olur.”

Bu düşünce anlaşılırdır ama tehlikelidir.

Çünkü baştan yazım:

  • mevcut sistemin neden bu hale geldiğini anlamadan yapılırsa
  • aynı problemleri farklı bir teknolojiyle yeniden üretir

Çoğu yeniden yazım projesi şurada takılır:

  • iş kuralları tam bilinmez
  • edge-case’ler gözden kaçar
  • yeni sistem eskiyi yakalayamaz

Sonuçta ekip iki sistem arasında sıkışır.

Modernizasyon Neden Sadece Teknik Bir Konu Değildir?

Modernizasyon çoğu zaman:

  • framework güncelleme
  • altyapı değişimi
  • mimari dönüşüm

olarak düşünülür.

Oysa mevcut (legacy) sistemlerde gerçek modernizasyon şu sorularla başlar:

  • Bu sistem hangi kararlar üzerine kurulu?
  • Hangi kararlar artık geçerli değil?
  • Hangileri hâlâ iş değerine hizmet ediyor?

Bu sorular sorulmadan yapılan modernizasyon, sadece eski problemleri daha modern araçlarla taşımaktır.

En Sık Yapılan Modernizasyon Hataları

Tüm Sistemi Tek Seferde Dönüştürmeye Çalışmak

“Büyük temizlik” yaklaşımı genellikle başarısız olur. Çünkü iş sürekliliği ile dönüşüm aynı anda yönetilemez.

Gerçek hayatta işe yarayan yaklaşım:

  • küçük, kontrollü adımlar
  • geri alınabilir geçişler
  • paralel çalışabilen yapılar

Modernizasyon bir proje değil, süreçtir.

Sadece Kodu Modernize Etmek

Kod değişir ama:

  • kararlar değişmezse
  • sorumluluklar netleşmezse
  • sınırlar yeniden çizilmezse

mevcut sistem kısa sürede tekrar legacy hale gelir.

Modernizasyon, koddan önce zihniyet dönüşümüdür.

Mevcut Sistemi “Problem” Olarak Görmek

Legacy sistemler çoğu zaman hâlâ iş yapıyordur. Bu sistemler problemi değil, şirketin geçmiş kararlarını temsil eder.

Bu bakış açısı olmadan yapılan modernizasyon:

  • savunmacı olur
  • öğrenme üretmez
  • tekrar eden hatalar doğurur

Modernizasyon Ne Zaman Gerçekten Gerekli Olur?

Şu işaretler bir aradaysa dikkat:

  • Yeni özellikler orantısız derecede pahalıysa
  • Küçük değişiklikler büyük risk yaratıyorsa
  • Ekip karar almaktan kaçınıyorsa
  • Sistem bilgi değil, korku üretiyorsa

Bu noktada modernizasyon bir tercih değil, sürdürülebilirlik şartıdır.

Daha Sağlıklı Bir Mevcut Sistem Modernizasyonu Yaklaşımı

Etkili modernizasyon genellikle şu ilkeleri izler:

  • Mevcut sistemi tamamen reddetmez
  • İş kurallarını görünür kılar
  • Değişimi parçalara böler
  • Geri dönüş yollarını açık tutar

Ama en önemlisi şunu kabul eder:

Zaman içinde büyümüş sistemler teknik değil, karar mirasıdır.

Bu mirası anlamadan yapılan her dönüşüm eksik kalır.

Gerçek Hayatta Sık Karşılaşılan Senaryolar

Modernizasyon sürecinde sıkça şu cümleler duyulur:

  • “Bunu kim yazmış bilmiyoruz”
  • “Bu kural neden var emin değiliz”
  • “Kaldırsak bir şeyler bozulur ama ne bozulur bilmiyoruz”

Bu noktada sorun kod değildir. Sorun, sistemin artık bilgi taşımıyor olmasıdır.

Başarılı ekipler modernizasyonu kod temizliği olarak değil, bilgi yeniden inşası olarak ele alır.

Kapanış

Mevcut (legacy) sistemlerden kaçınılamaz. Ama onlarla nasıl ilişki kurulduğu belirleyicidir.

Modernizasyon eskiyi silmek değil; geçmiş kararları anlamak ve hangilerinin taşınacağına bilinçli şekilde karar vermektir.

Asıl soru şudur:

Sistemi mi modernize ediyoruz, yoksa karar alma biçimimizi mi?