Çarşamba, Mart 22, 2006

Soyutlamalar ve Ogrenme Tembelligi

Programlama yaparken -hatta tüm mühendislik problemlerini çözerken- en önemli becerilerden biri zannediyorum soyutlama becerisi. Yani bir işin detaylarını soyutlayarak, daha üst seviyeden o işi yapabilmeyi sağlamak. Java gibi dillerden, Struts, JSF gibi kütüphanelere veya design patternlardan aspect oriented programminge kadar yöntemler hep daha ileri seviyede soyutlama yapmayı sağlıyor. Hatta kimin söylediğini hatırlayamıyorum, meşhur bir yazılım mühendisi akademisyen -belki Donald Knuth olabilir- şöyle diyordu: "Programlamadaki her problem bir indirection (dolaylandırma) yoluyla çözülebilir."

Soyutlama sadece programlamayı da aşan genel bir mühendislik çözüm yöntemi. Matematikteki faydalı tüm teoremler bir soyutlama ile altta yatan şeylerin detaylarından kullanıcısını kurtarır. Diğer mühendisliklerde de soyutlama ilerlemenin temel aracı. Mesela motor kavramı, altta yatan silindir gibi mekanizmalardan tasarımcısını soyutlar.

Ancak soyutlamanın bu kadar faydalı bir araç olması, ciddi bir soruna da sebep oluyor: Ezbercilik veya düşünce tembelliği. Nasıl bir matematik teoreminin mantığını anlamadan, formülü ezberlemek bazı problemleri çözmekte yeterli olabiliyorsa, programlamadaki soyutlamaları da anlamadan iyi programlar yazmak mümkün, ama bir yere kadar.

Soyutlamaların mantığını anlamamanın, iyi programcılıkla, çok iyi programcılığı ayıran bir şey olduğunu düşünüyorum. Matematikte de böyleydi. Kimisi formülleri ezberler ve sınavı geçer. Ama yepyeni bir problem geldiğinde veya çok sayıda konu içeren bir sınavla karşılaştığında veya hiç bilmediği bir alanda kimse ona yol göstermeden problemlerle karşılaştığında formülleri ezberlemiş olmak bir fayda sağlamaz.

Yazının Devamı...

Salı, Mart 21, 2006

Yenilik Uretme Yaklasimi Nasil Olmali?

Bir yerde şunu okumuştum: Sahip olduğunuz beceriler/teknolojilerden çıkarak yeni ürün fikri üretmemelisiniz. Bunun yerine ihtiyaçtan yola çıkarak yeni fikirler üretmelisiniz.

Evet, bu ikisi büsbütün farklı yaklaşımlar. Ancak tek başına ihtiyaçtan yola çıkmak da yeterli değil. Çünkü elimizdeki potansiyel kaynaklarla neler yapabileceğimizi, hangi ihtiyacı karşılayabileceğimizi bilmediğimiz sürece yenilik üretemeyiz.

Ancak yine de öneri doğru. Çünkü doğrudan ihtiyaçlardan değil de beceri/teknolojilerden yeni ürün fikirleri geliştirilirse, o zaman pazarın ihtiyaç duymadığı şeyleri yapma ihtimalimiz çok yüksek olur.

Öyleyse, yeni ürün fikirleri ihtiyaçtan yola çıkmalı, ancak geniş bir teknoloji/beceri bilgisine sahip olmak ön koşul olmalı.

Yazının Devamı...

Pazartesi, Mart 20, 2006

Program Yazma Keyfi

Programcılık neden bilmiyorum bana çok büyük bir keyif veriyor. Bir problemi ele almak. Onu anlamaya çalışmak. Çözümler tasarlamak. Buna yönelik bir ilerleme planı oluşturmak. İlk adımı tasarlamak ve bunu uygulamak. Biraz ilerlemek. Sonra plana geri dönüp kaldığım yerden devam etmek... Bunlar bana büyük keyif veriyor. Gerçi her zaman böyle olmuyor. Belki çoğu zaman problemlerde tıkanıyorum. Ama sonra sabırla uğraşmaya devam etmek ve bir şekilde tıkanıklıkları aşmanın verdiği sevinç bir başka oluyor.

