Yazılım Dünyasının Görünmez Kahramanları: Açık Kaynak Projelerin Kırılganlıkları ve Sürdürülebilirlik Sorunu Yazılım

Yazılım Dünyasının Görünmez Kahramanları: Açık Kaynak Projelerin Kırılganlıkları ve Sürdürülebilirlik Sorunu

Her yazılım ürünü, birilerinin boş zamanında geliştirdiği açık kaynak kodlara dayanır. Peki bu kodların arkasındaki projeler ne kadar sağlam?

Günümüzdeki her ciddi yazılım ürünü, başka birinin yazdığı ve ücretsiz olarak yayınladığı kodlar üzerine inşa edilir. Bir web servisi bir şifreleme kütüphanesine, bir veri hattı bir ayrıştırıcıya, bir mobil uygulama ise bir kişinin boş zamanında geliştirdiği küçük yardımcı araçlara güvenir. Tüm bu kodlar aynı etiketi taşır: açık kaynak. Ancak yeni bir araştırma, bu tek etiketin altında, her bir parçanın üretim ortamında nasıl davranacağını değiştirecek kadar büyük farklılıklar olduğunu savunuyor.

Araştırmacılar, açık kaynak yazılımları on dört alt türe ayırdı. Her bir tür, projenin kim tarafından başlatıldığı, kim tarafından sürdürüldüğü ve hangi amaçla yapıldığına göre tanımlandı. Çalışma kapsamında iki akademik indeksten yaklaşık dört bin benzersiz makale taranarak bir tipoloji oluşturuldu. Sonuç, bir çalışmanın örneklem olarak hangi tür projeyi seçtiğinin, çıkarılan sonuçların ne kadar genellenebilir olduğunu belirlediğini ortaya koydu.

Topluluk odaklı Linux dağıtımları, tek bir satıcıya ait veritabanları, üniversite araştırma kütüphaneleri, insani yardım amaçlı sağlık kayıt sistemleri ve tek kişilik yardımcı araçlar arasında; var olma nedenleri, kararların kim tarafından alındığı ve çalışmaların nasıl finanse edildiği açısından büyük farklılıklar vardır. Araştırmacılar bu farklılıkları adlandırdı: Debian ve Arch Linux gibi topluluk odaklı projeler gönüllüler ve liyakate dayalı otorite ile çalışır; Elastic, MongoDB ve GitLab gibi şirket destekli projeler, yazılımdan gelir elde eden ve yol haritasını kontrol eden tek bir firma altındadır; Apache HTTP, Kubernetes ve Eclipse gibi vakıf yönetimli projeler ise ticari markayı elinde tutan ve rakip firmaları eşit şartlarda tutan satıcıdan bağımsız bir kar amacı gütmeyen kuruluş tarafından yönetilir.

Diğer kategoriler daha az bilinir. Çok şirketli işbirliği-rekabet (co-opetition), rakiplerin OpenStack ve Linux çekirdeği etrafında olduğu gibi ortak altyapı inşa etmesini kapsar. Araştırma ve bilimsel yazılımlar, laboratuvarlarda alan bilimciler tarafından hibe döngüleri ve akademik kariyerler için yazılır. Protesto yazılımları (protestware), bakıcının politik veya ekonomik bir mesaj iletmek için değiştirdiği veya sabote ettiği paketlerdir; node-ipc ve colors.js buna örnektir.

Pratik sonuçlar finansa ve yönetişime odaklanır, çünkü bu iki şey bir projenin birçok kişi tarafından kullanıldığında ne kadar ayakta kalacağını belirler. Kritik dijital altyapı, bu konunun en keskin örneğidir. OpenSSL, curl ve log4j gibi bileşenler yazılım ekosisteminin büyük bir kısmının altında yer alır ve genellikle birkaç gönüllü tarafından ayakta tutulur. Nadia Eghbal, Ford Foundation raporunda bu sürdürülebilirlik sorununu tanımlamış, daha sonraki araştırmalar ise bunu "eksik üretim" (underproduction) olarak kavramsallaştırmıştır: bir bileşenin aldığı emek, ne kadar yaygın kullanıldığına kıyasla yetersiz kalır. npm ekosistemi üzerine yapılan çalışmalar, az sayıda bakıcı hesabının ağın büyük kısmına ulaştığı benzer bir riski ortaya koymaktadır.

Hobi ve tek kişilik projeler aynı kırılganlığı taşır. Araştırmacılar buna "düşük otobüs faktörü" (low truck factor) adını verir; bu, kaç kişinin ayrılması durumunda projenin duracağını sorgular. Tek kişilik bir projede cevap birdir. Bakıcı meşgul olduğunda, tükendiğinde veya ayrıldığında kod da onunla birlikte durur. Üye aidatları ve ücretli personeli olan bir vakıf tarafından desteklenen bir proje ise aynı durumda yaslanacak daha fazla kişiye sahiptir.

Farklılıklar sadece parayla sınırlı değildir. Sosyal fayda için açık kaynak (OSS4SG) projeleri -sağlık kayıt sistemi OpenMRS veya kriz haritalama aracı Ushahidi gibi- kar amacı gütmeyen projelerdir. Bu projelere katılanlar genellikle kalıcı olur; araştırmacılar buna "yapışkan" (sticky) diyor. Geleneksel projeler ise "manyetiktir" (magnetic), kalabalığı çeker ama çoğu geçer gider. İlk kez katkıda bulunan kişiden güvenilir çekirdek üyeye giden yol da farklıdır; OSS4SG'de bu yola daha hızlı ve birden fazla yoldan ulaşılır. Dolayısıyla, bir tür projeye göre oluşturulmuş katkıcıyı elde tutma oyun kitabı başka bir türde işe yaramayabilir.

Uzmanların Görüşleri

BT sektöründe çalışan herkes için bu konu yakından ilgilidir. Tipoloji hala gelişme aşamasındadır; yazarlar bunu bir başlangıç hipotezi olarak ele alıyor ve daha fazla araştırma geldikçe kategoriler değişecektir. Ancak pratik çıkarım geçerlidir: Bir kuruluş açık kaynak bir araca bağlanmadan veya yeni bir bağımlılık eklemeden önce, kategori size yıldız sayısının asla söylemeyeceği bir şey söyler. Tek satıcılı açık çekirdek bir ürün, o satıcının iş planlarına bağlı lisans değiştirme riski taşır. Tek kişilik bir paket, bir kişinin ayrılmasıyla bozulma riski (otobüs faktörü) taşır. Vakıf destekli bir proje ise rakiplerin onu paylaşmasını sağlayan yönetişime sahiptir. Hangi tür projeyle uğraştığınızı bilmek, riski kod daha yayına girmeden önce gözler önüne serer.

Kaynak: helpnetsecurity.com

Paylaş: