“Apa” dan “kenapa” open source

Anda berpikir untuk memulai pada open source? Selamat! Dunia ini menghargai kontribusi Anda. Mari kita bicarakan tentang apa itu open source dan kenapa orang-orang melakukannya.

Apa arti “open source”?

Ketika sebuah proyek bersifat open source, hal itu berarti setiap orang bisa melihat, menggunakan, memodifikasi, dan mendistribusikan proyek Anda untuk segala tujuan. Hak akses ini diakui melalui lisensi open source.

Open source sangatlah berkuasa karena mengurangi hambatan untuk adopsi, memungkinkan ide untuk berkembang dengan pesat.

Untuk memahami bagaimana proses ini bekerja, bayangkan teman Anda sedang makan, dan Anda membawa sebuah pai berisi buah ceri.

  • Semua orang mencoba pai (menggunakan)
  • Pai menjadi viral! Orang menanyakan resepnya kepada Anda, dan Anda berikan (lihat)
  • Salah seorang teman, Alex, seorang chef pastry, menyarankan untuk mengurangi gula (modifikasi)
  • Teman lain, Lisa, ingin menggunakannya untuk makan malam minggu depan (distribusi)

Sebagai perbandingan, sebuah proses yang tertutup akan seperti dimana Anda pergi ke sebuah rumah makan dan memesan sepotong pai buah ceri. Anda harus membayar untuk memakan potongan tersebut, dan rumah makan tersebut tidak akan memberikan resepnya kepada Anda. Jika Anda membuat salinan utuh pai mereka dan menjualnya dengan nama Anda, rumah makan bisa mengambil sebuah tindakan terhadap Anda.

Kenapa orang-orang membuka hasil karya mereka?

Terdapat banyak alasan kenapa seseorang atau sebuah organisasi ingin membuka proyek open source. Beberapa diantaranya meliputi:

  • Kolaborasi: Proyek open source bisa menerima perubahan dari siapapun juga di seluruh dunia. Exercism, sebagai contoh, adalah kerangka latihan pemrograman dengan lebih dari 350 kontributor.

  • Adopsi dan menggabungkan: Proyek open source bisa digunakan oleh siapapun untuk hampir semua tujuan. Bahkan bisa digunakan untuk membangun proyek lain. WordPress, sebagai contoh, dimulai dari hasil fork dari proyek yang sudah ada bernama b2.

  • Transparansi: Setiap orang dapat melihat kesalahan atau inkonsistensi pada proyek open source. Transparansi sangat penting bagi pemerintah seperti Bulgaria atau Amerika Serikat, industri yang memiliki regulasi seperti perbankan atau kesehatan, dan perangkat lunak keamanan seperti Let’s Encrypt.

Open source bukan hanya untuk perangkat lunak saja. Anda bisa membuka tentang apa saja mulai dari kumpulan data hingga buku. Silahkan lihat GitHub Explore untuk ide yang dapat Anda buka sebagai open source.

Apakah open source berarti “bebas biaya”?

Salah satu hal yang menarik dari open source adalah tidak memerlukan biaya. “Bebas biaya”, adalah hasil sampingan dari keseluruhan nilai open source.

Karena lisensi open source mewajibkan bahwa setiap orang boleh menggunakan, memodifikasi, dan menyebarkan proyek Anda untuk segala tujuan, pada umumnya proyek tersebut bersifat bebas biaya. Jika proyek memerlukan uang untuk bisa menggunakannya, setiap orang boleh membuat salinannya secara legal dan menggunakan versi gratisnya.

Sebagai hasilnya, sebagian besar proyek open source bersifat gratis, tetapi “bebas biaya” bukan bagian dari definisi open source. Terdapat banyak cara untuk menarik dana bagi proyek open source secara tidak langsung melalui lisensi ganda atau fitur yang terbatas, dan masih tetap sesuai dengan definisi resmi dari open source.

Perlukah saya merilis proyek open source saya sendiri?

Jawaban singkatnya adalah ya, karena apapun hasilnya, merilis proyek Anda sendiri adalah cara baik untuk belajar bagaimana open source bekerja.

