Pdf versiyon

Open Source Proje Geliştirme

OpenSource

Son zamanlarda Doğuş Teknoloji’de de gündemde olan Open Source yazılımların ne olduğundan kısaca bahsedecek olursam; Open Source projeler kaynak kodlarının herkesin görebileceği, inceleyebileceği ve kullanabileceği yazılımlardır. Bu yazılımların en önemli özelliği kullanıcıya yazılımı değiştirme özgürlüğü sağlamasıdır. Bu özelliği ile kullanıcıya önemli bir katkıda bulunmuştur.

Open Source yazılım dünyası, yeni iş modelleri ve yazılım üretme biçimini sunmaktadır. Dünyanın birçok yerinden yazılımcılar tarafından imece yöntemi ile endüstri standartlarında geliştirilen açık kaynak kodlu yazılımlar, insanlığın ortak malıdır.

Bu yazımda genel olarak Open Source yaklaşımı nasıl ortaya çıktı, kattıkları neler, dünya ve Türkiye’deki durumundan ve son olarak Doğuş Teknoloji’de Open Source’un uygulanabilecek alanlarından bahsedeceğim.

Open Source Proje Geliştirmenin Tarihçesi

Açık kaynak kod proje geliştirmeye benzer yaklaşımlar yazılımdan önce de bulunmaktaydı. Örnek verecek olursam otomobil üretiminin ilk yıllarında, iki devirli benzin motoru patentine sahip George B. Selden. araba üretimine kalkışanlara zorluklar çıkartabiliyordu. Henry Ford’un mahkemede kazanmasıyla bu durumun önüne geçilmiş oldu ve yeni kurulan Motorlu araç üreticiler birliği, birçok yönlü paylaşım antlaşması ile icatların ücretsiz paylaşımını sağladı. Ford’un 92, diğerlerinin 515 patenti bütün üyeler tarafından ücretsiz, mahkemesiz paylaşılıyordu.

Açık kaynak kodlu yazılımlar ise üzerinde yapılan çalışmaların 1960’larda ABD’nin Massachusetts Teknoloji Enstitüsü, Stanford, Kaliforniya Üniversitesi, Carnigie Mellon gibi önde gelen araştırma üniversitelerinin ve bilgisayar yapay zeka laboratuvarında atıldığı kabul edilmektedir.

Microsoft’un web tarayıcısı Internet Explorer karşısında önemli ölçüde pazar payı kaybeden Netscape şirketi, pazarda kaybettiği üstün konumunu tekrar kazanmak adına 1998 yılında web tarayıcısının kaynak kodlarını ücretsiz olarak kamuya açmıştır.

Günümüzde Mozilla Vakfı tarafından açık kaynak kodlu yazılımlar ile sürdürülen projelerden dünyanın en çok kullanılan web tarayıcılarından biri olan Firefox ile daha birçok önemli yazılımı geliştirmeyi sürdürmektedir.

Gücü ve Yaygınlaşmasının Nedenleri

Açık kaynak, adından da anlaşılacağı üzere, açık bir işbirliğine girerek teknoloji yaratmak anlamına gelir. Kendim bir tanım yapacak olursam; açıklık, kodu görebilme, başkalarıyla fikir paylaşıp yeni bilgiler öğrenebilme, soru sorup çözüm önerilerinde bulunabilme, kısacası bir yapının içinde birlikte çalışarak daha hızlı inovasyon yapmak ve ilerlemek demek.

Problemlere çözüm bulmak için kod yazan ve paylaşan birçok insanın bir araya gelerek çalıştığı açık kaynak, çoğulcu ve katılımcı bir işleyişi temel alıyor. Bu kodlar, herkese açık bir alanda kolayca ulaşılacak bir yerde bulunuyor; böylece her dileyen, yazılımlara erişip kullanabiliyor. Herkesin inceleyip değiştirebileceği ve zenginleştirebileceği kaynak kodları, bilginin de sorunsuz ve özgürce dolaştırılmasını sağlıyor.

Open Source, ortak hedefler etrafında topluluklar halinde işbirliği yaparsak, o ünlü ifadede olduğu gibi, bir bütün olarak parçalarımızdan daha büyük olabiliriz demek.

Open Source kodlu yazılımlar tasarruf ve güvenlikle birlikte bir ülke ekonomisi için çok önemlidir. Open Source ortamları, teknoloji üretebilecek yazılım mühendisleri yetiştirmenin etkin yollarından biridir. Bu konuya daha fazla yorum katacak olursak:

