Pdf Versiyon

Open Source Proje Geliştirme

Open Source proje geliştirmenin tarihçesi nedir?

Open source bugün teknoloji sektöründe önemli bir rol üstlenmiştir. En küçük gömülü sistemlerden en büyük süper bilgisayara, cebinizdeki telefondan her gün birlikte çalıştığımız şirketlerin web sitelerini ve altyapısını çalıştıran yazılıma kadar her yerdedir.

1970’lerin sonunda, Richard M. Stallman MIT’de çalışan bir programcıydı. Bölümü o zamanlar birçok üniversitedeki gibi bir bilgisayarı ve tek bir yazıcı paylaştı. Karşılaştıkları sorunlardan biri kâğıdın yazıcıda düzenli olarak sıkışması ve birileri sıkışmayı giderene kadar bir dizi yazdırma işinin kuyrukta birikmesine neden olmasıydı. Bu sorunu aşmak için, MIT personeli yazıcı sürücüsünün kodunu yazdı ve sıkıştığında bir mesaj gönderdi. “Yazıcı Sıkışmış, lütfen düzeltin. “ Bu şekilde, asla uzun süre sıkışıp kalmamıştı.

1980 yılında, laboratuvar yepyeni bir lazer yazıcı bağışını kabul etti. Ancak Stallman, yazıcı sürücüsünün kaynak kodunu istediğinde, sistemin kullanıcıları bir kâğıt sıkışması konusunda bilgilendirmesini sağlamak için verilmeyeceğini kodun özel bir bilgi olduğu söylendi. Bir araştırma projesi için kaynak koduna sahip farklı bir üniversitedeki bir araştırmacıyı duydu ve meslektaşından onu paylaşmasını istedi ve reddettikleri zaman şok oldu.

‘70’lerin sonları ve 80’lerin başında, geleneksel olarak donanımdan kaynak kodu biçiminde verilen yazılımların değerli olduğu bir dönemi temsil ediyordu. MIT araştırmacıları yazılım şirketlerini kuruyorlar ve yazılıma lisans satmak iş modellerini oluşturuyordu. NDA’lar ve tescilli yazılım lisansları norm haline geldi ve en iyi programcılar artık paylaşamayacakları veya işbirliği yapamayacakları özel gelişim projeleri için MIT gibi üniversiteler tarafından işe alındı.

Buna tepki olarak Stallman, kullanıcılara nasıl çalıştığını anlama özgürlüğü verecek ve istediklerinde değişiklik yapmalarına izin verecek eksiksiz bir işletim sistemi oluşturmaya karar verdi, bu Open Source hareketinin doğuşuydu.

1983’ün sonunda Stallman, projesini duyurmaya ve destekçileri ve yardımcıları işe almaya hazırdı. Eylül 1983’te GNU projesinin yaratıldığını duyurdu. Projenin amacı, Unix işletim sistemini klonlamak ve kullanıcılara tam özgürlük sağlayacak bir sistem oluşturmaktı.

Ocak 1984’te, proje üzerinde tam zamanlı olarak çalışmaya başladı, önce bir derleyici sistemi ve çeşitli işletim sistemi programları yarattı. 1985’in başlarında, programcıların bu çabaya katılması için bir çağrı olan “GNU Manifesto” yayınladı.

1989’a kadar yazılan ve yayınlanan yazılımların tek bir lisansı yoktu. GNU Genel Kamu Lisansının ilk sürümü 1989 yılında yayınlandı. Bu lisans ile yazılımı kullanabilir, kopyalayabilir, dağıtabilir ve değiştirebilirsiniz. Değiştirilmiş yazılımı paylaşma konusundaki bu basit gereksinim, 1990’lı yıllarda internetin ortaya çıkışıyla birlikte, Open Source hareketinin merkeziyetçi, iş birliğine dayalı gelişim modelinin gelişmesini sağlayan şeydir.

Linus Torvalds, Linux çekirdeğini 1991 yılında piyasaya sürdüğünde, kendisinin yazdığı kaba bir telif hakkı kullandı ancak Ocak 1992’de Linux 0.12’nin piyasaya sürülmesiyle GPL’yi kabul etti.

1999’da IBM, geliştirilmesine 1 milyar dolar yatırım yaparak Linux’u desteklediklerini açıkladı, bu da geleneksel kurumsal kullanıcılar için daha az riskli olduğunu belirtti. Ertesi yıl Sun Microsystems, çapraz kodlu ofis paketi StarOffice’in kaynak kodunu yayınladı ve OpenOffice.org projesini yarattı.