Jika Anda belum pernah membuka proyek Anda sebelumnya, Anda mungkin akan khawatir tentang apa yang akan dikatakan oleh orang lain, atau apakah orang lain akan melihat proyek Anda atau tidak. Jika hal ini sama seperti yang Anda rasakan, Anda tidak sendirian.!

Pekerjaan open source sama seperti aktivitas kreatif lainnya, baik itu menulis maupun melukis. Terkadang bisa menakutkan untuk mempublikasikan hasil pekerjaan Anda kepada dunia, tetapi satu-satunya cara agar lebih baik adalah dengan berlatih - meskipun Anda tidak punya pengguna.

Jika Anda belum yakin, berikan waktu sejenak untuk memikirkan tujuan akhir Anda.

Menentukan tujuan akhir Anda

Tujuan akhir bisa membantu Anda menentukan apa yang akan dikerjakan, apa yang harus ditolak, dan dimana Anda akan membutuhkan bantuan dari orang lain. Mulailah dengan menanyakan kepada dirinya Anda sendiri, kenapa saya membuat proyek saya menjadi open source?

Tidak ada jawaban benar tunggal pada pertanyaan ini. Anda boleh memiliki banyak tujuan akhir untuk satu proyek tunggal, atau beberapa proyek dengan beberapa tujuan akhir.

Jika tujuan akhir Anda adalah untuk menunjukkan hasil pekerjaan Anda, Anda mungkin tidak perlu adanya kontribusi, dan mungkin bisa saja dituliskan pada dokumen README Anda. Di satu sisi, jika Anda ingin adanya kontributor, Anda harus menginvestasikan waktu untuk dokumentasi yang jelas dan membuat pendatang baru merasa disambut.

Ketika proyek Anda berkembang, komunitas Anda mungkin membutuhkan lebih dari sekedar kode dari Anda. Merespon terhadap laporan masalah, melakukan review terhadap kode, dan mempopulerkan proyek Anda menjadi kegiatan penting dalam proyek open source.

Meskipun jumlah waktu yang Anda habiskan untuk kegiatan yang tidak berhubungan dengan pengembangan akan sangat bergantung dari ukuran dan batasan proyek Anda, Anda harus siap sebagai pengelola untuk menjalaninya atau cari seseorang untuk membantu Anda.

Jika Anda bagian dari sebuah perusahaan yang membuka proyeknya pada open source, pastikan proyek Anda memiliki sumber daya internal yang dibutuhkan untuk berkembang. Anda perlu mengindetifikasi siapa yang bertanggung jawab untuk mengelola proyek setelah diluncurkan, dan bagaimana Anda akan mendistribusikan tugas tersebut dengan komunitas.

Jika Anda membutuhkan pendanaan yang permanen atau alokasi staf untuk promosi, operasi, dan pengelolaan proyek, lakukan diskusi di awal.

Kontribusi ke proyek lain

Jika tujuan akhir Anda adalah belajar bagaimana berkolaborasi dengan orang lain atau memahami bagaimana open source bekerja, pertimbangkan untuk berkontribusi pada proyek yang sudah ada. Mulailah dengan proyek yang sudah Anda gunakan dan Anda suka. Berkontribusi pada sebuah proyek bisa semudah memperbaiki kesalahan penulisan atau memperbarui dokumentasi.

Jika Anda tidak yakin bagaimana memulai sebagai kontributor, silahkan lihat Panduan Bagaimana Berkontribusi pada Open Source.

Merilis proyek open source Anda

Tidak ada waktu yang sempurna untuk membuka proyek Anda kepada open source. Anda bisa membuat ide Anda, pekerjaan yang sedang dalam pengembangan, atau setelah sekian lama berada dalam lingkungan yang tertutup (closed source) menjadi open source.

Secara umum, Anda harus membuka proyek Anda menjadi ketika Anda merasa nyaman ketika orang lain melihat dan memberikan masukan pada pekerjaan Anda.

Tidak perduli pada tahap mana Anda memutuskan untuk membuka proyek Anda, setiap proyek sebaiknya menyediakan dokumentasi berikut:

Sebagai pengelola, komponen-komponen tersebut akan membantu Anda mengkomunikasikan ekspektasi, mengelola kontribusi, dan menjaga hak legal dari setiap orang (termasuk Anda sendiri). Dokumen-dokumen tersebut akan meningkatkan peluang Anda secara signifikan untuk mendapatkan pengalaman yang positif.

Jika proyek Anda berada pada GitHub, meletakkan dokumen-dokumen diatas pada direktori induk dengan nama dokumen yang direkomendasikan akan membantu GitHub mengenalinya secara otomatis dan menampilkannya pada pengunjung.

Memilih sebuah lisensi

Sebuah lisensi open source menjamin bahwa orang lain mampu menggunakan, menyalin, memodifikasi, dan berkontribusi kembali pada proyek Anda tanpa adanya masalah. Lisensi juga menjaga dari masalah legalitas. Anda harus menyertakan sebuah lisensi ketika Anda merilis sebuah proyek open source.

Pekerjaan hukum bukan sesuatu yang menyenangkan. Berita baiknya adalah Anda bisa menyalin dan menggunakan lisensi yang sudah ada pada repositori Anda. Proses ini hanya membutuhkan waktu satu menit untuk menjaga hasil kerja keras Anda.

MIT, Apache 2.0, dan GPLv3 adalah lisensi open source yang paling populer, tetapi terdapat opsi lain yang bisa Anda pilih.

Ketika Anda membuat proyek baru pada GitHub, Anda diberikan pilihan untuk memilih sebuah lisensi. Menyertakan sebuah lisensi open source akan membuat proyek GitHub Anda sebagai open source.

memilih sebuah lisensi

Jika Anda memiliki pertanyaan lain atau khawatir tentang aspek legalitas tentang mengelola proyek open source, kami punya solusinya.

README berisi lebih dari sekedar penjelasan bagaimana menggunakan proyek Anda. Dokumen ini juga menjelaskan kenapa proyek Anda penting, dan apa yang bisa dilakukan oleh pengguna Anda dengan proyek tersebut.

Pada dokumen README, cobalah untuk menjawab pertanyaan berikut:

  • Apa yang dilakukan proyek ini?
  • Kenapa proyek ini berguna?
  • Bagaimana saya memulainya?
  • Jika saya membutuhkan bantuan, dimana saya bisa mendapatkannya?

Anda bisa menggunakan README untuk menjawab pertanyaan lainnya, seperti bagaiman Anda akan menangani kontribusi, apa tujuan akhir dari proyek, dan informasi tentang lisensi. Jika Anda tidak ingin menerima kontribusi, atau proyek Anda belum siap untuk produksi, tuliskan informasi ini.

Seringkali, banyak orang menghindari untuk menulis README karena mereka merasa bahwa proyek belum selesai, atau mereka tidak menginginkan adanya kontribusi. Berikut ini adalah berbagai alasan bagus bagi Anda untuk menulis dokumen README.

Untuk insipirasi lainnya, Silahkan coba “Membuat README lebih Terbaca” milik @18F atau Template README milik @PurpleBooth untuk menulis README yang lengkap.

Ketika Anda menyertakan dokumen README pada direktori induk, GitHub akan secara otomatis menampilkannya pada homepage repositori.

Sebuah dokumen CONTRIBUTING menjelaskan kepada pengguna tentang bagaimana berpartisipasi pada proyek Anda. Sebagai contoh, Anda mungkin menyertakan informasi tentang:

  • Bagaimana membuat laporan kesalahan (cobalah menggunakan template laporan masalah dan pull request)
  • Bagaimana menyarankan sebuah fitur baru
  • Bagaimana melakukan persiapan lingkungan pengembangan dan melakukan pengujian

Selain aspek teknis, dokumen CONTRIBUTING juga merupakan kesempatan untuk mengkomunikasikan harapan Anda untuk kontribusi, misalnya

  • Jenis kontribusi yang Anda harapkan
  • Rencana jangka panjang atau visi proyek Anda
  • Bagaimana kontribusi bisa menghubungi Anda

