Beklenmeyen Sorunlar - blog | mehmet doğan
Son birkaç haftadır büyük bir proje üzerinde yoğun bir şekilde çalışıyordum ve en sonunda bitti. Bu proje esasında birkaç yıl önce başlayıp bitmişti fakat projenin etrafında kurulu olan teknoloji, beklenmeyen bir şekilde değişti ve bu nedenle yeniden üzerinde çalışılması gerekti.
Bu tip elde olmayan nedenlerle yeniden-canlanan projeler, hem zaman, hem de iş gücünü, diğer projelerden çalıyor. Bu proje üzerinde çalışırken, birkaç ay önce okuduğum bir yazı geldi aklıma.
ABD ve Kanada’da ve daha birçok ülkede, taşıt sahipleri, arabalarının plakalarını kişiselleştirebiliyorlar. Araba plakaları, neredeyse arabanın kullanımı kadar eski olsa da bu kişiselleştirilmiş plaka yöntemi, çok eski değil. Arabanızla şehir içinde gezerken önünüzdeki taşıtın plakasında "UNIX" ya da "GEÇ BENİ" gibi kelimeleri okumak mümkün. Plakalar ve arabalar kadar eski bir şey daha var: Park Cezaları. Hepimiz çok iyi biliriz o silecek ile camın arasına sıkıştırılmış ceza kağıtlarını. Peki bir kaç ay içinde 2500 tane park cezası almayı başarabilen var mı içinizde? Cevabınız hayır ama bu soruyu Los Angeles’da yaşayan Robert Barbour’a sorarsanız, onun cevabı "evet" olacaktır.
Robert Barbour, 1979 yılında, çok sevdiği hobisi olan denizcilik ile ilgili kişiselleştirilmiş bir plaka almak için taşıt bürosuna başvurur. Taşıt bürosu, Robert Barbour’a, doldurması için bir form verir. Bu formda üç tane seçenek yazma imkanı vardır. Taşıt bürosu, bu seçeneklere bakarak, eğer ilk seçeneğindeki isim başka bir kişiye verilmemişse, bu plakayı o kişiye verir. Eğer bu plaka başkasına ait ise, sıradaki diğer bir seçeneğe geçer. Robert Barbour, bu seçeneği sırasıyla şu şekilde doldurur: "Yatçılık", "Denizcilik" ve "Plaka Yok".
Robert Barbour, yalnızca ilk iki seçeneği istemektedir ve eğer bu seçenekler, başkasına verilmişse, kişiselleştirilmiş plaka istememektedir. Bu nedenle üçüncü seçeneğine "Plaka Yok" yazar. Taşıt bürosu, ilk iki seçeneğin başkasına ait olduğunu tespit edip, Robert Barbour’in üçüncü seçeneği (!) olan "Plaka Yok" plakasını adresine gönderir.
Robert Barbour, bu hatayı düzeltmek yerine, hoşuna giden bu plakayı aracına takar. Birkaç ay içinde de 2500’u geçen park cezasını, posta kutusunda bulur. Sorun, park cezası yazan kişilerin, eğer taşıtın plakasını okuyamadığı ya da taşıtın plakası olmadığı durumlarda, ceza kağıdına "Plaka Yok" yazması. Bu hata, taşıt bürosuna binlerce dolar ve Robert Barbour’a birkaç ay mahkemelerde ve yazışmalarla zaman geçirmeye mal olur. Bu tip örneklerin sayısının çoğalması ("Bilinmiyor", "Notag", "Kayip" v.b.) sonucu, taşıt bürosu, problemi, plakası olmayan taşıtlar için "None" kelimesini kullanıp, bu terimi de kişiselleştirilmiş plaka isimlerinden çıkararak çözmüşler.
Suç kimde? Günlük çalışma prensibi haline gelen ve her zaman kullandıkları terim olan "Plaka Yok" terimini kullanan park cezası yazan memurlarda mı? Yoksa böyle bir hatanın olabileceğini göremeyen kişiselleştirilmiş sistem mühendislerinde mi?
Bence hiç kimse suçlu değil. Hata, geleneksel sistemin etrafında büyüyen yeni teknoloji ve yeni metotlar.
Peki biz, bu gibi sorunları, daha oluşmadan nasıl yok edebiliriz? Sizin basınıza hiç böyle bir sorun geldi mi? Planlarınızı nasıl yapıyorsunuz? Bir engelleme modeli var mı elinizde? Yoksa bu tip sorunlar oluştukça mı çözüm üretiyorsunuz?
Benim fikrim içerik ve programlamanın tam ayrılmasını sağlamak. Ayrıca veri tabanlarının da değişebileceğini varsayarak, veritabanlarını bir standart olan XML dosyaları şekline getirirdim. (tabi bu xml'lerin çok iyi planlanması gerekiyor. Bu XML'ler sayesinde veriyi yeni sisteme otomatikman girecek betikler kolayca hazırlanabilir)
Ayrıca daha öncede konuştuğumuz gibi stratejimiz iletişim olmalı, teknoloji ise sadece araç. Bu sayede teknolojiyi değiştirsek dahi stratejimiz bir teknolojiye bağımlı olmadığı için yeniliklere açık olmuş oluruz.
Mehmet N. Tuncel demiş ki:
Sistem kurarken standartlar ve kısıtlamalar getirmek zorundasınız. Ama bu kısıtlamanın sınırı ne olmalıdır? Bu blogdaki yazıların bir ID numarası olmasını isteyelim. Bu sayı kaç basamaklı tutulmalıdır? Bence enaz 10 üzeri küsür trilyon filan olmalı. Sizce de başka birşey.. En iyilemeyi nasıl yapağız? Bu sistemi kurmak istiyorsak yapmalıyız. O zamanda 'taşma'dan kaçınmanız imkansızdır.
Tercih sizin. Benim tercih ve çözümüm: anarşist bir sistemden başkası değildir. Ya da Kaos.
Sorunuz benim de aklıma yazarını hatırlamadığım bir kitap getirdi. İncelemek isterdim: Zaman Bağımsız Bina Tasarımı.
"Saatleri Ayarlama Enstitisü" benim lise yıllarımdaki edebiyat derslerimden aklımda kalan Ahmet Hamdi Tampınar'ın kitaplarından birisi, kitabı hiç okumadım, özetini, konusunu bilmiyorum.
Tam bu sıra benim de beklenmedik bir sorunum var ve sorunum can sıkıcı olduğu kadar da bir hayli komik. Büyük bir siteyi kendi satın aldığımız sunucuya Türkiye'ye yerleştirdik, sorun çıkması beklenebilecek veri transferleri, veritabanı taşıması gibi işlemlerin hiçbirinde sorun çıkmadı.
En büyük sorunumuzun sunucumuzun sitem saatinin esnemesi ve gerçek saat göre yavaş kalması. Sunucumuzda günler ortalama olarak 28,5 saat sürüyor ve sitedeki tüm zamana bağlı işlemlerin esnemesine yok açıyor.
Bu benim için gerçekten beklenmedik sıradışı bir sorun ve bu yazının ertesine gelecek yeni yazının bu soruna nasıl bir erken çözüm getireceğini merak ediyorum.
Sistem mühendisliğinden biraz uzak bir işle meşgulüm. Ama yine de kendimi farkında olmadan içinde bulduğum sistemlerle benim de başım belaya girmedi değil.
1) İnternete bankacılığı ile ilgili şifremi yenilememi istediklerinde, yıllar önce kullanmayı bıraktığım ama maaşımı almak için mecburen çalıştı(rıldı)ğım bir bankanın sistemi bana şifremi vermek için 10 yıldır kullanmadığım bir hesap numarasını soruyor. Doğal olarak hatırlamıyorum. Durum çıkmaza girince onu öğrenmek için tekrar aradığımda şubeye şahsen başvurmam gerektiğini öğreniyorum. Şube Ankarada ben İstanbuldayım. Hala internet şubelerini kullanma yolu bulamadım. Neyse sonuçta bankadan nefret ediyorum maaşımı yattığı gün tamamını çekiyorum onlara hiçbir faydamın olmasını istemiyorum vs. vs. vs.
2) Bahsedeceğim olay ise başıma gelmesini istediğim türden ama İngiltere de yaşandığını gazetelerden okumuştum. İngiltere'de sokaklardaki ankesörlü telefonları açtığınızda sistem sizi santrale bağlıyor ve karşınıza çıkan kişi size hangi telefon hattını kullanmak istediğinizi soruyor. Siz seçiyorsunuz A, B, C Tel neyse farklı tarifeler ve kampanyalarla da şirketler müşteri çekmeye çalışıyor falan. Akl-ı Evvelin biri de farketmez anlamına gelen "No Matter" adlı bir telefon şirketi kuruyor. ( Bu arada telefon şirketi kurmak biraz kolay galiba). Bir anda çok sayıda telefon kullanıcısının tercihi haline geliyor. Durum farkedildiğinde rakip firmalar haksız rekabet oluştuğunu öne sürerek dava aç.ıyorlar ve firma kapanıyor. Çünkü hat tercih ederken genelde insanlar farketmez diyorlarmış. Doğal olarak da santral onları "No Matter" şirketine aktarıyor. Şirket kapanmış kapanmasına ama bu arada iyi para kazandıkları kesin gibi.
Zafer: Gercekten guzel bir ornek (No Matter) yukarida soylemek istediklerime. Gunluk is yasami icine giren bazi metotlarin, teknoloji ya da diger nedenlerden dolayi beklenmeyen sekilde gelismesi.
Umut: Yukarida sordugum sorularin cevabini bende bilmiyorum. Boyle beklenmedik sorunlari engellemek icin nasil bir planlama yapmali? Hicbir fikrim yok. Sanirim nedeni, sorunlarin beklenmedik olmasi. Her sirket risk yonetimi yapar. Muhasebede de vardir bunun yeri ama teknoloji sektorunde bu nasil uygulanabilir?
Ornegin Amazon.com sitesinde herkesin cok iyi bildigi bir fonksiyon var: Musteri Yorumlari. Musteriler, ziyaretciler, okuduklari kitaplar hakkinda yorum yapar ve bu kitabi almak isteyen kisiler yardimci olurlar (bakiniz: Inukshuk). Bu yorumlar kronolojik sira ile gosteriliyordu. Amazon bu sistemi yillar once baslatti ve bu kadar popular olacagini ve cok genisleyebilecegini tahmin etmedi. Jared Spool'un verdigi bir ornege gore, Harry Potter kitabina simdiye kadar 5155 yorum yazilmis. Peki bu yorumlar icinde yararli olani bulmak mumkun mu? Iste Amazon bunu dusunemedi. Yani hicbir kitabin bu kadar yorum alacagini bilemedi. Beklenmedik gelisme. Ama bunu, basit bir yontem ile cozdu. Yorumlarin yanina "Bu yorum size faydali oldu mu?" oylama fonksiyonunu koyarak, yararli olan yorumun, ilk once gorunmesini sagladi.
Nasil az risk ile kurtulabiliriz beklenmeyen sorunlardan? Aranizda iyi bir yonteme sahip olan var mi?
Ömer Balyalı: Aslında beklenmedik sorunlara değil, fakat olası sorunlara karşı güzel çözümler yazmış, şehir planlaması yaparken ileride arabaların artacağı, deprem bölgelerinde deprem olacağı vb. sorunlar aslında beklendik sorunlar diye düşünüyorum. Bu yüzden mesela vertabanı, teknik ve tasarım konuslarını ayırmak web projeleri yönetiminde beklendik sorunlara güzel çözümler.
Bence beklenmedik sorunlara karşı en iyi çözümse, ortaya çıktıklarında onları çözmek için gerekli yedek gücü ve bilgiyi her zaman hazır bulundurmak olabilir.
Bir soru da ben sorayım: "Web sitelerini sigortalayan sigorta şirketleri var mıdır?" Sigorta şirketleri değerli şeyleri kaybettiğimiz zaman onları eski haline getirmek sözü vererek, bizi onlara para vermeye ikna ederler, siz web siteniz için para verir misiniz?
Heh heh, mesela "ALTI ÜSTÜ TASARIM"a sigorta yaptırır mısınız? :)
Sanırım en önemli nokta şu, "kullanıcı deneyimi ve kullanıcı odaklı sistem geliştirme" yaparken bir beyin fırtınası yapılır. Burada olabilecek konular veya fonksiyonlar dışında kalan çoğu şey elenir. Bana kalırsa bir de "olamayacak veya bugün için olması imkansız gözüken durumları" beyin fırtınası yaparak belirlemek.
Faydası nedir? Bugün kimse internetin, bilgisayarın bu kadar gelişeceğini tahmin edemezdi. Televizyon ve radyo için saçma diyen adamlar da bilemezdi. Hele ki bugün bu alandan en çok ekmeği yiyen Bill Gates'in "internet güzel, iyi ama ev kullanıcıları bunu kullanmaz, kullanmaları için bir sebep yok" derken de bu durumda olduğunu farkedelim.
(Bir çok yerde dile getirdiğim Türkiye'de edevlet konusu hakkında)
Korkarım bir süre sonra Türkiye bir sanal veri çöplüğüne dönüşecek. Ve 20XX yılında televizyonda şunu aynen göreceğiz; "edevlet projeleri en baştan hazırlandığı için/yeniden yapılandırıldığı için ... ay/yıl bütün kamu dairelerinde işlemler eski sisteme (kağıt-kalem-daktilo) dönecek".
Neden mi? Benim gördüğüm kadarıyla edevlet "olsun" diye yapıldı. Ve maalesef ihale mantığını bakanlıklara izin vererek parçalı bulutlu yaptılar. Bu ne demektir? Ben bir vatandaş olarak her bakanlık için ayrı bir kayıt veya ayrı bir bölüme sahip olacağım. Yani veritabanları ilişkili değil.
Bunun zararı kağıt-kalem-ofis mantığının sanal versiyonu oluşu.
Eğer ben soyadımı değiştirirsem bunu tek bir veritabanından halledebilmesi gerekir devletin. Fakat düşünün ki size şöyle bir açıklama geldi "mahkeme kararı ile soyadınızı değiştirdiniz, bütün bakanlık veritabanlarında değişikliğin yapılması 15-45 günü bulacaktır."
Beklenmeyen sorun nerede peki? Bu zaten görülebilen bir sorun.
Evet bunu ben görebilirim peki ya eski sistemin aynen sanalını uygulamanın devlet çalışanları için bir eksiği var mıdır?
Yani her dosyanın bir çok yerde bulunuşu devlet için doğal bir durumdur ve internette de aynısının olabileceği onlar için doğaldır.
Zafer Karkaç'ın dediği gibi, ben banka hesabımı neden ana şubemden öğrenmek zorundayım ki? Evet sebebi belli, evraklar/kayıtlar orada...
İlk yorumda söylediğim gibi teknoloji veya tekniği sadece araç olarak görmeliyiz ve bunlar hep değişebilen şeylerdir. İşte edevlet ile değişmesi gereken fakat baştan yanlış planlanan nokta da budur. edevlet ile evrak ve veri saklama tekniği değişmedi. Bu teknik değişecek, bunun için teknolojide değişecek, üstüne üstlük en önemli kısım olan veriler de değişecek.
Bir senaryo yazayım;
Ben Maliyede kişisel bir bilgimi değiştirdim, mesela adresimi. Ama bu değişiklik diğer bakanlıklarda yapılmadı, mesela bu tip bilgilerin tutulduğu ana bakanlık (ya da die mi oluyor) değiştirmedi. Yani şu an ki sistemde 2 farklı kişisel bilgim var. Ama daha sonra baktılar ki edevlet sistemi gerçekten yanlış, tek veritabanlı sistem geliştirdiler (daha doğrusu tek merkezden değiştirilebilen ilişkili veritabanları) ve benim bu MB'daki değişen bilgim de yok oldu. Çünkü ana bakanlıktaki eski bilgimi bütün bakanlıklar güncel bilgi gibi girdiler.
Ve bu yüzden diyelim ki ben ödemem gereken bir çok cezayı adresime teslim alamadım. Ne olacak? İşte bu plaka sorunu gibi...
Umut, web sigorta sirket fikri gercekten cok orjinal bu arada :) Merak ettim acaba bu isi yapan kimse var mi? Gercekten ilginc bir fikir ve gercek olmamasi icin hicbir neden yok. Evimiz, arabamizda yandiginda sigorta zarari karsiliyor. Ama ya sitemiz hack edilirse, ya da elektrik voltaji yuzunden serverda bulunan veriler kaybolursa?
Katılıyorum, web siteleri değerli şeyler, değerli şeyler de sigorta edilirler, bu fikri aklımızın bir kenarına koyalım derim... :)