Yazılımın günümüzdeki yerini anlatmak için belki bir kaç rakam ve örnek önemli fikirler verebilir. Bugün bir cep telefonunda yaklaşık 15 milyon satır, bir arabada 50 milyon satır kod (bilgisayar program komutu veya komut dizisi) bulunmaktadır. Bunun haricinde aşağı yukarı tüm elektronik cihazların temelini oluşturan transistörlerden bugün dünyada kişi başına 1 milyar tane düşüyor olması ve adeta gerçek kimlik gibi kullanılabilen radyo frekanslı kimlik kartlarının (RFID) sayısının otuz milyara yaklaşması teknolojik gelişimin göstergelerinden birkaçıdır.
Transistörlerin ve dolayısıyla elektronik cihazların sayısının artışı aslında kullanıcıların yazılım ihtiyaçlarının da artışıyla karşılıklı bir ilişki içindedir. Giderek karmaşıklaşan yazılımlar daha çok transistör sayesinde çalışabilir hale gelmekte, artan elektronik cihazlar ise daha fazla yazılıma ihtiyaç duyulmasının temel faktörlerinden bir tanesini oluşturmaktadır. Bugün dünyada her gün 50 petabyte (elli milyon kere bir gigabyte) yeni bilgi üretilmektedir. Arabanızı park ettikten sonra telefonunuzda bir düğmeye basıp alışveriş merkezine giderseniz ve tekrar bir düğmeye basarsanız, çıkışta arabamı nereye park ettim diye düşünmenize ihtiyaç olmayacaktır. Aynı şekilde arabanızda giderken size en yakın otoparkların nerede olduğunu ve bu otoparklarda kaç arabalık yer bulunduğunu gene telefonunuzdan bir tıkla öğrenebilirsiniz.
Yazılımın, üretim maliyetlerinin düşmesindeki ve verimin artmasındaki payı da yadsınamayacak düzeyde. Boeing firması, 767 uçağını tasarlarken 75 rüzgâr kanalı kullandı. Ancak 787 uçağı tasarlanırken hiç rüzgâr kanalı inşa etmedi ve sadece bilgisayar yazılımı kullanarak sanal rüzgâr kanalları ile testlerini gerçekleştirdi. Böylece, rüzgâr kanalının üretim maliyetinden kurtulmak mümkün oldu. Bu kanalların ciddi ortak özellikler gösterdiği de hesaba katılırsa, yazılım ile geliştirilmeleri ciddi kazançlar getirebilmektedir. Fiziksel bir rüzgâr kanalının üretiminde her ne kadar bir önceki kanalın üretimini mümkün kılan kavramsal bilgi yeniden kullanılmış olsa da, fiziksel olarak bu kanalın inşası için ciddi bir maliyet söz konusudur. Ancak sanal bir rüzgâr kanalından birden çok üretilirken hem kavramsal hem de yazılımsal altyapının yeniden kullanılması mümkün olmaktadır. Bunun ötesinde sanal bir kanalın gerçek bir kanala oranla çok üstün bir değiştirilebilme ve uyumlandırılabilme avantajına sahip olması, yıpranmasının söz konusu olmaması ve idame ve güncelleme maliyetlerin de çok düşük olması diğer avantajlar arasında.
Tüm bu gelişmeler ve kazançlar yazılım sayesinde mümkün oluyor. Karmaşıklaşan ihtiyaçlarımız ve teknolojinin sağladığı rahatlık, klasik seri üretim anlayışından uzaklaşan bir “kişiye özel seri üretim” anlayışını da beraberinde getiriyor. Tabii böyle bir ortamda yazılımın hızlı üretilmesinin ve önceki yazılım geliştirme faaliyetlerinde edinilen bilgi ve kurulan altyapıların yeniden kullanılmasının önemi gittikçe artıyor. Bunun sağlanması ise yazılım geliştirme süreçlerindeki ve yöntemlerindeki iyileştirmeler ve tekniklerin kullanımına bağlı. Kullanıcı ihtiyaçları çok hızlı değiştiği içinse kimi zaman bu uyum sureci kolay olmuyor. Yazılım şirketleri yeni teknikleri devreye almakta ve kaliteli yazılımı yeniden kullanım prensipleri doğrultusunda üretmeye ürküyorlar. Bu durum, şirketleri gereksinim duydukları yazılımları üretmek için daha ucuz yerlerin arayışına itiyor. Bugün Çin ve Hindistan’ in “Yazılım Devi” gibi gösterilmesinin arkasında yazılım sektörünün bu hızlı gelişimi ve gereksinimlerin karşılanabilmesi için gerekli metotların devreye alınmasının gecikmesi önemli bir rol oynamakta. Ancak elbette bu teknoloji şirketleri işin bu yüzünü tersine çevirecek çalışmaları da bir yandan takip ediyor ve destekliyor.
Uluslararası ve ulusal yazılım anlayışı
Peki, yazılım sektöründe baş gösteren bu sıkıntılar ve gereksinimlerle başa çıkmak için yurtdışında ve Türkiye’de neler yapılıyor? Sektörün sorunlarını ve odak noktaları takip etmek için ilgili akademisyenlerin ve sanayi kuruluşları temsilcilerinin katıldıkları sempozyumları, panelleri ve konferansları takip etmek gerçekten önemli. Geride bıraktığımız iki ayda bu konuların tartışıldığı ve uzmanların bir araya geldiği bir uluslararası bir de ulusal konferansta da konuşmacı ve katılımcı olarak bulundum. Türkiye’de ve uluslararası düzeyde yazılım mühendisliğinin sorunları ve geleceğine ilişkin olarak yapılan değerlendirmeler arasında gördüğüm ciddi farklardan burada söz etmek gerekiyor.
Öncelikle Ağustos 2009 sonunda San Francisco’da gerçekleştirilen 13. Uluslararası Yazılım Ürün Hatları Konferansındaydım (SPLC 2009). İsminden de anlaşılacağı üzere, yazılımın da bir ürün gibi değerlendirildiği ve aynen bir otomobil fabrikasındaki arabalar gibi bir hat üzerinde çeşitli eklemeler yapılarak son halini aldığı fikri, yazılım ürün hatları kavramının temelini oluşturmakta. Yazılım dünyasının önde gelen akademisyenleri ve sanayi kuruluşları temsilcileri, yazılımda geçmiş bilgilerin ve altyapının yeniden kullanımını arttırıp, nasıl daha hızlı ve daha kaliteli yazılım üretilebileceği konusu üzerinde durdular. Bakıldığında temel amacın yazılımın her an el altında bulunan, ait oldukları uygulama alanında özelleşmiş ve kullanıcı ihtiyaçlarına yönelik bir takım yazılım parçacıklarının birleştirilmesinden oluşturulmasını sağlamak olduğu fikri on plana cıktı. Bu sayede yeniden kullanım seviyelerinin artacağı, daha kaliteli yazılımların daha düşük maliyetle ve daha az eforla üretilebileceği vurgulandı.
Ulusal Yazılım Mühendisliği Konferansımız (UYMS 2009) ise Yıldız Teknik Üniversitesi ve Elektrik Mühendisleri Odasının organizasyonu ile Ekim ayında gerçekleştirildi. Teknik sunumların gerçekleştiği bölümlerde birçok alana yönelik çalışmalar ve tartışmalar yapıldı ve genel olarak faydalı geçtiği kanaatindeyim. Ancak konferansın geneline, davetli konuşmacılarla olan soru cevap bölümlerine ve panellere bakıldığında bazı noktalarda uluslararası ortamlarla ciddi anlayış farklılıkları bulunduğunu belirtmek gerekiyor. UYMS, yazılım mühendisliğinin sorunlarının ve geleceğinin tartışıldığı bir ortam olmalıyken odak noktası kaydı ve gerek açılış konuşmasında gerek takip eden bazı konuşmalarda konuyla hiç ilgisi olmayan toplumsal olaylara girildi ve ayrıca panellerde sadece sektördeki olumsuzluklar ön plana çıkartıldı. “Yazılım mühendisliğine bilgisayar mühendisleri mi sahip çıkmalı yoksa elektronik mühendisleri mi daha fazla söz sahibi olmalı?” gibi sonu gelmeyecek mesleki tartışmalara girildi. Bunların en güzel özetini ise belki, her şeyi birbirine karıştırıp, üzerine de biraz acılı "ne olacak bu ülkenin hali" sosu eklemek” olarak yapabiliriz. Evet, bu konuları da konuşmamız ve tartışmamız gerekiyor ancak ulusal yazılım mühendisliği sempozyumu bunun yapılması için doğru yer değil. En son ve belki de en önemli olarak da birçok akademisyen ve araştırmacı durumu şöyle özetledi: “Treni kaçırdık, Çin ve Hindistan olamadık”.
Bu söylem Türkiye’de bilişimle uğrasan çoğu kişinin zaman zaman vurguladığı ve çok göz onunda bulunan, hepimizin aşina olduğu bir söylem aslında. Şunu iyi anlamak gerekiyor ki, teknolojinin üretilmesinde ve geliştirilmesinde ön saflarda bulunan ülkeler, Çin ve Hindistan gibi ülkelerde yazılım geliştirme üsleri kurarken buradaki ucuz işgücünden faydalanmayı amaçlıyorlar. Tabi tek itici faktör bu değil. UYMS’ ye davetli konuşmacı olarak katılan IBM Rational Software Development Genel Müdür Yardımcısı Michael O’Rourke’un da vurguladığı gibi, bu kadar çok insanin bulunduğu ve gelişmekte olan ülkelere yatırım yapılmasının asil nedeni, bu gelişen ülkelerde zamanla zenginlesen insanların, yatırımları yapan firmalar için önemli bir müşteri kitlesi oluşturacak olması. Michael O’Rourke’un deyimi ile bu pazarlara hitap edecek yazılımların geliştirilmesinde bu pazarlardaki kültürü ve geçmişi anlayan insanların rol alması gerekiyor. Bu gerekliliğin bilincinde olduğunu ise “ 3000 yıllık bir tarihi biz mi değiştireceğiz? şeklindeki bir farkındalıkla özetliyor.
UYMS’de ise kaçırılan bu trenden hep bahsedildi… Peki ama hangi treni kaçırdık? Bir Avrupalının 5’te biri hatta daha az maliyetine çalışma trenini mi kaçırdık? Teknolojiyi üretme değil, üretenler tarafından insan kaynaklarımızın ve işgücümüzün ucuza sömürülmesi trenini mi kaçırdık? Teknolojiyi üreten firmaların ürünlerini satması için potansiyel bir pazar olma trenini mi kaçırdık? Eğer bu trenleri kaçırdıysak ne mutlu bize! Çünkü bu kaçan tren ölüm trenidir kanımca.
Verilmesi gereken kararımız
Ünlü bilgisayar firması Apple’in ürünlerine baktığınızda söyle bir yazıyla karşılaşırsınız: “Designed in California, assembled in China” yani “Kaliforniya’da tasarlanmıştır, Çin’de birleştirilmiştir”. Bir Çinli olsam sanırım bu cümle kalbimi acıtırdı. Bu cümlenin arkasında Apple firmasının, ürünün tasarımı gibi önemli ve yüksek kabiliyet isteyen bir işin kendi topraklarında gerçekleştirilmesinden ötürü duyduğu hakli gururu görmek çok da zor değil. Bu gururu ve eylemin niteliğini daha da ön plana çıkartmak içinse, Çin’de gerçekleştirilenin sadece birleştirme –bakiniz üretilme bile değil- olduğunu söylemek çok etkili, bir yandan da bir Çinli açısından bakıldığında bir o kadar can sıkıcı. Bu “sözde” “Yazılım Devi” ülkelerdeki işgücü maliyetleri arttığında ve ücretleri Avrupa ve Amerika’daki yazılımcılara yaklaştığında hala “Yazılım Devi” olarak kalacaklarını düşünmek pek de mantıklı görünmüyor.
Buradaki verilmesi gereken karar şuna varıyor: İsmimizin “tasarlanmıştır” mı “birleştirilmiştir” mi eylemlerinin önüne gelmesini istiyoruz? Sonu olmayan kısır tartışmalara kendimizi hapsetmek yerine beyin gücümüzü muhafaza etmenin yollarını aramalı, işimizi en kaliteli şekilde yapmaya odaklanmalı ve öz kaynaklarımızın bizi destekleyebildiği alanlarda teknoloji üretimine yatırım yapmalıyız. Bu çok mümkün. Hiç de azımsanmayacak kaynakların aktarıldığı alanlar Türkiye’de mevcut. Gerekli olan bu kaynakları ve eforları organize edecek bir ulusal yazılım politikasının masaya yatırılması. “Türkiye’de tasarlanmıştır” demek için hiç de geç kalmış değiliz.