Geliştirici, Kullanıcı, Bağnaz…

Bugünlerde LKD gezegeninde yazılım, metodolojiler, işin zorlukları, incelikleri, kütüphaneler, kitaplar, patronlar … konusunda çeşitli yazılar göze çarpıyor. Bu yazılardan birisi o kadar yanlışlarla dolu ki, üzerime alınıp bir açık cevap yazmadan geçemeyeceğim. Hani, bir şey değil, gençler var, yanlış fikirlere kapılmasınlar.

Bir: Tanıtım, satış, pazarlama işleri hedef kitlesinin %100’üne ulaşmak üzere tasarlanırlar. Eğer siz tüm millete ulaşmak istiyorsanız tüm ulusal TV’lere reklam verirsiniz, paranız yetmiyorsa o bütçeyle ulaşabileceğiniz en yüksek izlenme oranını hedeflersiniz. Eğer hedef kitleniz Cumhuriyet gazetesi okurları ise yalnızca oraya ilan vermeniz makul karşılanır, ama her üniversite mezununu hedefliyorsanız ve böyle bir reklam kampanyası ile çıkarsanız işinizden olursunuz. Firefox artık yok sayılamayacak bir kullanım oranına ulaşmış durumda, çok sayıda internet kullanıcısı FlashPlayer 9 yüklemiş durumda değil, artık pek çok kişi internete cep telefonundan, PDA’sından ve Blackberry’sinden bağlanıyor. Çıkıp da “Explorer’da çalışıyor, daha ne olsun, %90’ı tutturdum” demek densizliktir. Eğer bir teknik engel yoksa, ek masraf çıkarmıyorsa (ki sizin farklı platformlardaki testiniz “ek masraf” değil yüklendiğiniz işin mütemmim parçasıdır) bunu yapamazsınız. Yok, yaparsınız… konuyu bilmeyen, web sitesinin cicisi bicisine bakan, kendi makinesinde çalışınca her yerde çalıştığını sanan patrona, BT departmanına, reklam ajansına yaparsınız. Doğru müşteriye yapamazsınız.

İki: Tüm BT yapısının varlık sebebi kullanıcıdır. Programcının ilk hedefi kendi egosunu tatmin etmek ya da dosyaları “wow” varyetelerle doldurmak değil, kullanıcının işine yarayacak bir ürün çıkarmaktır. Bunu anlamayan yazılımcıların yazdığı kodlar /dev/null’da yerlerini aldılar, almaya devam edecekler. Tüm sistemin (kullanıcı + BT sistemi + yazılım geliştirici) çözmeye çalıştıkları problem (adını siz koyun, kitap alışverişi, televizyon kanalı programı öğrenme, blog girdisi yazma, internette arama yapma, …) belli bir karmaşıklığa sahiptir. Bu probleme BT yapısı ve özellikle yazılım geliştiricinin dahil olmasının nedeni kullanıcıya görünen karmaşıklığı azaltmaktır. Bu nedenle yazılım geliştiricinin işi göründüğünden daha karmaşıktır, daha doğrusu olmak zorundadır. Bu nedenle “ben kuşu kondurdum, iş bitti” deyince iş bitmez, kullanıcı için (ki bu kullanıcı çok çeşitli şekillerde, çok çeşitli isteklerle sisteme geliyor olabilir) karmaşıklığın gerçekten azaldığından emin olmanız gerekir. Yoksa her veritabanı dersi alan ya da kütüphanesine üç MySQL kitabı dizen “ben kod yazıyorum, feriştahıyım” diye çıkar ortaya. Böyle olmadığından bazı yazılımlar yaşıyor, bazıları ölüyor; bazıları roket gibi fırlıyor, kabul görüyor (birisi Firefox mu dedi?) bazılarını kabul ettirebilmek için tekel gücü, milyarlarca dolar ve ciddi bir miktar kol bükmek (birisi Internet Explorer mı dedi?) gerekiyor. 21. yüzyılda rekabetçi ürünler geliştirmek için yapmanız gereken kullanıcının karşılaştığı karmaşıklığı azaltmaktır, daha parlak ve daha sivri teknolojiler kullanmak değil. Eğer üniversitelerde bunu öğretmiyorlarsa zaten o üniversitelere gitmeyin!

Üç: İnsanlar seçimler yaparlar ve bu seçimlerinin sonuçlarına katlanırlar. Özgür yazılımı seçen kişi (genelde) Internet Explorer kullanmaktan vazgeçmiş demektir. Ya da Firefox kullanan kişi Windows’taki bazı (benim bilmediğim teknik mambo cambo, saçmalıyor da olabilirim) entegrasyon avantajlarını yitirir. Ama bir işletim sistemi ya da tarayıcı seçimi yapmak internetteki kimi içeriğe erişmekten imtina etmek durumunda bırakmamalıdır kimseyi. Tüm web, tüm internet bu mantık üzerine kurulmuştur. IETF ve W3C bu işe yararlar. Aksi taktirde, internet altını olanın kural koyduğu bir arena haline gelirse, internet olmaktan çıkar. İşin hoş tarafı, bu kurallara uygun davranmak kimseye bir zarar vermez; olsa olsa bazı teknolojilerin gelişmesini yavaşlatabilir. bilindik standart-inovasyon çelişkisi, yeni değil, handiyse yüzlerce yıllık… Ki bu da dünyanın sonu olmayacaktır, tam tersine kimi zaman yararlı bile olabilir. Neyse, konunun özüne dönelim, seçimini bilinçli olarak özgür yazılımdan yana yapmış ve bunun sonucu olarak poposu kırık bir internet sitesine erişemeyen kullanıcının şikayetine bakarak bu kişiyi bağnaz olarak nitelemek, terbiyeme mukayet olmuyorum artık, düpedüz dangalaklıktır. Hadi, sinirlerime hakim olayım, paranın alabileceği en iyi araçlarla ortaya kullanıcıların %10’una ya da %1’ine (o %1’in ne kadar gelir yaratacağını nereden biliyorsun sen sevgili milyon-vuruş-geliştiricisi?) ulaşmayan bir ürün çıkarırsan ve ürüne erişemediği için kullanıcıyı suçlarsan bizim mahallede bunun adı “adım Hıdır, elimden gelen budur”dur (tüm Hıdırlar’ı tenzih ederim, politically correct olmadığımın farkındayım).

Biz Pardus projesine başlarken kullanıcıyı merkeze oturttuk ve aylarca ne yaparsak kullanıcı neyi kullanamaz ve neden kulaklarımızı çınlatır diye düşündük durduk. Hala da öncelikle bunu düşünüyoruz. En sıkı tartışmalarımız kullanıcının göreceği ya da göremeyeceği unsurlar üzerinde çıkıyor. Çünkü kullanıcılarımızın karşılaşacakları karmaşıklığı azaltmak amacımız, daha doğrusu görevimiz. Yoksa, çok sevdiğim bir benzetme ile, herkese dikdörtgen tabanlı ayakkabılar satar, sonra da ayağının vurduğundan şikayet edenleri “seni bağnaz seni” diye azarlarız. Ne mutlu bize ki biz o şirketlerden/kurumlardan/ekiplerden değiliz…