Bazen bir arkadaşıma bildiğim şeyleri anlatmaktan da çok keyif alıyorum. Ona anlatırken kafamda problemler ve çözümler daha güzel oturuyor. Sonra bana karşılaştığı problemler için danışmaya geliyor. Genelde o aşamalardan daha önce geçtiğim için, çoğunu bir şekilde yanıtlayamıyorum. Ama her zaman da böyle olmuyor.

Üniversitede endüstri mühendisliği okudum. Onu da seviyorum, ama programlama yapmak bana daha çok keyif veriyor. Çünkü üniversitede gördüğümüz derslerde bu kadar çok mühendislik problemiyle karşılaşmıyorduk. Daha büyük çaplı ancak daha az sayıda problem oluyordu. Fazla formül ağırlıklı çalışıyorduk ve mantığını bilmesek de formülleri uygulamakla problemleri çözebiliyorduk. O zaman da problemlerle uğraşmanın keyifini yaşayamıyorduk. Gerçi her zaman da böyle değildi. Bazı zamanlar çok keyif veren problemlerle de uğraşıyorduk... Son sene aldığım vaka çalışması (case study) içeren dersler böyleydi. Bir de tabi favori dersim: Sistem Dinamikleri dersi vardı.

Şimdi endüstri mühendisliğini tekrar okusaydım, öğrendiğim tüm modellerin mantığını daha iyi anlamak için özel gayret sarf ederdim. Neden bunu okurken yapmadım, acaba? Galiba insan okurken, derslere düşman olmaya kendi kendini programlıyor. Bir şey ancak ders dışı olursa, onu severek yapma isteği oluşuyor :)

Yazının Devamı...

Cuma, Mart 17, 2006

Dubai Resimleri

Marinadan bir resim. Burası dünyanın en büyük insan yapımı marinasıymış. Resimde marinanın sadece çok küçük bir kısmı görünüyor. Posted by Picasa

Yazının Devamı...

Salı, Mart 14, 2006

Yazilim Bakim Maliyeti

java.net sitesinde güzel bir yazı çıktı: "The economics of quality" Yazıda, bir yazılımın bakım sürecindeki hataların maliyetlerinin nasıl tahmin edileceği ve maliyet iyileştirmesi için nereye odaklanılması gerektiği gösteriliyor. Buna göre bakım sürecindeki hataların maliyetleri dört faktöre bağlı: Kalite, yazılımın büyüklüğü, hata başına maliyet, müşterinin bulduğu hataların oranı.

Bu dört faktörden, son ikisi kontrol edilmesi ve hatta tam olarak ölçülmesi oldukça güç. İlk iki faktör ise, yazılım geliştirmecilerin kontrolü altında.

Burada kaliteden kasıt, satır başına hata sayısı. KLOC (bin satır kod) başına kaç hata bulunuyorsa, o değer alınıyor. Yani 1000 satırdaki hata sayısı, 50 ise, Q (kalite) 0.05 ediyor.

En önemli maliyet faktörünü de kalite faktörü oluşturuyor. Malcolm Davis, yazının yazarının gözlemlerine göre kurumsal IT departmanlarında Q ortalama 0.1 civarında. Bu oranı sadece 0.05'e düşürmek bile, maliyetlerde yarı yarıya tasarruf anlamına geliyor. Benzer şekilde kurumsal IT yazılımlarında, kopyala/yapıştır türü alışkanlıkların yaygın olmasından dolayı, yazılımlar gereğinden fazla büyük. Bu tip kod fazlalıklarını temizlemekle de ciddi bir maliyet tasarrufu yapılabiliyor.

Bu yazının bana önemli gelen tarafı şu oldu: Genellikle kalitenin veya sadeliğin (kısalığın) iyi bir şey olduğunu biliriz. Ancak bunun sayısal etkisinin ne olduğunu göstermesi açısından bu yazı son derece yararlı. Malcolm Davis yazısında kullandığı rakamları 10 yılı aşan çok sayıda projede yaptığı ölçümlerle destekliyor. Ve bu yolla hesapladığı maliyet tahminleri, firmalarda çalışan bakım yazılımcılarının yıllık masraflarına yaklaşık eşit çıkıyor.

Yazının Devamı...

Pazartesi, Mart 06, 2006

Dubai

