Geliştiricilere kapımız açık

Girişiminiz için kanıtlanmış açık kaynak kodlu yazılım modelleri ve stratejileri

Yaklaşık 50 yıldır hayatımızda açık kaynak kodlu yazılımlar var. Bunları kullananlar başarılı oldu, kullanmayanlar geri kaldı. Bu yazımda açık kaynak kodlu yazılımları kullanarak işinizi nasıl geliştirebilir ve modelleyebilir sorusuna yanıt arayacağız.

Görkem Çetin
6 min readDec 9, 2016

--

İlk Linux’umu 1993 yılında kurdum. PC’lerden korkan (evet korkan — çünkü nasıl çalıştıklarını henüz bilmiyordum) birisi olarak kurmak zihinsel olarak epey zaman aldı. 11 disket, hepsini tak çıkart, 4. disketteki hata yüzünden yeniden yaz, yine tüm işlemi baştan sürdür. Bilgisayarı başlat — simsiyah bir ekran. Hayal kırıklığı tabi.

Sonradan sonraya işin rengi değişti de bilişim sektörüne ısındım. Bir arkadaşım, benim bu 11 disketi indirirken lisansa uygun hareket ettiğimi söyledi cümle içinde. Lisans da nedir? Halbuki her şeyi indirip kopyalıyorduk.

Lisans konusunda daha fazla bilgi almak için 1968 yılına gidelim. Açık kaynak kodlu yazılımlar hayatımızda o dönemden beri var. 80’lere kadar yazılım genellikle akademisyenlerin (burada MIT, Berkeley’den bahsediyoruz — maalesef ülkemiz henüz o noktada değildi) ürettiği bir meta halinde. Bu durum değişiyor ve sahipli yazılımlar gündeme geliyor. AT&T başta olmak üzere dünya devleri yazılımları ayrıca -yüksek ücretlerle- satmaya başlıyor.

O anda ortaya Richard Stallman çıkıyor ve bu “gidişata” dur demek istiyor. Stallman, GNU GPL ismini verdiği lisansını 1983 yılında hazırlıyor ve genel paylaşıma açıyor. 2000’li yıllara kadar GPL genel geçer kabul gören lisanslardan oluyor.

Aslında Stallman’ın marjinal fikri tüm yazılımların özgür olmasını gerektiriyordu. Dünyada farklı iş modelleri ortaya çıktıkça pratik ve doğal olarak bunun mümkün olamayacağı da belli oldu.

İşte bu nedenle, ayrıca hızla evrim süreci geçiren lisanslama modelleri kendi içinde “açık kaynak kodlu yazılımlar”ı yaratıyor. Bruce Perens, 1998’de daha liberal kokan “open source software” tanımını ortaya koyuyor. Dolayısıyla açık kaynak kodlu yazılımların iş odaklı kullanılmasının önü açılıyor.

1996–2016 bakış açısı değişimi

20 yıl kadar önce, Linux dağıtımları 500 civarı paketten oluşurdu. Sıkıştırıldığı zaman tüm paketler bir CD’ye rahatlıkla girebiliyordu. Kaynak kodu da açık (özgür) olunca, isteyen kurumlar marka değişimi yaparak çalışmalarını kendi Linux dağıtımları adı altında yayınlayabildiler. Benim de üzerinde çalıştığım ilk Türk ticari Linux dağıtımı olan Gelecek Linux, 16 yıl önce böyle doğmuştu.

Zamanla açık kaynak kodlu yazılımlar hem nitelik, hem nicelik olarak arttı. Daha modüler, daha etkin hale geldiler. Dolayısıyla bir açık kaynak kodlu yazılımı çatallayıp (=fork) değiştirmek hem zorlaştı, hem de anlamını kaybetmeye başladı. Özellikle API ve SDK’ların gelişmesi, monolitik yapıdan modüler yapıya geçilmesinin önünü açtı. Şimdi Angular’ı çatallayıp kendi Angular sürümünü çıkartan kaç kişi var?

Dolayısıyla, “İndirelim, deneyelim, işe yarar ise aynısını değiştirip satalım veya baka baka kendimiz yapalım” düşünce yapısı, zamanla önce “indirip görelim, değer bulursak ücretlisine geçeriz”, sonra da “Ücretli sürümünü temin edelim, üstüne API’lerle biz de geliştirme yapalım”a döndü.

Kısacası, yıllar geçtikçe modülerlik sayesinde yazılım geliştirme süreci hızlandı. Ortaya bir ürün sunmak kolaylaştığından pazarlama ve arayüzde öne çıkan firmalar fark yaratmaya başladı.

Aşağıdaki grafik, dünyada en çok kullanılan 7. Android analitik SDK’sına sahip Countly’nin durumunu gösteriyor. 130.000 satır kaynak koduna sahip “çatının” üstüne 850.000 satırı dışarıdan edindiğimiz makul lisanslı açık kaynak kodlu yazılımları koyarak “ancak” bir ürün elde edebildik.

Dolayısıyla kendi ürününüzü ortaya koyarken de Amerika’yı yeniden keşfetmek yerine, istediğiniz kütüphaneleri kendi platformunuza koyup hem zamandan hem de maliyetten tasarruf edebilirsiniz. Böylece zaten hızlanmış olan yazılım geliştirme süreçlerinizi daha da verimli hale getirip rakiplerinizden önce çıkmanız ve ek geliştirmeleri daha hızlı yapmanız mümkün.