Gücü ve yaygınlaşmasının nedenleri? Nasıl iyi bir “Open Source Citizen” oluruz?

Kurumların katkı yapmasındaki en önemli etmenlerden bir tanesi üst düzeyde yetişmiş ve kaliteli insanlara bu projeler ile erişebiliyor ve onları kurumlarında tutabiliyor olmaları. Günümüzde en iyi yazılımcıların open source projelerde yer aldığını ve çevrelerinde benzer niteliklere sahip yazılımcılar ile topluluklar oluşturduklarını gözlemliyoruz. Kaliteli insan kaynaklarına erişmek ve bu alandaki rekabetin giderek arttığı ortamlarda, bu projeler ve onlara katkı yaparak bu havuza erişebiliyor olmak kurumlar için çok önemli. Bir kurumu katkı vermeye yönlendirebilen diğer faktörler arasında yeni talep ve gereksinimler sağlamak, testler, dokümantasyon yapmak, kod bakımı yapmak ve problemleri çözmek, başka kurumlar ile iş birliği imkanları gibi çeşitli önemli nedenler var.

Open Source sadece kod ve teknoloji olmanın ötesinde, bu faaliyetlerin gerçekleştiği farklı yapılardaki organizasyonları içeriyor. Open Source teknoloji topluluklarını topluluklarını kullanıcı ve geliştirici toplulukları olarak iki ana başlıktan yola çıkarak tanımlayabiliriz. Open source teknolojilerde tüketim ve katkı ilişkisi girişkenlik gösterebilen bir özelliğe sahip. Örneğin açık bir yazılımın kullanıcısı olarak başlayarak dahil olduğunuz bir topluluğa zaman içerisinde katkı vermeye başlayabiliyorsunuz.

Katkı veren kişililer topluluklarda birden fazla kümede yer alabiliyorlar ve aynı anda farklı roller üstlenebiliyorlar; örneğin bazı zamanlar ana geliştirici olarak ana bileşenleri, diğerlerinde ise başkaları için uzantılar yazabiliyorlar. Açık yazılıma katkı yapabilmenin bir çok yolu var; örneğin kullanıcılar dokümantasyon, kullanım kılavuzları, vaka çalışmaları, hata raporları, yeni istekler ve özellik talepleri gibi önemli katkıların ana kaynağı. Yapılan katkılara göre ihtiyaç duyulan özgürlükler de farklılık gösterebiliyor. Örneğin kullanıcılar tercih ve erişim özgürlüklerine en üst düzeyde önem verebiliyor.

Open Source yazılım projelerinde tüm yazılım hayat döngüsün tamamen açık olarak gerçekleşmesi gerekmektedir. Bu kavram basit gibi görünse de detayları özen ve dikkat gerektirmektedir. Projeler büyüyerek yeni katılımcıların dahil olması ile birlikte proje yönetişimi ve prensiplerinin belirgin olarak önem kazandığı ve resmi yönetim yapılarının gerekliliği birçok projede tecrübe edilmiş. Proje paydaşlarının yönetimde yeterince söz sahibi olabilmeleri uzun vadede projenin dağılmadan sürebilmesi için önemlidir.

Open Source lisanslama seçenekleri nelerdir?

Open Source yazılımların lisansları, Open Source İnsiyatifi (OSI) ve özgür yazılım vakfı (FSF) tarafından bir incelemeden geçirilerek kabul edilen lisanslardır. Her iki örgütün de lisans kabul ve eleme süreçleri birbirine benzerlerdir.

Bu lisanslar özel izin istemeksizin bir projeye katkıda bulunmayı kolaylaştıran yetkilerdir. Yazılan yazılımın kolayca paylaşılmasını ve ortadaki bürokratik engellerin kalkmasını sağlar. Ayrıca paylaşılan yazılımın yazarını koruyarak yazarın yaptığı katkıların unutulmamasını sağlar.

Open source lisanslar arasından en çok karşımıza çıkan lisanslardan birisi şüphesiz MIT lisansı. MIT (mit) lisansı, 1988 yılında Massachusetts Teknoloji Enstitüsü (MIT) tarafından hazırlanmış, çoğu araştırmaya göre günümüzden en sık kullanılan open source yazılım lisansıdır. Oldukça kısadır; “yazılımımla istediğini yap, sadece beni dava etme” demektedir ve telif feragatli (copyleft) değildir.

