Tekerleği yeniden keşfetmek

Paylaş

Ne yazık ki kapsamının dışına taşmış, ağızlara sakız olmuş bir kavramdır “tekerleği yeniden keşfetmek”. Bir kaç pazarlama kaygısıyla yazılım eğitimlerinde, seminerlerinde “catch phrase” yani reklam sloganı olmuş bu cümle ile sürekli karşılaşan biri olarak bir inceleme yapmak isterim.

Öncelikle şu anda halk ağzındaki kullanımıyla ünlü “tekerleği yeniden keşfetme” örnekleri ile başlamak isterim.

Google Chrome
Netscape’den sonra tekerleği yeniden keşfetmemiş Firefox tüm özgür yazılımcıların gönül desteğini alarak herkesin popüler browser’ı oldu. Hem extension desteği hem de standartlara uymasıyla insanlar Firefox fan’ı olmuştu ki, Google şirket politikası gereğince kendi browser’ına sahip olmayı istedi. “Tekerleği yeniden keşfetmiş” KDE ekibinin önce Nokia sonra Apple desteği ile ilerleyen projesi “WebKit”, tekerleği tekrar keşfederek “Chromium” isimli yeni bir arabirim ile şu anda pazar payı %80’lerde olan tarayıcı Google Chrome’un tabanını oluşturacaktı.

Linux
UNIX sistemi varken ve çalışmaktayken 70lerin sonunda BSD çekirdeği mevcuttu. Sun da 92 yılında Solaris’i yayınlarken ondan bir yıl önce halihazırda elinde GNU’ya ait komut seti olan, 87’de yazılmış minix varken “tekerleği yeniden keşfetmeye” istekli Linus Torvalds Linux’u yayınladı.

Git
CVS, SVN varken yine Linus Torvalds tekerleği yeniden keşfetme güdüsüne karşı koyamayarak Git’i ortaya attı. Git şu anda en popüler açık kaynak paylaşım/geliştirme sistemi GitHub’ın omurgasını oluşturmakta.

Windows
Apple cihazlarında kullanıcı arabirimiyle insanları mest ederken Microsoft tekerleği yeniden keşfetmek isteyerek Windows’u yayınlamaya başladı. Yine aynı Windows, kendi işletim sistemi ailesinin stabil olmadığını düşünerek Windows NT adını verdiği sistemi kendi tekerleğini yeniden keşfederek geliştirdi ve Windows XP’den itibaren yeni nesil Windowslarda bu tabanla devam etme kararı aldı.

MySQL
PostgreSQL’den tutun, Oracle’a milyonlarca veritabanı varken MySQL çıktı. Üstüne üstlük en büyük özelliklerinden biri yeniden tekerlek keşfetmek isteyenler için veritabanı motoru geliştirmeye açık olmasıydı.

Daha kaç örnek verebilirim bilmiyorum. En yaygın örnekler üzerinden gitmeye çalıştım. Yukarıdaki projelerin neden “tekerleği yeniden keşfetmek” olmadığını anlamak için önce keskin bir ayrım olan “ürün ve teknoloji farkı”nı özümsememiz gerekecek.

Teknoloji, benim kendi ezberden tanımım ile “bilimin ışığı altında insanların hayatlarını kolaylaştıran geliştirmeler”dir. Öyle cep telefonlarına gitmemize gerek yok, oturduğumuz sandalye insani bir problemi çözdüğü için bir teknolojidir. İçinde fizik kurallarını gözetecek kadar bilim de vardır, insanlara yarar sağlayacak kadar geliştirme de. Ve evet, “tekerlek” bir teknolojidir, hatta özdeyişleri bile onunla kuruyorsak en popüleridir belki de.

“Tekerleği yeniden keşfetmek” bilimin geldiği, test ettiği, uyguladığı “kesin” bir süreci tekrar yaşamamayı adresler. Bu bir kural değildir bu arada, şayet bu bir kural olsaydı eminim üniversite dediğimiz kavram göçer ve insanlar “tez” dediğimiz çalışmaları yapıyor olmazlardı. Özdeğişin burada bize bahsettiği bazı kavram ve varsayımları tekrar sorguya açmamaktır. Sandalye yapıyorsak, sandalyeyi kullanan kişinin bir oturak kısmı üzerinde durması gerektiği artık bilimseldir. Deney edilmiş, denenmiştir.

Eğer ağzına “tekerleği yeniden keşfetmek”i sakız edenlerle mevcut sandalyelerimizi üretenler aynı fikre sahip olsaydı ilk üretilen sandalye modelini halen kullanıyor olurduk. Yani el/kol koymak için kenarları olan, istediğimiz yöne döndürebildiğimiz, sırtımızı yaslayabildiğimiz, hareket ettirebildiğimiz, hava alan sandalyeler olmazdı. Çünkü teknoloji ile ürün/model arasındaki farkı özümsemekle ilgili bir sorun var ortada.

Soyut örnekten biraz daha bilişim sektörüne geri dönersek, Google Chrome ortaya çıkarken HTTP protokolünü yeniden keşfetmedi, istediğimiz internet adresini yazdığımız adres çubuğunu da. Ama bunları alıp tekrar kendi deneyimleriyle yorumladı. Daha hızlı olacağını inandığı için HTTP yerine SPDY’yi önerdi. Adres çubuğunu arama çubuğu ile birleştirerek Omnibox adı altında hem adres hem arama yapabileceğimiz bir forma dönüştürdü. Çünkü Google’ın bir vizyonu, yazılım geliştirmeyle ilgili bir akımı ve bir geleneği/deneyimi mevcuttu. Tüm bu bilgiler ışığında kendi ürününü veya browser modelini ortaya attı. Keza Linux de öyle, Git de, MySQL de…

Şu anda kendi projelerini yapan insanları “tekerleği yeniden keşfetmek”le kınamaya yakın bir şekilde yargılayanlar, genellikle çalıştıkları yazılım şirketlerinde daha önce başka birileri için yazılmış yazılımların 100. kopyasını yazmaktalar. Sistem zaten yıllardır içerik yönetim sistemi, e-ticaret altyapısı vesaire üretiyor ve yeni yeni tekerlekler keşfediyoruz. Hadi startup olduğunu varsayalım, yeniden Facebook yazmaya gerek yok derken bile Facebook’a ortada Yonja varken üye olmuş neslin bireyleri olarak çelişkiye düşüyoruz.

Çözümüm bilim dünyasını ele almak olacak, kullanıcı deneyimi, iyi yazılım, yazılım geliştirme metodları gibi konular bilim gibi sürekli geliştirilebilir, sürekli sorgulanabilir kavramlardır. Eğer bilimde mevcut fikirleri tezlerle sorgulayabiliyor, alternatif üretebiliyorsak ilerleme kaydetmek için tekerlek başta olmak üzere bir çok şeyi yeniden keşfetmemiz gerekecektir. Koca koca firmalar işin ucunda maddi kaygılar varken bile projelerini çöpe atıp fikirleri kopyalarken, tekerleği yeniden keşfediyor olmuyor ama bu duruma çok takılan bir kesim mevcut.

Sözü ironi ile bitirme ihtiyacı duydum, tekerleği yeniden keşfetmemeli ama piyasada bir çok lastik markası mevcut.