Ancak, dikkat edilmesi gereken yerler var. Özellikle lisans seçimi sizin için en öncelikli ölçüt olmalı. Misal, GPL kullanırsanız iki değil üç kez düşünmelisiniz. AGPL, keza, geliştiricisini koruyan bir lisanstır ve sunucu servisiniz varsa AGPL yazılımı kullanırken (varsa) değiştirdiğiniz kısımları kamuya açmanızı gerektirir. Bunun yanında BSD ve MIT daha esnek, kurumsal ortamda daha kolay kullanabileceğiniz yazılımlar olarak öne çıkar.

Lisans konusunu (şimdilik) bir kenara bırakalım, ama aklımızdan hiç çıkmasın.

En az lisans kadar önemli ama kritik bir başka konu da, açık kaynak kodlu bir yazılımı kendi ürününüze dahil ederken dikkat etmeniz gereken kurallar silsilesi. Burada kimi geliştirici duygularına güvenirken, kimisi de bir tablo yaratıp farklı seçeneklerin avantaj ve dezavantajlarını tartar. Aşağıda, bir açık kaynak kodlu yazılımı ürünüme dahil ederken dikkat ettiğim en önemli bileşenlerin bir listesini bulabilirsiniz.

Yukarıdaki listeye kullanılan dil, API desteği, kurum içinde genişletme olasılığı da eklenebilir — en iyisi, kendi öncelik listenizi oluşturmanız ve buna göre seçim yapmanız olacaktır.

Bir satış stratejisi olarak geliştiricilerden faydalanmak

Açık kaynak kodlu yazılımlar üzerinden hem psikolojik hem de maddi nedenlerden dolayı iş modeli geliştirmek (diğer modellerle kıyaslayınca) biraz daha zor. Bu zorluğu aşabilen firmalar belirli kuralları takip ettikleri için yollarına devam edebiliyorlar. Burada en önemli kural, geliştirici ekiplerin saygınlığını kazanarak ilk adaptasyonu sağlamak, böylece satış ekibini biraz daha küçük tutarak ürünün kendi kendisini satmasının önünü açmak.

Özellikle teknolojik ürünlerin, geliştirici odaklı tanıtılması konusunda firmaların atmaları gereken adımlar Business Insider’da geçtiğimiz aylarda Chip Hazard tarafından ele alınmış. Bu yazıda Chip, özellikle ürünün bir platform haline getirilmesi ve geliştirici toplulukları tarafından aşağıdan yukarıya doğru bir benimseme yaşaması halinde başarılı olacağının üstünü çizmiş.

  1. Ürünün çok hızlı bir şekilde denenmesi mümkün olmalı. Örneğin Countly’yi denemek için 8 dakikanız ve Digital Ocean hesabınız olması yeterli.
  2. Ücretsiz başlangıç seçeneği olmalı. PostgreSQL hemen hemen tüm Linux dağıtımlarında geliyor, Windows altında bir kaç dakikada kurulabiliyor. Eğer destek istenirse kurumsal sürümü var.
  3. Çok detaylı dokümanla birlikte gelmeli. MongoDB’yi bu noktaya getiren etmenler arasında herhalde çoğumuz ilk üçe dokümanlarının kalitesini koyacaktır.
  4. Diğer toplulukların ilgisini çekmeli. Tek başına çok uzağa gitmek kolay değil. New Relic de bunun farkında olduğundan Ruby topluluklarıyla sürekli iletişim halinde oldu.
  5. Kulaktan kulağa yayılacak bir “özelliği” olmalı. Unutmayın, müşterileriniz siz uyurken ürününüzü satabilir. Onların işini kolaylaştırmak için Hackernews, Reddit, Stackoverflow’a yazın. Haberleri olsun.
  6. CEO’nuz kodlayabilsin. Uzun süre boyunca CEO ürünün gidişatına yön verecek kişi olacaktır. Hem liderlik, hem kodlayabilme yeteneği kolay değildir, bir de ego-odaklı geliştiricileriniz varsa.
  7. Pazarlamaya çok yoğun zaman harcamayın. Önce geliştiricilerin kalbini kazanın.

Aşağıdaki tabloyu GDG Istanbul 2016 etkinliğinde ekranda göstermiştim. Bu tabloda farklı firmaların hangi modelleri tecrübe ettiği yer alıyor. Siz kendinize uygun bir modeli seçebilir ya da aralarından bir ya da bir kaç tanesini “katıştırıp” kullanabilirsiniz. Kendinize özgü bir modeli ortaya çıkarmanızı önermem — örneğin, dokümanı para ile satmak ve bundan gelir elde etme modelini önermiyorum, zira bunu deneyen firmalar başarılı olamadılar (ismi lazım değil, aralarında farklı modele dönüp başarılı olmuş Türk firmalar da var).

Temel açık kaynak kodlu yazılım modelleri

Eğer yukarıdaki modeller hakkında daha fazla bilgi almak isterseniz, Scott Wheeler ve Karl Fogel’in yazdığı ve internete koyduğu kitaplara ve dokümanlara bakmanızı öneririm. Günün sonunda şunu hiç unutmayın: model seçmek sadece başlangıçtır, asıl önemli olan müşteri bulmak, onları mutlu etmek ve daha fazla firmaya ulaşabilmektir. Bu da ancak zamanla, tecrübe kazanmakla olur.

Şimdi sırada arkadaş çevresinden olmayan ilk 5 ciddi müşterinizi “kazanmak” olsun. Çünkü 5'i bulursanız, 20'yi de, 100'ü de bulursunuz. Onları dinleyin. Bütün istediklerini elbette yapmayın ve büyük resimden şaşmayın, ama söyledikleri sizin için kulağınıza küpe olsun.

Açık kaynak kodlu yazılımlar artık kimsenin gözünü korkutmuyor. Siz bunu biliyorsunuz, müşterileriniz de. O nedenle şimdi işe koyulma zamanı.

--

--