Menggunakan nada yang bersahabat dan menawarkan tawaran yang spesifik untuk kontribusi (misalnya menuliskan dokumentasi, atau membuat halaman web) bisa membuat pendatang merasa nyaman dan diterima serta tertarik untuk berpartisipasi.

Sebagai contoh, Active Admin memulai panduan kontribusinya dengan:

Pertama-tama, terima kasih karena Anda mempertimbangkan untuk berpartisipasi pada Active Admin. Orang-orang seperti Anda yang membuat Active Admin menjadi sebuah perangkat yang hebat.

Pada fase awal dari proyek Anda, dokumen CONTRIBUTING bisa sangat sederhana. Anda perlu menjelaskan bagaimana melaporkan kesalahan dan kebutuhan teknis (seperti pengujian), atau bagaimana cara berkontribusi.

Seiring dengan berjalannya waktu, Anda bisa menambahkan pertanyaan yang paling sering ditanyakan pada dokumen CONTRIBUTING. Menuliskan informasi ini berarti lebih sedikit orang yang akan bertanya pertanyaan yang sama kepada Anda berulang kali.

Untuk bantuan tentang penulisan dokumen CONTRIBUTING, silahkan lihat template panduan berkontribusi milik @nayafia atau “Bagaimana Membangun Dokumen CONTRIBUTING.md” milik @mozilla.

Hubungkan dokumen CONTRIBUTING dari README, sehingga lebih banyak orang yang melihatnya. Jika Anda meletakkan dokumen CONTRIBUTING pada repositori proyek, GitHub akan secara otomatis menghubungkan ke dokumen Anda ketika seorang kontributor membuat sebuah laporan masalah atau membuat pull request.

panduan kontribusi

Membangun kode etik

Akhirnya, sebuah kode etik membantu menentukan aturan perilaku dasar bagi partisipan proyek Anda. Hal ini akan sangat berguna apabila Anda merilis proyek open source untuk sebuah komunitas atau perusahaan. Kode etik memampukan Anda untuk memfasilitasi perilaku yang sehat dan konstruktif, sehingga mengurangi kadar stress Anda sebagai pengelola.

Untuk informasi lebih lanjut, silahkan lihat Panduan Kode Etik.

Selain untuk mengkomunikasikan bagaimana Anda mengharapkan partisipan Anda untuk berperilaku, kode etik juga pada umumnya menjelaskan kepada siapa ekspektasi ini berlaku, dan ketika hal itu berlaku, apa yang harus dilakukan apabila terjadi pelanggaran.

Seperti halnya lisensi open source, terdapat banyak standar untuk kode etik, sehingga Anda tidak perlu menuliskannya sendiri. Contributor Covenant adalah kode etik siap pakai yang digunakan oleh lebih dari 40.000 proyek open source, termasuk Kubernetes, Rails, dan Swift. Tanpa memperhatikan teks yang Anda gunakan, Anda harus selalu siap untuk menjalankan kode etik apabila diperlukan.

Salin teks langsung pada dokumen CODE_OF_CONDUCT pada repositori Anda. Letakkan pada direktori induk pada repositori sehingga mudah ditemukan dan hubungkan dari dokumen README.

Penamaan dan pencitraan proyek Anda

Pencitraan lebih dari sekedar logo yang mengkilap atau nama proyek yang mudah menarik. Pencitraan lebih tentang bagaimana Anda membicarakan proyek Anda dan siapa saja yang menjadi target pesan Anda.

Memilih nama yang tepat

Pilihlah sebuah nama yang mudah diingat dan memberikan gambaran tentang apa yang dilakukan oleh proyek. Misalnya:

  • Sentry aplikasi monitoring untuk pelaporan kerusakan sistem
  • Thin adalah server web Ruby yang cepat dan sederhana

Jika Anda membangun berdasarkan proyek yang sudah ada, menggunakan nama proyek terdahulu sebagai awalan bisa membantu memperjelas apa yang dilakukan proyek Anda (misalnya. node-fetch menghadirkan window.fetch pada Node.js).

