Cara membuat program sumber terbuka

Selesai

Di sini, kita membahas pertimbangan utama untuk membuat program sumber terbuka.

Apa yang kita maksud dengan "sumber terbuka?"

Program sumber terbuka lebih dari akses publik ke basis kode. Program sumber terbuka tentang membuka proyek hidup untuk partisipasi dari siapa pun yang ingin terlibat. Ketika dijalankan dengan benar untuk proyek yang sesuai, program sumber terbuka dapat membantu mendorong peningkatan besar dalam kualitas produk Anda.

Salah satu alasan utama perusahaan proyek sumber terbuka adalah mereka ingin komunitas terlibat. Proyek populer menerima kontribusi yang signifikan dari komunitas, dan mereka mendapatkannya secara gratis.

Proyek ini belum tentu keluar dari altruisme. Orang dan organisasi menggunakan proyek karena mereka melihat manfaat pribadi atau bisnis. Ketika proyek tidak memenuhi kebutuhan atau harapan mereka, mereka mungkin menggunakan kesempatan untuk mengatasi bug atau menambahkan fitur. Daripada menyimpan peningkatan ini di fork pribadi, mereka didorong untuk memberikan perubahan tersebut kembali ke repositori sumber agar menjadi bagian dari dasar proyek. Siklus perbaikan yang berbudi luhur inilah sebabnya banyak bisnis menghasilkan perangkat lunak menggunakan model sumber terbuka.

Tujuan sumber terbuka

Untuk rekap, ada tiga dimensi untuk berpartisipasi dalam perangkat lunak sumber terbuka:

  • Konsumen, yang belajar atau menggunakan repositori orang lain.
  • Kontributor, yang secara aktif terlibat dalam peningkatan repositori orang lain.
  • Produsen, yang membangun dan memelihara repositori mereka sendiri yang terbuka untuk orang lain.

Ketika organisasi berpikir lebih dalam tentang apa yang ingin mereka keluar dari setiap dimensi, itu adalah praktik yang baik untuk mengambil stok di mana mereka berada saat ini. Ada lima tingkat proses dalam setiap dimensi.

Diagram tingkat proses sumber terbuka.

  • Ad hoc, yang tidak memiliki proses yang ditetapkan. Keberhasilan bergantung pada upaya individu.
  • Terkelola, yang prosesnya didokumentasikan sebagian. Keberhasilan bergantung pada disiplin.
  • Ditentukan, yang memiliki proses terdokumen, terstandarisasi, dan terintegrasi. Keberhasilan bergantung pada automasi.
  • Diukur, yang memiliki proses yang dikelola secara kuantitatif. Keberhasilan bergantung pada pengukuran metrik terhadap tujuan bisnis.
  • Dioptimalkan, yang memiliki proses yang terus berkembang dan dapat diandalkan melalui perubahan inkremental dan inovatif. Keberhasilan bergantung pada pengurangan risiko perubahan.

Untuk mendapatkan pemahaman yang lebih baik tentang posisi organisasi Anda, lihat Penilaian mandiri sumber terbuka.

Apa yang harus Anda buka sumbernya?

Banyak proyek tidak ditujukan untuk kehebatan sumber terbuka. Meskipun kriteria Anda mungkin bervariasi berdasarkan tujuan dan tingkat proses perusahaan Anda, berikut adalah beberapa kriteria yang direkomendasikan untuk dipertimbangkan sebelum sumber terbuka proyek:

  • Apakah proyek Anda berisi kekayaan intelektual yang ingin Anda lindungi? Jika demikian, maka membuka sumbernya akan memberikan nilainya. Jangan sumber terbuka jenis proyek tersebut kecuali Anda merasakan manfaat melebihi risiko.

  • Apakah proyek dalam keadaan stabil dengan kualitas kode yang baik? Proyek ini tidak harus sempurna, tetapi kontributor potensial mungkin pergi jika proyek dalam bentuk mengerikan untuk memulai.

  • Apakah proyek Anda berguna bagi orang-orang di luar perusahaan Anda? Jika tidak, maka Anda mungkin tidak mendapatkan partisipasi apa pun.

  • Apakah orang di luar perusahaan Anda dapat berkontribusi? Mereka membutuhkan akses ke semua dependensi proyek, proses build, dan apa pun yang diperlukan untuk menjalankan proyek. Jika mereka tidak dapat menjalankannya, mereka tidak dapat berkontribusi.

  • Apakah tim Anda memiliki bandwidth untuk mendukung program sumber terbuka? Jika tidak, tunggu sampai Anda lakukan. Jika Anda membuka sumber proyek dan tidak mendukungnya, Anda mungkin kehilangan kesempatan untuk membangun komunitas tepercaya.

Pertanyaan-pertanyaan ini hanyalah beberapa pertimbangan yang paling umum. Organisasi Anda mungkin memiliki masalah bisnis atau kepatuhan lain yang perlu diingat.

Merancang program sumber terbuka

Menjalankan program sumber terbuka mirip dengan menjalankan program InnerSource, tetapi untuk hadirin publik. Akibatnya, ada beberapa pertimbangan lagi.

Menetapkan ekspektasi komunitas

File seperti README.md dan CONTRIBUTING.md bahkan lebih penting karena diekspos ke orang-orang yang tidak memiliki konteks organisasi Anda. Mereka perlu dievaluasi dari perspektif seseorang di luar perusahaan untuk memastikan kejelasan.

Selain itu, kode etik Anda adalah kebijakan penting untuk diekspresikan. Standarnya adalah menambahkan CODE_OF_CONDUCT.md file ke root repositori Anda dan menggunakannya untuk menjelaskan perilaku yang diharapkan dari peserta di komunitas Anda. Beberapa grup di organisasi Anda harus meninjau dokumen ini, termasuk tim hukum Anda. Untungnya, ada banyak tata tertib standar yang tersedia untuk memulai. Banyak proyek menggunakan kode-kode ini apa adanya tanpa modifikasi. Pelajari lebih lanjut di Panduan untuk kode etik sumber terbuka.

Mempersiapkan karyawan untuk mempertahankan repositori

Karyawan mungkin tidak memiliki pengalaman bekerja dengan komunitas sumber terbuka. Untuk membantu mereka mempersiapkan diri, kami menyarankan agar perusahaan menawarkan serangkaian panduan yang mencakup hal-hal penting yang harus diketahui semua orang sebelum mereka memulai. Panduan ini harus diposting ke repositori internal atau portal yang dikelola secara teratur dan hanya dapat diakses oleh karyawan perusahaan. Panduan berikut adalah beberapa yang paling penting:

  • Panduan "Haruskah kita sumber terbuka proyek ini?" yang menyediakan kerangka kerja untuk memutuskan apakah proyek kandidat harus bersumber terbuka atau tidak. Panduan ini dapat disusun sebagai diagram alur, set pertanyaan, atau daftar pertimbangan.

  • Daftar periksa penyiapan yang menyertakan semua item kerja yang perlu diselesaikan tim sebelum dan sesudah meluncurkan proyek sumber terbuka. Daftar ini harus mencakup memperoleh persetujuan untuk proyek sumber terbuka, tinjauan kode untuk memastikan data sensitif dihapus sebelum proyek ditayangkan, pencarian merek dagang atau proyek sumber terbuka untuk memastikan tidak ada konflik penamaan, dan sebagainya.

  • Daftar kontak untuk orang-orang kunci di organisasi Anda yang mungkin perlu dihubungi jika diperlukan dukungan langsung dari pengurus. Daftar ini harus mencakup orang-orang dari keamanan perangkat lunak, keamanan situs, hukum, hubungan publik, dan sebagainya.

  • Tautan ke repositori starter yang dapat diklon sebagai titik awal. Ini harus berisi sampel README, lisensi, kode etik, panduan berkontribusi, dan file pendukung lainnya yang harus dimiliki setiap proyek sumber terbuka dari perusahaan Anda. Seharusnya tidak berisi apa pun yang anda tidak ingin secara tidak sengaja didorong ke hadirin publik.

  • Panduan pemeliharaan yang menjelaskan tanggung jawab yang dimiliki seorang penjaga dalam menjaga repositori tetap sehat. Tanggung jawab ini termasuk menjaga dokumentasi repositori tetap terbaru, memastikan masalah dan permintaan pull mendapatkan perhatian orang yang tepat tepat waktu, dan sebagainya.

  • Panduan komunikasi yang menawarkan panduan pengurus repositori untuk beberapa topik yang anda pilih untuk tidak disertakan dalam file publik seperti README.md, , CONTRIBUTING.mdatau CODE_OF_CONDUCT.md. Subjek ini mungkin topik bisnis yang sensitif, seperti tidak membahas pesaing; atau topik perilaku yang lebih umum, seperti cara mengenali kontributor teratas dengan tepat.

  • FAQ internal yang menyediakan jawaban yang disetujui untuk pertanyaan umum. Daftar ini sangat berguna jika ada seluk beluk hukum untuk topik yang mungkin dibahas perusahaan Anda dalam rangka mempertahankan program sumber terbuka.

  • Kebijakan lisensi yang mencantumkan lisensi mana yang telah disetujui atau ditolak oleh departemen hukum untuk penggunaan atau kontribusi sumber terbuka.