Hal 100:Kucağına düşen 3ncü parti ürün üzerinde bug/fix yapıp sevinir ve ardından yeni taleplerle karşılaşır.

Özellikle sahada kullanılan ürünleri olan firmaların olmassa olmaz ihtiyaçlarından birisi teknik destektir. Var olan ürünlere yapılacak yeni eklemeler veya güncellemeler haricinde, müşterilerden gelen geri bildirimler doğrultusunda acil olarak halledilmesi gereken vakalar da vardır. Bunlar her ne kadar bazı profesyonel firmalar tarafından seviyelendirilip uygun birimlere yönlendiriliyor olsa da hayat bu kadar toz pembe değildir. Doğruyu söylemek gerekirse olası pek çok vaka vardır. Bu vakalardan belki de en kötüsü bir servis sağlayıcıdan alınmış olan ürünler ile ilgilidir. 

  • Ürüne olan teknik destek, sahibi olan firma tarafından kesilmiş olabilir,
  • Ürünün sahibi teknik destek için yüksek miktarda fatura kesiyor olabilir(Vendor Lock-In anti pattern’ inin oluşma nedenidir),
  • Ürün sahibi firma kapanmış olabilir,
  • Ürün eskidir ve aslında üzerinde çalışmış geliştiriciler sahibi olan firmada artık yoktur
  • Ürünün teknik dokümantasyonu olmayabilir vb

Eğer söz konusu ürün, onu kullanan firma tarafından kolay kolay terk edilemiyorsa durum vahimdir. Ürün yeteri kadar ayrık yapıda tutulmamışsa sistemden kopartmak ve yerine başka bir alternatifi koymak her zaman güçtür. Durum böyle olunca birisinin o ürün üzerinde değişiklik yapması şarttır.

Üçüncü parti bir ürünün üzerinden değişiklik yapmak risklidir. Ancak bazı sebeplerden ötürü servis sağlayıcından habersiz olarak değişiklik yapılması çok daha risklidir.

Çünkü servis sağlayıcının yeni bir sürüm çıkartması halinde, yapılmış olan güncellemelerin bu versiyona da aktarılması gerekir. Bu, Dead End adı verilen anti-pattern’ in yolunu açar.

Eğer yukarıda sayılan sebeplerden ötürü 3ncü parti ürün üzerinde değişiklik yapılması kaçınılmazsa elden bir şey gelmez ve bir geliştiricinin bu konuya eğilmesi gerekir. Ürünün çeşidine, isteğin aciliyetine göre başına verilecek adamın kaliteli bir kumaşa sahip olması gerekebilir. Çünkü 3ncü parti ürün tam bir kod çöplüğüne benzeyebilir.

Ürünün hızla analiz edilmesi, çabucak keşfedilmesi, büyük resmin hemen fark edilmesi, içeride kullanılmış mimari kalıp veya prensiplerin anlaşılması, müdahale edilmesi gereken en uygun yerin bulunması gerekir. Bir anlamda geliştiricinin tersine mühendisliğin farkında olması ve kullanması icap edebilir.

SOA gibi üst düzey mimariler içeren, farklı platformlarda koşan ürünlerin bir arada konuştuğu sistemlerde, çıktıları kiritik olan 3ncü parti ürünler kullanılmakta olabilir.

Bu ürünlerin sistemden kolayca kopartılamadığı, üstüne bir de teknik destek alınamadığı ve bazı kanuni kurallar yüzünde acil değişikliklerin yapılması gerektiği durumlar karşısında yetkin geliştiricilerin bir mucize yapması beklenir.

Bu mucizeleri yapan geliştiriciler gerçekten de vardır.

Anahtar Kelimeler (Bunlara Bir Bakalım)

  • Dead End Anti Pattern
  • Lavaflow Anti Pattern
  • Vendor Lock-In Anti Pattern
  • Tersine Mühendislik (Reverse Engineering)

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


6 × = elli dört

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>