Perhatikan masalah kejelasan. Bercanda merupakan sesuatu yang menyenangkan, tetapi perlu diingat bahwa beberapa hal mungkin tidak dapat tersampaikan dengan baik pada budaya yang lain atau orang-orang dengan pengalaman yang berbeda dengan Anda. Sebagian dari calon pengguna Anda mungkin merupakan pegawai kantor: jangan sampai Anda membuat mereka tidak nyaman ketika mereka harus menjelaskan proyek Anda pada ruang lingkup pekerjaan mereka!

Hindari konflik nama

Cari proyek open source dengan nama yang mirip, terutama jika Anda menggunakan bahasa atau ekosistem yang sama. Jika nama Anda memiliki kesamaan dengan proyek lain yang populer, Anda bisa membuat bingung pengguna Anda.

Jika Anda menginginkan sebuah website, akun Twitter, atau hal lain yang merepresentasikan proyek Anda, pastikan Anda bisa mendapatkan nama yang Anda inginkan. Idealnya, klaim nama-nama tersebut sekarang agar Anda lega, meskipun Anda belum akan menggunakannya sekarang.

Pastikan nama proyek Anda tidak melanggar merek dagang. Sebuah perusahaan mungkin meminta Anda untuk menghapus proyek Anda dikemudian hari, atau bahkan mengambil jalur hukum terhadap Anda. Resikonya sangatlah tidak sepadan.

Anda bisa melihat Basis data Merek Global WIPO untuk konflik merek dagang. Jika Anda berada pada sebuah perusahaan, ini adalah satu hal dimana tim kuasa hukum Anda bisa membantu.

Akhirnya, lakukan pencarian di Google untuk nama proyek Anda. Apakah orang bisa menemukan proyek Anda dengan mudah? Apakah nama lain muncul pada hasil pencarian yang tidak Anda inginkan?

Bagaimana Anda menulis (dan membuat kode) bisa mempengaruhi citra Anda juga!

Pada siklus hidup proyek Anda, Anda akan banyak menulis: README, tutorial, dokumen komunitas, merespon terhadap laporan masalah, atau bahkan newsletter dan mailing list.

Baik dokumentasi resmi atau email sehari-hari, gaya penulisan Anda merupakan bagian dari citra proyek Anda. Perhatikan bagaimana Anda bisa hadir pada pengguna Anda dan apakah hal itu merupakan pesan yang ingin Anda sampaikan?

Menggunakan bahasa yang hangat, inklusif (seperti “mereka”, meskipun mengacu pada satu orang) bisa membuat proyek Anda lebih nyaman bagi kontributor baru. Gunakan bahasa sederhana, karena bisa jadi banyak pengguna Anda bukan merupakan pengguna yang menggunakan bahasa Inggris sehari-harinya.

Selain bagaimana Anda menuliskan kata-kata, gaya pemrograman Anda juga bisa menjadi bagian dari citra proyek Anda. Angular dan jQuery adalah dua contoh proyek dengan gaya pemrograman dan panduan yang lengkap.

Tidaklah penting untuk menuliskan gaya penulisan untuk proyek Anda ketika Anda baru memulainya dan Anda mungkin senang untuk mencoba beberapa gaya pemrograman pada proyek Anda. Tetapi Anda perlu mengantisipasi bagaimana penulisan dan pemrograman Anda bisa memikat orang atau malah membuat orang untuk menghindari proyek Anda. Tahap awal dari proyek Anda adalah kesempatan untuk menentukan arah yang Anda tuju.

Daftar checklist pra-rilis

Sudah siap untuk membuat proyek Anda open source ? Berikut daftar checklist untuk membantu. Anda sudah menyelesaikan semua kotak? Anda sudah siap! Klik”publish” dan tepuklah diri Anda sendiri.

Dokumentasi

Kode

Orang

Jika Anda perseorangan:

Jika Anda merupakan perusahaan atau organisasi:

Anda melakukannya!

Selamat atas keberhasilan Anda membuka proyek open source pertama Anda. Tanpa melihat hasil akhirnya, bekerja pada lingkungan publik merupakan anugrah bagi komunitas. Dengan setiap commit, komentar, dan pull request, Anda telah menciptakan peluang bagi Anda sendiri dan orang lain untuk belajar dan berkembang.