use-case
Legacy Sistem Modernizasyonu
Strangler-fig stratejisiyle eski ERP'yi parça parça yeniliyoruz — operasyon hiç durmuyor.
Tek seferde "her şeyi değiştir" projesi yerine, eski sistemin etrafını modern servislerle saran, kademeli bir göç stratejisi yürütüyoruz. 18 ay içinde lock-in'den çıkış mümkün.
Bu neden önemli
Çoğu büyük şirketin sırtında 10–20 yıllık bir ERP veya ana iş yazılımı var. İşi yapıyor; ama her küçük değişiklik için vendor faturası çıkıyor, yeni özellik 6 ay sürüyor, yeni nesil entegrasyon (modern API, gerçek zamanlı veri, mobil) imkânsız hale geliyor. Klasik “big bang replacement” projeleri %70 oranında ya başarısız oluyor ya da iki katına çıkan bütçe ile sonuçlanıyor. Strangler-fig deseni ise eski sistemi yerinde bırakıp, etrafına modern servisler ekleyerek işlevi parça parça devralır. Risk düşük, geri-dönüş erken.
Eylemsizliğin bir bedeli var ve bu bedel her çeyrek büyür. Eski bir çekirdek sistemin gerçek maliyeti lisans faturasıyla bitmez; gizli kalemler çoğu zaman daha pahalıdır. Tek bir geliştiricinin bildiği, başkasının dokunmaya korktuğu modüller “bus factor” riskini yükseltir — o kişi ayrılırsa kurumsal hafıza da gider. Modern bir API sunmayan sistem, her yeni entegrasyonu manuel veri aktarımına ya da gece çalışan kırılgan toplu işlere mahkûm eder. Tedarikçiye bağımlılık fiyat müzakeresindeki gücünüzü sıfırlar. Ve en önemlisi: rakipleriniz haftalar içinde yeni özellik çıkarırken siz aynı işi aylarla ölçüyorsanız, fark teknik değil ticari bir dezavantaja dönüşür. Modernizasyonu erteledikçe göç edilecek yüzey büyür; bugün 18 ayda yapılabilecek iş, üç yıl sonra 30 ay sürer.
Ne teslim ediyoruz
Teslimat listemiz bir yazılım paketi değil, bir geçiş güvencesidir. Her kalemin amacı operasyonu hiç durdurmadan eski sistemden bağımsızlaşmaktır.
- Kapsam haritası ve göç sırası. Eski sistemin her modülünü iki eksende puanlarız: iş açısından kritiklik ve teknik karmaşıklık. Bu matris, hangi modülün önce, hangisinin sonra taşınacağını öznel tartışmalardan çıkarıp veriye bağlar. Düşük risk + yüksek frekanslı işlerle başlanır; böylece ekip deseni öğrenirken iş sürekliliği güvende kalır.
- Anti-corruption layer (yozlaşma önleyici katman). Eski sistemle modern servisler arasında bir çeviri ve eşitleme katmanı kurarız. Eski sistemin tuhaf veri modeli yeni servislere sızmaz; iki taraf aynı veriyi aynı anda doğru görür. Bu katman, kademeli göçün teknik kalbidir.
- Modern servis implementasyonu. Node.js, Python veya .NET üzerinde mikroservis ya da modüler monolith — kararı ekibin büyüklüğüne ve operasyon olgunluğuna göre veririz, modaya göre değil. PostgreSQL veri ambarı, olay (event) veriyolu ve sözleşmeye dayalı API’ler standartımızdır.
- Kullanıcı geçiş yönetimi. Yazılım değişimi aynı zamanda bir alışkanlık değişimidir. Yeni arayüze geçen ekipler için eğitim, paralel kullanım dönemi, geri-bildirim döngüsü ve her modül için net bir “eski sistem kapanır” kriteri tanımlarız.
Yaklaşımımız
Modernizasyonu bir olgunluk yolculuğu olarak ele alıyoruz; “her şeyi sil, sıfırdan yaz” bir karar değil, çoğu zaman bir kaçıştır. Hangi modülün taşınacağına karar verirken 6R çerçevesini kullanıyoruz: her modül için altı seçenekten biri bilinçli olarak seçilir.
- Retain (koru). İşini yapan, nadiren değişen, düşük riskli modüller olduğu gibi kalır. Her şeyi modernize etmek bir hedef değildir.
- Rehost (taşı). Kod aynı kalır, altyapı modern bir ortama (konteyner, bulut) taşınır. Hızlı kazanç, düşük risk.
- Replatform (yeniden zeminle). Çekirdek mantık korunur, çevresi modernize edilir — örneğin veritabanı PostgreSQL’e geçer, arayüz yenilenir.
- Refactor (yeniden düzenle). Kod içeriden temizlenir, modüler hale getirilir; davranış aynı kalır ama bakımı kolaylaşır.
- Rebuild (yeniden inşa et). Modül modern bir servis olarak sıfırdan yazılır — yalnızca iş değeri yüksek ve eski kodu kurtarmanın anlamsız olduğu yerlerde.
- Replace (değiştir). Standart bir hazır çözümle (örneğin faturalama için yerleşik bir SaaS) değiştirilir; rekabet avantajı yaratmayan işlevler için en akılcı yol.
Bu çerçeve, her modülü “yenilenecek” ya da “kalacak” diye ikiye bölmek yerine doğru aracı doğru işe atar. Üzerine olgunluk modeli koyarız: Seviye 0 (belgesiz, tek kişiye bağlı, manuel dağıtım) → Seviye 1 (kaynak kontrolü, temel CI) → Seviye 2 (otomatik test, gözlemlenebilirlik) → Seviye 3 (bağımsız dağıtılabilir servisler, sözleşmeye dayalı API). Hedef her modülü Seviye 3’e çıkarmak değil; her modülü iş değerinin gerektirdiği seviyeye taşımaktır.
Süreç
- Hafta 1–4 — Envanter ve karar matrisi. Mevcut sistemin modül haritası, entegrasyon yüzeyi, kullanıcı yolculukları ve iş kritikliği analizi. Çıktı: 6R kararları işlenmiş göç sırası belgesi ve risk kaydı.
- Hafta 5–8 — Temel ve ilk modül. Anti-corruption layer kurulur ve ilk modül (genellikle düşük riskli, yüksek frekanslı bir iş akışı) canlıya alınır. Live A/B modunda eski ve yeni paralel çalışır. Çıktı: çalışan göç deseni ve geri-dönüş prosedürü.
- Ay 3–9 — Kademeli göç. Sıradaki 3–5 modül tek tek taşınır. Her modül kendi başına yayına alınır; geri-dönüş kapısı her aşamada açık kalır. Çıktı: her modül için dağıtım, test ve eğitim paketi.
- Ay 10–18 — Kapanış. Kalan modüller taşınır ve eski sistem kapanış planı yürütülür. Vendor sözleşmesi yalnızca son modül de güvenle taşındıktan sonra feshedilir. Çıktı: bağımsız modern yığın ve bakım devri.
Örnek bir senaryo
Bir omnichannel perakende markası, 16 yıllık özel ERP’sinin etrafında sıkışmıştı: e-ticaret sitesi ile mağaza stoğu arasında gerçek zamanlı veri yoktu, her promosyon kuralı vendor’a sipariş edilen bir geliştirmeye dönüşüyordu. Strangler-fig yaklaşımıyla önce stok senkronizasyonunu, ardından fiyatlandırma motorunu modern servislere taşıdık. 14 ayda altı modül modernize edildi. Yeni kampanya kuralı yayınlama süresi haftalardan bir güne indi, yıllık vendor geliştirme bütçesi belirgin ölçüde geriledi ve operasyon bu süre boyunca kesintisiz çalıştı. Sonuçlar her kurumda değişir; bu rakamlar tek bir senaryonun ölçeğini gösterir, garanti değildir.
Sık sorulan sorular
Operasyonumuz gerçekten hiç durmadan bu geçiş olur mu? Strangler-fig deseninin tüm amacı budur. Eski sistem her modül taşınana kadar çalışmaya devam eder; yeni servisler onun yanında devreye girer. Tek seferlik “büyük geçiş gecesi” yoktur, dolayısıyla o gecede her şeyin ters gitme riski de yoktur.
Big bang yeniden yazımdan neden kaçınıyorsunuz? Çünkü sektör verisi açık: büyük tek seferlik yeniden yazımların önemli bir kısmı bütçeyi aşar ya da yarıda kalır. Kademeli göç, her adımda çalışan bir sistem ve geri-dönülebilir bir karar bırakır. Risk küçük parçalara bölündüğünde yönetilebilir hale gelir.
Mevcut tedarikçimizle sözleşmemiz sürerken başlayabilir miyiz? Evet. Çoğu projeye tedarikçi sözleşmesi devam ederken başlarız. Anti-corruption layer iki sistemi eşgüdümlü tutar; sözleşmeyi yalnızca ilgili modüller güvenle taşındıktan sonra, kademeli olarak sonlandırırsınız.
Önce hangi modülü taşımalıyız? Genellikle iş açısından kritik olmayan ama sık kullanılan bir akışla başlarız. Bu, ekibin deseni düşük riskle öğrenmesini sağlar ve ilk somut kazanç erken gelir; böylece kurum içi destek de güçlenir.
Kurumsal sistemler pillar’ı altında legacy sisteminizi nasıl parça parça yenileyeceğimizi konuşmak için bize ulaşın.