Markalı yazılımlardan daha güvenilir ve emniyetlidir. Open Source yazılımını herkes izleyip değişiklik yapabiliyor böylece programı ilk yazan kişi/kişilerin gözünden kaçan hata ya da atlamaları tespit edip düzeltebiliyor. Ayrıca, bir Open Source yazılımı üzerinde sayısız programcı çalışabildiği için, o yazılımı çok kısa bir sürede onarabiliyor, güncelleyebiliyor ve bir ileri seviye geçirebiliyorlar.

Daha fazla kontrol imkanı sağlıyor. Kodları incelenebiliyor, istenilmeyen bir özelliği varsa onu kaldırabiliyor, beğenilmeyen kısımlar değiştirilebiliyor.

Fikir, deneyim paylaşımını kolaylaştırır. Özgür bilgi alışverişi, insanların hem birbirine yeni şeyler öğretebildiği hem de mevcut fikirler yardımıyla yeni fikirler yaratmasını kolaylaştıran bir ortam oluşturuyor. Herkesin inceleyip değiştirebileceği ve zenginleştirebileceği kaynak kodları, bilginin de sorunsuz ve özgürce dolaştırılmasını sağlıyor.

Problemlere hızlı çözüm sunar. Problemlere çözüm bulmak için kod yazan ve paylaşan birçok insanın bir araya gelerek çalıştığı açık kaynak, çoğulcu ve katılımcı bir işleyişi temel alıyor. Bu kodlar, herkese açık bir alanda kolayca ulaşılacak bir yerde bulunuyor; böylece her dileyen, yazılımlara erişip kullanabiliyor.

İşbirliğini arttırır. Bir kişinin tek başına çözemeyeceği problemler, Open Source ortamlar sayesinde işbirliğiyle kolayca aşılabiliyor.

Uygulamalı öğrenmeyi sağlar. Açık kaynak kod ortamlarda özgürce denemeler yapılarak problemlere farklı bakış açılarından yaklaşılabilir, yeni yerlerde yeni cevaplar bulunabilir.

Ortak amaçta birleştirir. Open Source yazılımlar sayesinde, ortak hedefler doğrultusunda topluluklar halinde işbirliği yapılabilir.

Nasıl iyi bir “Open Source Citizen” oluruz?

Open Source projelere destek olmak, bir yazılımcının kendini geliştirmesi, kariyerinde ilerlemesi ve daha da önemlisi başkalarına yardımcı olabilmesi ve topluluğa katkı sağlaması açısından gerçekten çok önemli. Bununla birlikte onlarca insanla iletişim kurmak gerçekten heyecan verici.

Tabii bütün bunları başarılı bir şekilde yapmak için yani iyi bir Open Source Citizen olmak için birtakım kriterler mevcut. Aşağıda iyi bir Open Source Citizen nasıl olunur sorusuna ayrıntılı bir cevap bulmaya çalıştım :

Yeteneklerini sürekli olarak geliştir :

Open Source dünyasında öncü olabilmek için sürekli olarak teknolojik gelişimleri takip etmek çok önemli. Bununla birlikte var olan Open Source projelerdeki hataların giderilmesi kullanımın yaygınlaşması için yeni özelliklerin düşünülmesi ve kişinin kendisini bu yönde geliştirmesi iyi bir Open Source Citizen olmak için önde gelen özelliklerdendir.

Benzer ilgilere sahip bağlantılarını arttır :

Herkesin bir uzmanlık alanı vardır. Bu bağlamda kişinin bağlantılarını arttırması open source dünyasında birçok kişiyle işbirliği yaparak daha güzel işler çıkarmasını sağlar.

Kod yazmadan da katkı da bulun :

Open Source projelerinin kod dışında da pek çok ihtiyacı var. Dokümantasyon bunlardan biri. Kaliteli bir README ve API dokümantasyonu projenin başkaları tarafından kullanılmasını kolaylaştıracağından projelere bu yönde katkılarda bulunulabilir.

İyi bir Open Source Citizen açık olan issue’lara yorum yazabilir, projeyi test ederek, hatalı çalıştığını düşündüğü yerler için yeni issue’lar açabilir. Bu da en az yazılım geliştirme kadar her Open Source projenin ihtiyacıdır.

