- Laporan terbaru memunculkan kritik terhadap penggunaan perangkat lunak open source yang dibuat oleh pengembang Rusia
- Kenyataannya, hampir sebagian besar proyek open source dijalankan oleh hanya satu orang maintainer
- Bukan hanya NPM, tetapi juga berbagai ekosistem lain memiliki sangat banyak contoh paket populer yang dikelola oleh maintainer tunggal
- Masalah dari struktur ini adalah beban berlebihan pada satu maintainer serta risiko rantai pasok
- Inti persoalannya bukan kewarganegaraan, melainkan keterbatasan sumber daya dan dukungan yang nyata
Pendahuluan: open source dan kontroversi terbaru
- The Register memberitakan artikel yang mempermasalahkan ketergantungan Departemen Pertahanan AS pada utilitas open source buatan pengembang Rusia
- Pengembang open source tersebut sedang menerima tuduhan yang tidak adil
- Isi artikel itu salah memahami realitas open source, dan teks ini menyoroti keterbatasan pendekatan semacam itu
Realitas open source: struktur 'satu orang'
- Menurut data, hampir sebagian besar proyek open source dikelola oleh satu orang
- Proyek ecosyste.ms mencatat data sekitar 11,8 juta proyek open source
- Di antaranya, sekitar 7 juta memiliki maintainer tunggal
- Sekitar 4 juta proyek sisanya tidak diketahui jumlah maintainer-nya, tetapi diperkirakan banyak yang juga hanya dikelola satu orang
- Hanya sangat sedikit proyek yang memiliki ratusan maintainer
Proyek populer juga bukan pengecualian
- Banyak orang mengira "open source yang penting atau proyek populer pasti dikelola banyak orang", tetapi kenyataannya ekosistem utama seperti NPM pun tidak berbeda
- Di dalam ekosistem NPM ada lebih dari 4 juta proyek dengan maintainer tunggal
- Bahkan di antara paket NPM yang diunduh lebih dari 1 juta kali per bulan, sekitar setengahnya dijalankan oleh maintainer tunggal
- Jika ambang unduhan dinaikkan menjadi 1 miliar kali, ada sedikit perbedaan, tetapi paket dengan satu maintainer tetap ada
- Jumlah orang nyata yang menjalankan 4 juta proyek maintainer tunggal di NPM adalah sekitar 900 ribu orang (artinya, satu orang bertanggung jawab atas beberapa proyek)
Inti masalah: bukan negara, melainkan kekurangan sumber daya
- Skala ekonomi open source merupakan fondasi bernilai triliunan dolar (menurut riset Harvard, 8,8 triliun dolar)
- Sebagian besar proyek maintainer tunggal kekurangan sumber daya dan memiliki risiko rantai pasok
- Risiko terbesar bukanlah negara, melainkan 'satu maintainer' yang bekerja berlebihan dan tidak mendapat kompensasi yang layak
- Menjadikan maintainer individu sebagai sasaran media dan pihak lain bukanlah solusi
Kesimpulan dan poin tindakan
- Penyebab masalah saat ini ada pada struktur maintainer tunggal, sehingga memusatkan perhatian pada negara tidaklah bermakna
- Mendemonisasi atau mencoba mendeteksi maintainer individu bukanlah solusi
- Masalah ini rumit sehingga belum ada jalan keluar yang langsung tersedia
- Daripada menunjuk dan menyalahkan maintainer tunggal, perlu memikirkan masalah struktural dan cara dukungannya
1 komentar
Komentar Hacker News
Rasanya ada banyak kesalahpahaman di komunitas software soal isu ini; menurut saya, pada praktiknya risiko rantai pasok lebih merupakan masalah tata kelola daripada masalah software atau engineering itu sendiri
Bahkan tanpa niat buruk dari siapa pun, sebuah proyek bisa menimbulkan risiko rantai pasok, dan setiap orang yang menilai risiko rantai pasok punya sudut pandang keamanan serta standar yang berbeda-beda
DoD (Departemen Pertahanan AS) melihat risiko dari sudut pandang yang benar-benar berbeda dari pengembang biasa, dan banyak proyek satu orang dianggap berisiko hanya karena yang bertanggung jawab cuma satu orang
Jika
bus factor-nya 1, itu sendiri sudah merupakan risiko rantai pasokKebanyakan orang tidak memikirkan sampai skenario perang saat memilih paket, tetapi militer bisa saja mempertimbangkan perang
Jika perang terjadi, proyek open source yang biasanya dikelola secara mandiri pun bisa mengalami perubahan situasi secara drastis
Faktanya, banyak negara pada masa perang dapat secara hukum meminta kerja sama dari perusahaan swasta atau proyek pribadi, jadi ada pihak-pihak (seperti DoD) yang memasukkan hal seperti ini ke dalam perhitungan risiko keamanan
Dalam kondisi perang, mereka tidak akan beroperasi dengan pola pikir seperti, "Andai saja ada satu orang lain lagi yang sama sekali tidak kita percaya"
Ada data yang menyebutkan bahwa di NPM ada 4 juta proyek satu orang dan sekitar 900 ribu orang yang mengelola proyek-proyek itu, tetapi saya bertanya-tanya apakah itu memang poin yang begitu penting
Artinya, yang menghasilkan nilai ekonomi open source (Harvard memperkirakannya sebesar 8,8 triliun dolar) sebagian besar adalah "proyek satu orang", dan tak satu pun dari mereka mendapat dukungan sumber daya yang layak
Dalam pembicaraan soal risiko rantai pasok, yang benar-benar berisiko adalah maintainer tunggal yang dibayar rendah dan kelelahan karena kerja berlebihan
Menurut saya, dari negara mana orang itu berasal sebenarnya tidak terlalu penting
Saya penasaran apakah ada statistik tentang apa yang terjadi ketika maintainer tunggal tiba-tiba mengalami kecelakaan atau meninggalkan proyek
Dengan data sebanyak ini, rasanya layak untuk diteliti
Saya ingin tahu apakah pengembang baru akan melanjutkan proyeknya, apakah proyek itu digantikan oleh proyek serupa, atau apakah ia benar-benar menghilang
Dalam praktiknya, lebih umum bukan soal tertabrak bus, melainkan "maintainer kehilangan minat atau tidak punya waktu lalu melepaskannya"
Skenario yang sering terjadi dalam kondisi seperti ini adalah
Kekuatan open source adalah meskipun pembuatnya menghilang, berubah aneh, atau mengganti lisensi, akan selalu ada seseorang yang bisa membuat fork dan menjaganya tetap hidup
Sebaliknya, software komersial akan selesai begitu saja jika pembuatnya—baik perusahaan maupun individu—menghilang atau mengubah isinya
Paling banter, kita harus mencari produk pengganti
Itu juga alasan mengapa saya tidak menjalankan Netflix
Pada akhirnya ini bergantung pada jumlah pengguna, kompleksitas codebase, dan ada tidaknya alternatif
Ini cerita yang jauh lebih ganjil daripada sekadar "tertabrak bus", dan pada akhirnya proyek itu pun lenyap
Bahkan pada proyek yang dikelola oleh dua orang atau lebih, pada praktiknya sebagian besar commit biasanya tetap ditangani oleh satu orang saja
Tautan terkait: https://github.com/11ty/eleventy/graphs/contributors
Sayang sekali, padahal hanya dengan memeriksa tingkat aktivitas saja orang bisa langsung tahu bahwa setengah dari seluruh proyek punya 0 maintainer
Artinya ia bisa dibiarkan begitu saja tanpa perlu dibersihkan, dituning, atau dikalibrasi
Justru yang jadi masalah kadang adalah update (pembaruan), bukan proyek itu sendiri
Fakta bahwa DoD memakai node justru lebih mengkhawatirkan bagi saya
Saya merasa tidak nyaman karena platform seperti npm punya permukaan serangan yang terlalu besar
DoD adalah salah satu organisasi terbesar di dunia, jadi mereka juga punya banyak pekerjaan seperti mengirim newsletter atau halaman web untuk reservasi tur basis Pramuka
Untuk hal-hal seperti itu, menurut saya memakai node tidak masalah
Sistem seperti itu dijalankan terpisah dari sistem utama seperti peluncuran rudal, dan kalau sekadar halaman pendaftaran acara dirusak pun tidak akan jadi masalah besar
Saya rasa banyak proyek GitHub satu orang sebenarnya cuma eksperimen pribadi atau candaan seperti "hello world"
Saya tidak tahu bagaimana di npm, tetapi di PyPI juga penuh dengan contoh serupa
Saya sempat menekan ‘browse projects’ sendiri dan yang muncul adalah hal seperti ini: https://pypi.org/project/helloworld-eduardo/
Seberapa mabuk pun orang, rasanya tidak akan ada yang berpikir untuk memakai hal seperti ini di produk
DoD sangat pandai memanfaatkan sesuatu yang gratis, meyakinkan semua orang bahwa "ini menguntungkan kita bersama", lalu pada akhirnya tetap menyerahkannya ke kontraktor berbayar
Disebutkan ada "paket dengan maintainer tunggal yang telah diunduh lebih dari 1 miliar kali", dan saya penasaran apa sebenarnya yang ingin disampaikan oleh itu
Saya sering mendengar hal-hal baik tentang karya yang dibuat seseorang bernama Linus, dan saya rasa saya juga cukup sering memakainya
Karena dia berasal dari negara yang berbatasan dengan Rusia, saya sempat bertanya-tanya apakah hal seperti ini juga perlu dikhawatirkan
Saya sudah puluhan tahun mengembangkan open source, dan hampir selalu mengerjakannya sendirian atau kadang membentuk tim sukarelawan
Siapa pun yang pernah bekerja dengan tim sukarelawan pasti tahu bahwa itu benar-benar tidak mudah
Tentu bukan berarti mustahil sama sekali, tetapi juga tidak sesering yang kita bayangkan bisa berjalan baik
Kalau berhasil, biasanya karena ada "BDFL (benevolent dictator for life)" atau karena semua orang bergerak menuju satu tujuan yang sama
Dalam kasus saya, hampir selalu bentuk yang kedua
Ayahnya juga pernah tinggal beberapa tahun di Moskow