Geçen hafta Pazar günü Dubai'ye geldim. Oytek'teki işimden Cuma günü ayrıldım. Hemen iki gün içinde, hazırlanıp, Dubai'de yeni bir işe başladım. Aslında ilk günden itibaren bloglamayı düşünüyordum, ancak fırsat bulamadım.

Uçak yolculuğundan başlayayım şimdi :) Açıkçası uçağa daha önce de binmiştim, ama bu sefer nedense daha heyecanlı oldu yolculuk. Uçak kalkarken, çok tuhaf hissettim, bu kadar büyük bir şeyin uçabilmesinden dolayı. Sonra gökyüzüne biraz çıktıkça, aslında bu uçağın hiç de büyük olmadığını düşündüm. Sonra dünyayı düşündüm. Dünya da bir uçak gibi, koca evrende çok daha süratli bir şekilde uçuyor.

Dubai'ye oldukça geç bir saatte geldim. Hava limanı, gerçekten çok büyük. Burada o kadar çok görkemli yapı var ki, bir süre sonra küçük binaların ne demek olduğunu insan unutuyor. Yaklaşık herhalde 15 dakika yürüdük ve belli bir yolu da terminal içinde elektrikli bir arabayla geçerek bagajları alacağımız yere vardık.

Otele gidişim, yaklaşık 20 dakika kadar sürdü. Çok geniş ve temiz yolları var. Herhangi bir çukura rastlanmıyor, bu bizim için alışılmadık bir şey. Bütün yol kenarları, çiçeklerle ve palmiye ağaçlarıyla süslenmiş. Şeyh Zaid adlı bir yoldan otele geldik. Bu yol, İstanbul'un E-5'i gibi en popüler yol. Yalnızca otoyol gibi kullanılmıyor. Sanki aynı zamanda bir cadde. Pek çok işyeri ve önemli siteler, bu yolun etrafına dizilmiş. Aslında bu kadar gürültülü bir yolun yanında oturmak çok sağlıklı olmaz, ama ekonomik açıdan herhalde prim yaptığından insanlar buralara yatırım yapıyor.

Kaldığım otel, buradaki diğer pek çok otel ve işyeri gibi bir gökdelen. 42 katlı. Burada çok yüksek bir gökdelen talebi var gördüğüm kadarıyla. Benim kaldığım semt Marina. Dünyanın en büyük insan yapımı marinasıymış. Burada dünya rekoru inşaat rekorları kırmaya yönelik arzu çok fazla. En yüksek bina, en büyük yapay ada vs.

Bana bütün bunlar çok anlamsız ve uzun vadede ekonomik açıdan zararlı görünüyor. Ama bu işten, insanlar büyük paralar kazanıyor. Dubai'yi cazibe merkezi haline getirmek için bu tip projeler teşvik ediliyor. Zaten projelerin pek çoğunu devlet veya Şeyh Muhammed kendisi yapıyor. Sanırım burada devlet ve şeyh aynı anlama geliyor. Aynı zamanda burada şeyhlik, dini bir anlama sahip değil. Gördüğüm kadarıyla prens anlamında kullanılıyor.

Dubai'yle ilgili garip bir nokta şu, bu zenginlik petrolden kaynaklanmıyor. Dubai'nin yıllık GSMH'sinin sadece %6'sı petrole dayanıyor. Bazıları petrolün bittiğini söylüyor, bazıları gelecek için sakladıklarını söylüyor.

Dubai'deki en büyük gelir kaynağı ticaret. Dünyanın en büyük limanına sahiplermiş: Cebel Ali (Jebel Ali) limanı. Henüz gidemedim, benim kaldığım yere yaklaşık 15 km mesafede.

Burada yönümü ilkin şaşırdım. Basra Körfezi kıyısında olmasından dolayı, denizin doğu yönünde kaldığını düşünüyordum. Halbuki, Dubai'den denize bakınca, Batıya dönmüş oluyorsunuz. Çünkü burası Arabistan yarımadasının Kuzeye doğru kıvrıldığı yerde.

