Uygulamayı Tasarlarken…



Bu hafta yine uygulama programlarıyla, yine bunların tasarım ve geliştirilmesiyle ve yine bunları kullanan kurumların iş hedefleriyle uyum sağlayıp sağlamadıkları konusuyla uğraşmayı çok da fazla arzulamıyordum ama, çevremde bugüne kadar görmüş olduğum örnekler beni yine işin bu tarafını kurcalamaya yöneltti.

Şu anda geleneksel bilgi işlemin temel taşını oluşturan ama yeni nesil tarafından demode olarak kabul edilen, hata kabul etmeyen uygulamaların çoğunu çalıştıran "anabilgisayar" sistemlerinin donanım ve özellikle yazılım bileşenlerine bir bakın. "Bunlar batch sistemler, artık geçmişte kaldı. Hangi devirde yaşıyoruz?" diye her fırsatta saldırı konusu olan bu sistemlerin ilk tasarlandığı yılları da bir düşünün: O yıllarda ne her dakika ağıza sakız edilen "Müşteri memnuniyeti" veya "Toplam kalite" diye bir şey vardı, ne de "Müşteri İlişkileri Yönetimi" kavramı üzerine günlük katılım bedeli binlerce dolar olan uluslararası seminerler düzenleniyordu.

Ancak o sistemlerde önemli bir nokta gözardı edilmemişti: Sistemlerin donanım ve ara yazılım (Middleware) yapısı, tamamıyla işlem, yani müşteri işlemine yönelik olarak tasarlanmıştı. Değişik sistemlerde değişik adlar alan "TranCode" veya benzeri işlem kodları tanımlanır, o işlemin yapılabilmesi için gerekli veriler günümüzde hiç de estetik görülmeyen ekranlara girilir, ilgili programlar çalışır ve işlem orada biterdi. Sistemin bu yapısı, uygulamaları tasarlayanlara da, ister-istemez böyle bir bakışla işe başlamaları gerekliliğini hatırlatırdı. Birçok ciddi kuruluştaki temel uygulamaların hala "Anabilgisayar" sistemlerinde çalışıyor olmasında, bu sistemlerin diğerleriyle kıyas bile kabul etmeyecek güvenilirlik ve kusursuz çalışma özelliklerinin yanı sıra, bu tasarım felsefesi de rol oynamıyor mu dersiniz?

En başta "Bu verdiğiniz örneğin sistemle ne ilgisi var? Oturur programını yazarsın, her ortamda bu yapılır" diye karşı çıkacak okuyucularımıza "Elbette haklısınız, ama pratikte olmuyor işte…" diyerek örneğimizi verelim ve yazımızı sonlandıralım: Diyelim ki müşterinizin satın almak ve istediği ve sizin de her ay düzenli olarak adresine göndermeniz gereken bir mal var. Müşteri sizi arıyor ve talebini bildiriyor. "Demode" dediğiniz sistemde, bundan belki de 20 yıl önce yazılmış uygulamada ne olmasını beklersiniz? Müşteri numarası ve talebi bir "İşlem" ekranına girilir, sonra da otomatik olarak:

Hemen basılmak üzere gönderi etiketi bir "Spool" dosyasına eklenir, veya etiket anında basılır
İlk ay için gönderilen mal bedeli müşterinin hesabına borç kaydedilir
Bundan sonraki aylarda otomatik gönderme için hizmet tanımlanır
Bu işlemin hangi satış elemanı tarafından yapıldığı da "Log" dosyasına yazılır değil mi?
Peki açık sistemler üzerinde yazılmış yepyeni bir uygulamada, dakikalar süren bütün bu işlemlerin elle, müşteri ile konuşulurken yapılmak zorunda olduğunu, bu işleri otomatik olarak yapmayı sağlayacak programı yazıp sorunu çözmenin ise, uygulamayı yazan firmanın "Başka programlarla veri tabanında kayıt ekleme/değiştirme yaparsanız size destek vermeyiz. Sorumluluk kabul etmeyiz" tehdidi nedeniyle mümkün olamadığını söylesem ne dersiniz?



Oguz C. Gel


info@oguzgel.com
http://www.oguzgel.com