MIT lisansından bahsederken, bu lisans ile karşılaştırılması gereken başka bir lisans ise BSD (Berkeley Software Distribution) lisansıdır. BSD aslında tek bir lisans değil, üç farklı lisans için kullanılan bir üst başlıktır. 2 koşul BSD, 3 koşul BSD ve 4 koşul BSD olarak adlandırılan üç farklı lisans vardır. 3 koşul BSD, tanıtım ve promosyon ile ilgili; 4 koşul BSD ise reklam materyali olarak kullanım ile ilgili ek

koşullar getirmektedir. Bu koşullar MIT lisansı korumasında olmadığı için, MIT lisansı en çok 2 koşul BSD’ye benzemektedir.

Her iki lisans (MIT ve 2BSD); kullanıma, yeniden programlaya, modifiyeye, dağıtıma ve telif hakkı uyarısını taşıma zorunluluğuna yer verir. Ancak MIT lisansı buna ek olarak; başka yazılımla birleştirebilme, yayma, alt lisanslama ve satma gibi konularda da izin veren bir lisanstır.

GPL ya da uzun ismiyle GNU General Public License, kuşkusuz özgür yazılım dünyasındaki en önemli figürlerden biri olan Richard Stallman tarafından yazılmış olması. GPL altında dağıtılan bir yazılımın türevlerinin de (derivative works) mutlaka GPL ile lisanslanması gerekiyor. GPL aynı zamanda, yazılımınızın kaynak kodlarını mutlaka açık tutmayı gerektirdiğinden ödevini bu şekilde yerine getiriyor.

Ancak bu lisanslama ile yeni ürünü oluşturan ufak bir parça bile GPL altında lisanslandıysa, tüm ürün GPL olarak dağıtılmasını öngörüyor. Bu nedenle ticari olarak ürün geliştirmede tercih edilmiyor ve yerini MIT ye ıraktı diyebiliriz.

Lisanslar Yapabilecekleriniz Yapamayacaklarınız Zorunda olduklarınız
GNU - Ticari olarak kullanabilirsiniz
- Değiştirebilirsiniz
- Dağıtabilirsiniz
- Yazarı sorumlu tutamazsınız
 - Lisanslayamazsınız - Orjinalini bulundurmalısınız
MIT - Ticari olarak kullanabilirsiniz
- Değiştirebilirsiniz
- Dağıtabilirsiniz
- Lisanslayabilirsiniz
- Hususi Kullanabilirsiniz
- Yazarı sorumlu tutamazsınız - Telif bulundurmalısınız
- Lisansı bulundurmalısınız
Apache - Ticari olarak kullanabilirsiniz
- Değiştirebilirsiniz
- Dağıtabilirsiniz
- Lisanslayabilirsiniz
- Hususi Kullanabilirsiniz
- Yazarı sorumlu tutamazsınız
- Yazarların isimlerini kullanamazsınız
- Telif bulundurmalısınız
- Lisansı bulundurmalısınız
- Değişiklikleri belirtmelisiniz
- Değişiklikleri bildirmelisiniz

Türkiye’de Open Source uygulamaları

Kamuda AKKY kullanımı 2003 yılında başlatılan e-Dönüşüm Türkiye Projesi kapsamında ele alınan önemli konulardan birisidir. Bu bağlamda, ilk olarak, 2005 Eylem Planı 7 no’lu “Kamu kurum ve kuruluşlarında open source kodlu yazılımların uygulanabilirliği” eylemi ile Kalkınma Bakanlığı Bilgi Toplumu Dairesi tarafından ilgili paydaşların katılımıyla konuya ilişkin bir rapor yayınlanmıştır.

Raporda açık standartlara da vurgu yapılarak standartların gelişimi açısından önemli bir araç olduğuna dikkat çekilmektedir. Ayrıca bu rapora ek olarak söz konusu eylem kapsamında “Göç Planı Hazırlanması ve Uygulanması” raporu da yayınlanmıştır.

Bilgi Toplumu Stratejisi eki Eylem Planı kapsamında yapılan çalışmalara ek olarak, kamu kurum ve kuruluşlarında münferit girişimler sonucu Open Source yaklaşımın tercih edildiği kurumlar da bulunmaktadır. Bazı kurumlar ise TÜBİTAK’la yürüttükleri ortak projeler kapsamında Open Source lisans kullanım hususunu da değerlendirmektedir. TÜBİTAK’ın bir proje paydaşı olarak projelerde kullanılan lisanslara teknik destek sunması, kurumları kullanımı hususunda cesaretlendirmektedir.