Farklı fikirlere zaman ayır :

İlk başlarda proje topluluğu tarafından eleştiri alınabilir; yazılan kod sorgulanabilir ve reddedilebilir. Bu aşamada başkalarının fikirlerini anlamaya zaman ayırmak oldukça önemli.

Open Source Lisanslama Seçenekleri

Açık kaynak 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.

Kullanılan iki çeşit yazılım lisansı vardır:

Copyleft Lisansı

Copyleft yazılım lisanslamasında aynı açık kaynak kod projesinden alınan dağıtılmış, geliştirilmiş kopyalar aynı lisans altında sunulur.

En çok kullanılanları:

Non-Copyleft Lisansı

Non-copyleft lisanslaması aynı açık kaynak kod projesinden kopyalanmış veya geliştirilmiş çalışmaların farklı lisans altında sunulmasına izin verir.

En çok kullanılanları:

Aşağıda kısaca GNU , MIT, Apache lisanslarından bahsedecek olursam:

GNU License

MIT License

Apache License

Lisanslamak için yapmanız gereken lisansınızın tam kopyasını projenizin içine LICENCE adlı bir dosyaya koymaktır. Bunu haricinde yazılan her dosyanın başına lisans bilgisini koymak faydalıdır.

Open Source Projelere Hizmet Veren Servisler

Open Source proje geliştirebilmek için sürüm takibi, dağıtık geliştirme, hata takibi ve raporlama sistemi, dokümantasyon, ana geliştiricilerin fiziksel uzaklıklarından kaynaklı iletişim

sorunu, kullanıcıyı haberdar etme, geri bildirim ve yorum alma sorunu gibi ihtiyaçlardan dolayı birçok servise ihtiyaç bulunmaktadır.

Bütün bu ihtiyaçlara cevap üreten açık kaynak kodlu yüksek kaliteli yazılımlar mevcuttur:

Yukarda bahsettiğim ihtiyaçları karşılayabilecek, en yaygın olarak kullanılan araçlar olan GitHub ve GitLab’ten bahsetmek isterim.

GitHub olsun GitLab olsun, ikisi de .git ile entegre olmuş online depolardır. .git sistemine kurduğunuz proje dizinini, bu depolardan alacağınız referans remote adresleriyle entegre ettiğinizde, projenizi online ortama taşımış olursunuz. Projelerinizi public yani herkese açık olarak yayınlayabilirsiniz. Böylelikle bilişim dünyasından insanlar, projelerinizi görüp size destek verebilirler. Ya da size tavsiyelerde bulunabilirler.

Mesela siz bir yazılım projesi yazdınız ve bu projenizi internete yükleyip kullanmak, geliştirmek istiyorsunuz. Yani Open Source olarak herkese açıyor, public bir şekilde yayınlıyorsunuz. Bu tür bir kullanımda, açık kaynak kod olarak kullanıldığında GitHub da GitLab da ücretsizdir.

Dünyadaki Güncel Uygulamalar

Son yıllarda büyük bir hız kazanan açık kaynak proje geliştirme tüm dünyada etkisini göstermektedir. Hatta makine öğrenme teknolojisinin tümünü açık kaynakla geliştiren Google ya da yapay zekanın açık kaynağı temel alacağı üzerine bahse giren Elon Musk gibi vizyoner isimler de artık açık kaynak dünyasına katkıda sağlayan isimlerden. AWS, Netflix, Facebook ve benzeri pek çok yapı gücünü açık kaynaktan alıyor.

Hatta, 10 yıl önce açık kaynak kodu kavramına ateş püsküren Microsoft bile artık çok sayıda ürününü açık kaynak koduyla geliştirmek üzere harekete geçmiş durumda.

OpenSource

Almanya, İspanya, Meksika, Brezilya, Çin, Kore, Hindistan gibi birçok ülke, kamu kurumlarında açık kaynak kodlu yazılımlarının kullanımını benimsemiş ve bilgi toplumu stratejilerin bir parçası durumunda.

Avrupa Birliği, UNESCO, Dünya Bankası gibi kuruluşlar güvenlik ve tasarruf gibi gerekçelerle açık kaynak yazılımlarını önermektedir. Dünya üzerindeki hemen her ülke kendi gereksinimlerine göre açık kaynak kodlu bir Linux dağıtımı geliştirmiştir.

