Hizmet / Eski sistemler
Çalışan eski sistemi çöpe atmadan devralmak ve geliştirmek.
Bir sistemin eski teknolojiyle yazılmış olması tek başına yeniden yazma sebebi değildir. Önce talebi, çalışan parçaları ve gerçek riski anlarım; küçük iş için küçük müdahale, uzun vadeli ihtiyaç için kontrollü bir modernizasyon planı çıkarırım.
İhtiyaç belirtileri
Şu sorunlardan biri size tanıdık geliyor mu?
Eski bir sistemi devralma ihtiyacı çoğu zaman teknolojinin yaşından değil, işi sürdürecek güvenli bir yol kalmamasından doğar.
- Yazılımı yapan kişiye veya firmaya artık ulaşamıyorsunuz.
- Basit görünen bir özellik ya da entegrasyon bile haftalar sürüyor.
- Test ortamı olmadığı için her değişiklik doğrudan canlı sistemde yapılıyor.
- Sistem para kazandırıyor ama hangi parçaya güvenle dokunulabileceği bilinmiyor.
Gerçek örnek
2007’den beri çalışan Classic ASP B2B satış sistemi
Devraldığım sistem Classic ASP ve MySQL ile yazılmıştı. 2007’den beri satış yapıyor, şirketin yıllar içinde oluşturduğu raporları çalıştırıyor ve Netsis ERP ile veri alışverişi yapıyordu. Teknolojisi eskiydi ama şirketin günlük işi bu sistemin üzerinde yürüyordu.
Talep netti: tedarikçilerin stoklarını JSON üzerinden sisteme almak. Classic ASP/VBScript’in yerleşik JSON desteği olmadığı için harici bir ayrıştırıcı veya COM/.NET bileşeni kullanmak gerekiyordu. Güncel bir sistemde kolay olacak entegrasyon burada daha uzun sürdü.
Yine de tek bir entegrasyon zorlaştı diye bütün sistemi yeniden yazmak doğru değildi. Mevcut raporları, Netsis bağlantısını ve yıllardır kullanılan iş akışlarını baştan kurup test etmek çok daha büyük bir risk ve maliyet yaratacaktı.
İş sonucu
Firma kendi deposundaki stoklarla birlikte tedarikçi stoklarını da satışa açtı. Önceden satın alıp sermaye bağlamadığı ürünleri siparişe sunabildi; mevcut sistem ve Netsis entegrasyonu çalışmaya devam etti.
Yaklaşım
Önce ne yapılacağını netleştirir, sonra gerektiği kadar derine inerim.
Tek bir entegrasyon için bütün sistemi baştan kurmam. Aylar boyunca geliştirme yapacaksak da test ortamını ve yedekleri görmezden gelmem. Hazırlık yapılacak iş kadar olmalı.
-
01
İstenen sonucu birlikte netleştiririz
Önce işin sonunda neyin değişmesi gerektiğini konuşuruz. Böylece ilgisiz alanları kurcalamadan doğru kodu, veriyi ve iş akışını incelerim.
-
02
Dokunacağımız alanın riskini kontrol ederim
Değişiklik veriyi veya çalışan bir entegrasyonu etkiliyorsa yedeği, hata kayıtlarını, zamanlanmış görevleri ve geri dönüş yolunu kontrol ederim.
-
03
Düzenli geliştirme varsa güvenli bir çalışma düzeni kurarım
Küçük bir düzeltmede haftalarca ortam hazırlamam. Düzenli geliştirme yapacaksak test ortamı, sürüm takibi ve tekrarlanabilir yayın süreci kurarım.
-
04
Mevcut sistemle devam mı, parça parça yenileme mi?
Mevcut sistemle ilerlemenin süresini ve riskini, yenilemenin veri taşıma ve test yüküyle karşılaştırırım. Kararı bu toplam üzerinden birlikte veririz.
Karar hesabı
Eski sistemi ne zaman yenilemek gerekir?
Aynı geliştirme eski sistemde sürekli daha uzun sürüyorsa ve sistemi güvenle yenilemenin toplam maliyeti bu farkı karşılıyorsa modernizasyon mantıklı olabilir. Hesaba yalnız kodlama değil, veri taşıma ve test de girer.
1 hafta
Aynı modülün güncel bir yapıdaki varsayımsal süresi
1 ay
Eski yapıdaki varsayımsal geliştirme süresi
2 hafta
Eşdeğer sistemi taşımanın varsayımsal süresi
Rakamlar yalnız kararın nasıl verildiğini göstermek için. Yıllardır kullanılan bir sistemi iki haftada eksiksiz yenilemek çoğu zaman gerçekçi değildir. Kod hızlı yazılsa bile veri kontrolü, kullanıcı testleri ve canlı geçiş aylar sürebilir.
Çıktı
Bu çalışmanın sonunda elinizde ne olur?
İhtiyacınıza göre bu sonuçlardan biri veya birkaçı ortaya çıkar.
- İstenen özellik ya da entegrasyon çalışır halde canlıya alınır.
- Düzenli geliştirme yapılacaksa güvenli bir test ve yayın ortamı kurulur.
- Eksikse yedekleme, izleme veya sunucu düzeni iyileştirilir.
- Hangi parçanın ne zaman yenileneceğini gösteren bir yol haritası çıkar.
- Gerekiyorsa web sitesi, portal veya iç sistem aşama aşama yenilenir.
Bu hizmet nasıl ilerliyor?
İlk görüşme ücretsizdir. İhtiyacınızı anlatırsınız; ben yapılacak işi, öncelikleri ve yaklaşık süreyi açıklarım.
Çalışmaya başladığımızda inceleme, planlama, geliştirme, test ve canlıya alma seçtiğiniz aylık saat paketinden düşer. Her adım için ayrı teklif beklemezsiniz.
Sözleşme on iki aylıktır. Büyük işleri ilk aylara yığmak yerine aylık kapasiteye bölerek ilerleriz. Böylece hem ödeme yükü hem de canlı sistemde değişiklik yapmanın riski azalır.
Uygun şirketler
- — Düzenli yazılım işi olan ama tam zamanlı geliştiriciye ihtiyacı olmayanlar
- — Mevcut sistemlerini zaman içinde iyileştirmek isteyenler
- — İç süreçleri için ayrı ayrı kullanıcı lisansı ödemek istemeyenler
Uygun olmayan işler
- — Yalnız bir kez yapılacak ve sonra desteğe ihtiyaç duymayacak işler
- — Hemen tam zamanlıya yakın geliştirme kapasitesi isteyen projeler
Sık sorulanlar
Eski sistemi devralmadan önce sorulanlar
Sistemi mutlaka yeniden mi yazmak gerekir?
Hayır. Yaşı veya kullanılan teknoloji tek başına gerekçe değildir. Mevcut yapı ihtiyacı makul süre ve riskle karşılıyorsa geliştirmeye devam etmek daha doğru olabilir.
Test ortamı yoksa çalışabilir misiniz?
Evet. Eski sistemlerde bununla sık karşılaşıyorum. Küçük ve sınırları belirli işlerde gerekli önlemlerle canlı sistem üzerinde çalışılabilir. Uzun süreli geliştirmede ise test ortamı kurmak genellikle öncelik olur.
İlk inceleme için ayrıca ücret alıyor musunuz?
Bir saatlik tanışma görüşmesi ücretsizdir. Anlaşma sonrasında yapılan teknik inceleme, planlama ve geliştirme seçtiğiniz aylık saat paketinin içinden düşer.
Yalnızca bir entegrasyon yaptırabilir miyiz?
Hizmet modeli tek seferlik proje yerine on iki aylık çalışma içindir. Entegrasyon, sistemin devam eden geliştirme ve iyileştirme ihtiyaçlarının bir parçasıysa uygundur.
Canlı sisteme dokunmadan önce neyi kontrol ediyorsunuz?
Talebin etkisine göre değişir. En azından ilgili veri akışını ve geri dönüş yolunu anlarım; riskli işlerde yedekleri, zamanlanmış görevleri, hata kayıtlarını, sunucuyu ve entegrasyon bağımlılıklarını da doğrularım.