Türkiye’de open source ve İnternet’in gelişimi birlikte başlamıştır denilebilir. Mustafa Akgül özgür yazılım günleri açılış konuşmasında Türkiye’de özgür yazılımı geçmişinin kısa bir tarihçesini vermektedir;

Türkiye’de özgür yazılım farkındalığı yoğunluklu olarak Linux ile özdeşleşmiştir. Türkiye’de özgür yazılım topluluğunun tohumları 1992 yılında atılmış, 1993 yılında linux@bilkent.edu.tr listesi etrafında örgütlenmeye başlamış, 1995 yılında ilki düzenlenen “Türkiye’de İnternet” Konferansı’nda ilk kez yüz yüze bir araya gelmiştir. Türkiye’de Linux ve Özgür Yazılım, “Türkiye’de İnternet” Konferanası (inet-tr.org.tr), İnternet Haftası (internethaftasi.org.tr) ve Akademik Bilişim Konferansları (ab.org.tr) içinde ve desteğini alarak gelişmiştir. Bunların içinde çeşitli kurs ve seminerler yapılmış, ortalama bir salon Linux ve Özgür Yazılıma ayrılmıştır. Yer yer CD’ler ve kitapçıklar dağıtılmıştır. 1995’ten 2000 yılı ortasına kadar Türkiye Linux Kullanıcıları Grubu adı ile bir birlik oluşturan Türk özgür yazılım gönüllüleri, 2000 Mayıs ayında başlatılan girişimler ile bir derneğe kavuşarak, Linux Kullanıcıları Derneği adı ile ilk genel kurullarını Kasım 2001’de gerçekleştirmiştir. LKD Mayıs 2002’de Ankara Üniversitesi’nde 1. Linux ve Özgür Yazılım Şenliğini gerçekleştirilmiştir. Etkinlikler her yıl yinelenmektedir. LKD İnternet Haftalarında “Gezici Seminerler” adıyla Anadolu’da ağırlıklı olarak Üniversitelerde, ve Bilişim etkinliklerinde Linux ve Özgür Yazılım seminerleri vermiştir. LKD’nin Linux ve Özgür Yazılım Şenliğine paralel olarak, Bilgi Üniversitesi “Açık Kaynak Günleri” adıyla Özgür Yazılım Etkinliği yapmış, Türkiye Özgür Yazılım Dünyası ile Uluslararası özgür yazılım dünyasının Liderlerini tanıştırmıştır.

Doğuş Teknoloji’de uygulanabilecek veya uyarlanabilecek alan, proje ve öngördüğünüz potansiyel faydalar nelerdir?

Şirketler nadiren open source yazılım kullanmadan ürün üretebilirler. Neredeyse kurduğumuz her uygulama, bir şekilde open source lisans barındırıyor veya dolaylı şekilde open source yazılıma dayanıyor. Bu durum yazılımı satın alan ve ticari olarak para ödeyerek sahip olan kurumlar veya kiralama modeli olarak kullanan işletmeler için de geçerlidir.

Cevaplayacağımız ilk soru, open source yazılımın genel kurumsal hedeflerine nerede uyacağıdır. Şirketler birçok alanda open source kullanımı ve katkılarından yararlanabilir. Stratejik özel gereksinimlere uyacak şekilde uyarlanabilir. Bu gereksinimlerin belirlenmesi open source teknolojilerin şirketimize en iyi şekilde fayda sağlayabileceği alanlara odaklanmayı sağlayacaktır. Hedefler belirlenirken aşağıda konuların dikkatlice ele alınması gerekmektedir.

Open source teknolojiler ile veya bu teknolojileri kullanarak ürün üretmek için farklı stratejik yöntemler mevcuttur. Lisans modelleri ve Doğuş Teknoloji tarafından üretilen ürünler göz önünde bulundurularak yöntemler arasında seçim yapılmalıdır.

Yukarıda verilen tüm yöntemler içerisinde Building on OSS stratejisi pazara giriş ve kurum kültürüne uyum için en uygun olanıdır. Bu strateji ile şirketimiz, açık kaynağın temel sağladığı ve gerçek ticari değerin bulunduğu bölümde open source yazılımın üzerine ürün geliştirebilir.

Bu modelde aynı zamanda lisanslı yazılım veya hizmetlerin open source’a güçlü bağımlılıkları vardır ve bugün hemen hemen tüm startup firmalar bu geliştirme modelini benimseyerek open source ekosistem üzerinde büyüyerek yoluna devam etmektedir.

