Eski (Legacy) Yazılımı Modernize Etmek: Yeniden Yaz mı, Dönüştür mü?
Legacy yazılımın belirtileri
- Desteği bitmiş dil veya çerçeve sürümleri (örneğin eski PHP, .NET Framework, VB6)
- Kodu bilen kişinin ayrılmış olması
- Küçük değişikliklerin bile beklenmedik hatalara yol açması
- Mobil veya web erişiminin olmaması
- Güvenlik güncellemesi alınamaması
- Entegrasyonların çok zor olması
Seçenekler
1. Yeniden barındırma (rehost)
Uygulamayı kodunu değiştirmeden yeni bir sunucuya veya buluta taşımak. Hızlıdır ama kod kaynaklı sorunları çözmez.
2. Yeniden düzenleme (refactor)
Davranışı değiştirmeden kod kalitesini artırmak, bağımlılıkları güncellemek. Sistem temelde sağlamsa iyi bir yoldur.
3. Kademeli dönüşüm (strangler fig)
Eski sistemin önüne bir yönlendirme katmanı konur; yeni modüller tek tek yeni teknolojiyle yazılır ve trafik parça parça yeni modüllere aktarılır. Eski sistem zamanla “boğulur” ve kapatılır. Riski düşük, değeri erken üretir.
4. Tamamen yeniden yazma
Sıfırdan yeni bir sistem. Eski sistemin tüm gizli iş kurallarının yeniden keşfedilmesi gerekir; süre ve bütçe aşımı riski yüksektir. Eski sistem gerçekten kurtarılamaz durumdaysa veya iş modeli tamamen değiştiyse anlamlıdır.
Karar için sorular
- Sistem bugün işini yapıyor mu, sorun bakım ve geliştirme zorluğu mu?
- İş kuralları dokümante edilmiş mi, yoksa sadece kodda mı?
- Veritabanı yapısı korunabilir mi?
- Kesintisiz çalışması gereken süreçler hangileri?
Riskleri azaltmak
- Mevcut davranışı yakalayan testler yazmak
- Önce veri ve entegrasyon katmanını (API) modernize etmek
- Modül modül geçiş ve paralel çalışma
- Kullanıcıları erken dahil etmek
Sonuç
Modernizasyon tek seferlik büyük bir sıçrama yerine planlı adımlarla yapıldığında başarılı olur. Mevcut sisteminizi değerlendirmek için web tabanlı yazılım hizmetimizi inceleyebilir veya ücretsiz keşif görüşmesi talep edebilirsiniz.