Dubai çok modern ve gelişmiş bir yer. Çok sayıda yabancı var. Öyle ki, İngilizceyi her yerde konuşabiliyorsunuz. Arapçadan daha yaygın. Bütün tabelalarda mutlaka İngilizce kısmı bulunuyor. İnsanların çoğunluğu Hint, Paki. Araplar yaklaşık %15 civarındaymış. Ancak çok sayıda Lübnan, Suriye gibi ülkelerden gelen Arap da yaşıyor. Nüfus az. Dubai 1.5 milyon kadarmış. Ancak nüfus artışı çok yüksek. Büyük oranda göçlerden kaynaklanıyor, artış. Ancak henüz yabancılara vatandaşlık vermediklerinden, gelenler 3-5 sene içinde ülkelerine geri dönüyor.

Ülke tam anlamıyla küreselleşme ekonomisine dayanıyor. İş gücü büyük oranda Hindistan ve Pakistan'dan tedarik ediliyor. Uzmanlık ve yöneticilik işlerinde, Avrupalılar çok yaygın. Genellikle çok uluslu firmaların, Orta Doğu ve Afrika merkezleri Dubai'de. Ayrıca reexport amaçlı çok şirket de var. Şimdi giderek, servis ve turizme dayalı bir ekonomi haline gelmeye çalışıyor.

Araplar, son derece cana yakın ve iyi insanlar. İlişki kurmak ve sohbet etmek çok kolay. Ancak şu ana değin, yerli Araplardan ziyade Suriye, Lübnan tarafından Araplarla tanışabildim. Yerli Araplar, biraz daha uzak. Genelde çok zenginler. Üst yönetici veya yatırımcı konumlarında olduklarından, çok fazla bağlantı kuramadım henüz.

Şehrin altyapısı her yerde çok iyi. Tertemiz ve bakımlı bir şehir. Ancak şehrin arka sokaklarında, oldukça zor şartlarda yaşadıklarını tahmin ettiğim Hintliler de var. Evlerin eşiklerinden görünen kısımları pek iyi sayılmaz, ama belki içerileri iyidir. Duyduğum kadarıyla, bazı yabancıları çok düşük fiyatlarla çalıştırıyorlarmış. Zaten pahalı da bir şehir olduğundan, bir arkadaşımın şirketinde çalışan Hintliler 30 kişi bir evde kalıyormuş.

Çok fazla alışveriş merkezi ve lüks mağaza var. Bunlar da genellikle son birkaç yıl içinde inşa edilmiş. Ancak hala daha pek çoğu da inşa halinde. Tuhaf ve henüz anlayamadığım bir ekonomi var burada. Yerli iş gücünün bu kadar kıt olduğu halde, petrole de dayanmadan bu kadar gelişmiş ve iş yapan bir ekonomi olması çok ilginç. Kafamda, bu sistemin ne kadar sürdürülebilir olduğu sorusu sürekli duruyor. Hindistan ve Pakistan gibi çok yüksek nüfusa sahip ve iyi eğitimli çok büyük bir iş gücü arzı olmasa herhalde bu ekonomi oluşamazdı.

11 Eylül'den sonra Arapların Amerika ve İngiltere'deki sermayelerini çekmesinden dolayı, son birkaç yılda aşırı miktarda yatırım yapılmış Dubai'ye. Gayrimenkul fiyatları fırlamış. Taksi ücretleri 4 misline çıkmış. Bu kadar yeni gökdelen ve alışveriş merkezleri yapıldığı halde, hala şehrin bazı semtlerinde inşaat vinçlerinden geçilmiyor.

Dün yanlışlıkla ve mecbur kaldığımdan bir Hint lokantasına gittim ilk defa. Kimseye tavsiye etmem. Çok garip baharatlar kullanıyorlar yemeklerde. Mesela tavuk yerken, ağzınıza hiç anlamadığınız ve bir şeye benzetemediğiniz çok keskin bir baharat tadı gelebiliyor.

Çok geç saatlere kadar (akşam 9) burada çalışıyoruz. Bu yüzden, çok fazla vaktim olmuyor. Buranın alışkanlığı değil. Ancak benim çalıştığım firma danışmanlık firması olduğu için, onlardan kaynaklanan bir kültür.

Buranın sevdiğim bir yanı kendimi Peygamber Efendimizin (ASM) memlekindeymişim gibi hissettirmesi. Bazen sıkılınca, bunu düşünüyorum. Her ne kadar bayağı bir mesafe de olsa Medine'ye, yine de bu güzel bir duygu.

Tekrar görüşmek üzere. Gelecek yazım için buraya ait bazı resimler çekmeye çalışacağım...

Yazının Devamı...