Doğuş Teknoloji tarafından başlatılan open source kaynaklı bir programın etkisi, çeşitli open source projelere kod katmanın ötesine geçebilir. Ayrıca mevcut developerların yeni teknolojiler üzerine eğitimini gerektirecek ve piyasa koşullarında yeteneğin çekilmesine imkan sağlayacaktır.

Open source bir program geliştirmek için kurum özelinde birden fazla bileşenin bir araya gelmesi gerekmektedir. Programın başarılı olabilmesi için kurum kültürünün open source teknolojileri benimsemesi gerekecektir.

Open Source Yetenek Portföyünü ve Ekosistem Kullanımı

Şirketimizin open source kullanımı için en önemli yolları belirledikten sonra, gereken open source beceri setiyle eşleştirmek için çalışanlarımızın yeteneklerini geliştirmemiz gerekecek. Bu gelişim için öncelikle gerekli yetenek setinin ve bu seti çıkarak yöntemlerin belirlenmesi gerekecektir.

Bu farkındalık konuları içerisinde iç eğitmenlik ve oluşturulacak danışmanlık ekibi önemli rol oynayacaktır. Open source ekosistem içerisinde önem kazanmış kilit geliştiricileri işe almak kurumumuzun hızlı bir şekilde bu becerileri edinmesini sağlayacak, kültürel dönüşüm sürecini hızlandıracaktır. Ayrıca ekosistemden gelecek kişilerin mevcut ekipler içerisindeki mentorluk yetenekleri kazanmasını sağlayan kritik bir adım olacaktır.

Open source teknolojilerim Doğuş Teknoloji özelinde gelişimi için şimdiye kadar cevaplanması gereke soruları inceledik. Bu stratejilerin belirlenmesi sırasında temel alınması gereken noktalar şu şekildedir;

Mevcut ve Hedef Konum

Open Source kodlu yazılım söz konusu olduğunda seçebileceğimiz dört temel strateji vardır: tüketim, katılım, katkı ve liderlik. Her strateji, önceki stratejide başarılı olmanızı gerektirir ve şirketimizin bu katkıyı ne kadar ileri götürdüğü tamamen stratejik uyuma bağlıdır. Mevcut urum ile ilgili uygulamaların lisanslama ve open source teknoloji durumu ile ilgili resmin şirket içerisinde yayınlanması ve bu durumun çeşitli KPI’lara bağlı olarak duyurulması farkındalığı arttıracaktır. Tüketim resmin çıkarıması sonrasında katkı aşamasına geçebilmek için bazı aday proje ve ürünlerin seçilmesi için strateji kararların verilmesi gerekecektir.

Bu aşamada aşağıdaki proje veya konularda katılım/katkı sağlanabilir;

  1. Indigo web framework daha esnek hale getirildikten sonra cloud uyumlu versiyonlarıyla open source proje haline gelebilir,
  2. Doğuş Teknoloji tarafından mevcut ürünleriyle toplanan verilerin machine learning projelerinde kullanımı için open source kaynaklarda uygun lisanslama tipleriyle kullanıma sunulabilir,
  3. Kurumsal dünyada ihtiyaç duyulan belli başlı ürünler (ISG Uygulamaları, Sözleşme Takip, Evrak Sayısallaştırma, On Boarding Süreçler vs.) birkaç yerel firma ile iş birliği içerisinde ARGE projesi kapsamında open source olarak geliştirilebilir.

Katılım aşamasından bir sonraki süreçte katkı ve liderlik için kominite oluşturulması sağlanmalıdır. Bu aşamadaki şirketlerin çalışanları bir konuyu bir arada değerlendirmesi ve üst yönetim ile hareket etmesi gerekmektedir. Tüm paydaşların bir arada uyum içerisinde hareket edebileceği şirketlerin aşağıdaki şekilde uygunluk alt yapılarını kurması gerekmektedir.

Kurumsal Open Source Proje Faydaları

Kaynaklar

Open source history

Açık Kaynak Lisansları

OpenChain

Open Compliance Program

Open Source Compliance in the Enterprise

T.C: Kalkınma Bakanlığı

Harvard University Center for International Development

TÜBİTAK ULAKBIM 2015 Yılı Faaliyet Raporu

Kamuda Açık Kaynak Kodlu Yazılım Kullanımı Çalışma Raporu