Her geçen gün gelişen ve olgunlaşan açık kaynak kodlu yazılımlar ticari ürünlere karşı kendi ekonomilerini oluşturarak pazardaki paylarını sürekli arttırıyorlar. Buna en çarpıcı örnek olarak açık kaynak kodlu işletim sistemi Linux’u verebiliriz.

Türkiye’de ve Dünya’da Open Source Ne Durumda

Türkiye’de açık kaynak kod yazılım kullanımını teşvikiyle ilgili düzenlemeler olmamasına karşın, kamuda birçok açık kaynak kodlu yazılım kullanılmaktadır. Kamuda genel olarak sunucu sistemlerinde Linux işletim sistemi kullanıldığı gibi son zamanlarda masaüstü uygulamalarda da açık kaynak kodlu yazılımlar kullanılmaktadır.

Açık kaynak kod kullanan kamu kurumlarından bahsedecek olursak;

Üniversitelerde de açık kaynak kod kullanımı oldukça yaygındır ve birçok üniversite kullanıldığı bilinmektedir. Bunlardan Türkiye’nin önde gelen üniversitelerinden Galatasaray Üniversitesi, ODTÜ, İTÜ, Boğaziçi Üniversitesi açık kaynak kodlu yazılımlar kullanmaktadırlar.

Türkiye’de açık kaynak kod topluluğu bulunmaktadır. TÜBİTAK’ın girişimi ile bu yönde ULUDAĞ: Ulusal Dağıtım Projesi başlatılmıştır ve bir Linux dağıtımı olan Pardus Ulusal İşletim Sistemi ortaya çıkmıştır. Açık kaynak kod topluluğu; Turkuaz, Gelecek Linux, İstanbulx, Boreas, Turkix gibi dağıtımlar ve başka açık kaynak kodlu uygulamalar geliştirilmektedir ve açık kaynak firmaları kurmak için girişimlerde bulunmaktadır.

Onuncu kalkınma planında, açık kaynak kodlu yazılımlar; büyük veri, bulut bilişim, yeşil bilişim, mobil platform, nesnelerin interneti gibi ürün, hizmet ve yönelimler değerlendirilerek kamu için uygun olabilecek çözümlerin kullanılacağı geçmektedir.

Türkiye’de Doğuş teknoloji gibi birçok kurumsal firma yavaş yavaş sistemlerini Open Source yazılımlar kullanacak şekilde değiştirmeye başladı. Bu da Türkiye’nin Open Source dünyasına güzel katkılarda bulunacağının bir göstergesi.

Network World tarafından; dünyadaki ülkelerin açık kaynak kodlu yazılımlar için aldığı yasal kararlar dikkate alınarak yapılmış ve değerlendirmeler sonucu ülkeleri belirli kategorilerde gruplanmasını sağlayan bir çalışma yapılmıştır. Türkiye Rusya ve Brezilya ile aynı kategoride yer alıyor. Yani kamuya “bu tür yazılımları dikkate alın” denen kategorideyiz.

Doğuş Teknoloji’de Uygulanabilecek Alan, Proje ve Potansiyel Faydaları

Yazılım sektöründeki son gelişmeler, büyük firmaların bu yöndeki atılımları göz önüne alındığında Doğuş Teknolojide açık kaynak kodlu yazılımların kullanımı arttırılmasının şirkete iyi yönde birçok katkısının olacağına kesin gözüyle bakabiliriz.

Open Source yazılımların ücretsiz olması, bu yazılımlar için herhangi herhangi bir lisans ücretinin ödenmemesi şirket ekonomisine oldukça büyük katkı sağlayacağını düşünüyorum. Şu anda kullanılan birçok yazılımın lisans ücretleri şirket için büyük giderlerin oluşmasına neden olmaktadır.

Doğuş Teknoloji bünyesinde ağırlıklı olarak Microsoft yazılımları kullanılmaktadır. Aslında bu yazılımların sağladıklarını Open Source yazılımlar kullanarak da elde edebiliriz. Veritabanı, geliştirme ortamları, modelleme tool’ları, programlama dilleri, sunucu yazılımları, metin editörleri, versiyon kontrol araçları gibi yazılım geliştirmenin her aşamasında kullanabileceğimiz Open Source ürünlerden faydalanabiliriz.

Bu yazılımlardan bazıları şunlardır; Linux , Open Office , GNU , Debian , Ubuntu , Open SUSE…

Veritabanları ; Bir çok NoSql veritabanı , MySQL , PostgreSQL

Bütünleşik geliştirme ortamları (IDE) ; Anjuta DevStudio , Dev-C++ , Code::Blocks , Eclipse , KDevelop , NetBeans

Modelleme ; ArgoUML , StarUML

Programlama dilleri ; Java , Perl , PHP , Python , Ruby

Sunucu yazılımları ; Apache HTTP Server , Apache Tomcat , EasyPHP , XAMPP

Metin editörleri ; jEdit , Notepad++ , Emacs

Versiyon kontrol ; Bazaar , Git , TortoiseSVN

Open Source yazılımların Doğuş Teknolojide yaygınlaştırılmasının şirket ekonomisine katkısına ek olarak çalışanlarının da bu konuda bilinçli olmasını, deneyim kazanmasını sağlamak ve Open Source dünyasında yapılan işlerde söz sahibi olmak, şirketin bilinirliğinin artması açısından da çok önemli bir adım olacaktır.

Açık kaynak kodlu yazılımların şirket içinde kullanılmasının en büyük avantajlarından biri bizlere yazılımı değiştirme ve geliştirebilme imkanı tanımasıdır. Bu da kullandığımız yazılımın özelliklerinin şirket özelinde değiştirebilme özgürlüğünü bize sağlamaktadır. Böylece hem şirket içerisinde kendi isteklerimiz doğrultusunda uygulamanın evrilmesine hem de geliştirmesini dış bir firmaya yaptırma maliyetinden kurtulmamızı sağlayacaktır.

Şirket olarak projelere hızlı adapte olmak, müşteri taleplerini kaliteli ve kısa sürede tamamlamak için çaba göstermekteyiz. Bu aşamada Open Source yazılımların esnek bir yapıya sahip olması bize büyük avantajlar sağlayacaktır.

Şirket olarak güvenliğe çok önem veriyoruz ve bu yönde kullandığımız yazılımların, geliştirdiğimiz yazılımların ne kadar güvenli olduğuyla alakalı sürekli olarak eğitimler ve bilinçlendirme etkinliklerine katılmaktayız. Şirketin bu konuda çok özenli olması da Open Source yazılımları tercih etme sebeplerimizi güçlendirmektedir. Open Source projelerin herkese açık olması kodu yazan kişilerin güvenlik açısından daha özenli olmasını sağlamıştır, böylece yapılan araştırmalara göre Open Source yazılımların diğerlerine göre daha güvenli olduğu gerçeği ortaya çıkmıştır. Güvenlikle ilgili bir diğer ekleyeceğim avantaj ise sistem çalışırken arka planda kullanıcıdan gizli işlemlerin gerçekleşmemesidir, yani Open Source yazılımların şeffaf olmasıdır.

Güvenli, kaliteli ürünler elde edebilmek bununla birlikte müşterinin taleplerini hızlı bir şekilde gerçekleştirebilmek ve bütün bunlara ek olarak kullanılan teknolojiler için ödenen lisans maliyetini en aza indirmek için Doğuş Teknoloji olarak Open Source yazılımlara daha çok yönlenmeliyiz. Sadece hazır yazılımları kullanmak değil, Open Source dünyasında deneyim kazanılması için de Open Source projeler geliştirme konusunda çalışanların bilinçlendirilmesi gerektiğini düşünüyorum.

Referanslar

10 advantages of open source for the enterprise. (2017, Ağustos 17). opensource.com: https://opensource.com/article/17/8/enterprise-open-source-advantages adresinden alındı

A Brief History Of Open Source. (2018, Haziran 2016). medium.com: https://medium.com/gitcoin/a- brief-history-of-open-source-3928cb451767 adresinden alındı

Dünyada ve Türkiye’de açık kaynak kodlu yazılım kullanımı ne durumda? (2016, Eylül 2). Webrazzi: https://webrazzi.com/2016/09/02/dunyada-ve-turkiyede-acik-kaynak-kodlu-yazilim- kullanimi-ne-durumda/ adresinden alındı

How to be a good open-source citizen. (2018, Nisan 12). GitHubGist: https://gist.github.com/nolanlawson/d5334678848aaf11ba39 adresinden alındı

Ten Popular Open Source Tools for Developers. (2018, Mart 19). opensourceforu.com: https://opensourceforu.com/2018/03/ten-popular-open-source-tools-for-developers/ adresinden alındı