Ada beberapa proyek open source yang ingin saya sertakan ke dalam produk di tempat kerja. Kami tidak memiliki bandwidth atau keahlian materi pelajaran untuk melakukannya sendiri. Saya menemukan ini dengan mencari di Google. Saya tidak mengetahui adanya "pemain besar" yang memanfaatkan proyek, tapi saya cukup terdorong oleh apa yang saya lihat.
Sekarang, saya sedikit khawatir tentang jumlah risiko yang saya hadapi dengan menggunakan proyek open source joe-blow. Jika saya membutuhkan 95% dari perjalanan ke sana, mungkin 5% sisanya mudah untuk ditambahkan atau diperbaiki. Mungkin itu tidak sepele.
Bagaimana orang menentukan apakah proyek open source cukup matang untuk digunakan dalam suatu produk?
Ini bukan proyek hobi, jadi stabilitas, rawatan, dll. Sangat penting.
sumber
Jawaban:
Kriteria yang saya gunakan, asalkan proyek sesuai dengan persyaratan saya:
4 & 5 tidak terlalu membantu proyek niche yang sepertinya milik Anda.
Satu hal yang paling penting adalah apakah memenuhi persyaratan Anda? Jika Anda merasa itu terjadi, hal selanjutnya yang harus dilakukan adalah membuat memanfaatkan untuk menguji proyek dan melihat apakah Anda dapat melakukan apa yang Anda inginkan. Ini akan memberi Anda perasaan untuk API-nya (jika itu perpustakaan) dan cara kerjanya.
Pada akhirnya, jika ada sesuatu yang bersifat open source yang melakukan 90% dari apa yang Anda lakukan, bercabang, tambahkan fungsionalitas ekstra dan kembalikan ke komunitas. Saya pernah melakukan ini pada proyek komersial.
sumber
Untuk perpustakaan kecil, Anda harus selalu berasumsi bahwa Anda harus melakukan fork dan proyek tersebut sudah ditinggalkan. Ini biasanya bukan masalah, terutama jika proyek di-host di Github atau BitBucket, karena mereka membuat forking proyek orang lain jadi sangat mudah. Untuk perpustakaan kecil, Anda selalu dapat mengambil alih sendiri pemeliharaan proyek, jika pengelola asli tidak ada atau jika mereka berencana untuk mengambil arah proyek ke tempat-tempat yang tidak ingin Anda kunjungi.
Saya kurang peduli dengan aktivitas proyek, perpustakaan dewasa yang telah mencapai rasa "kesempurnaan" mereka umumnya hanya perlu melakukan perbaikan bug, sehingga aktivitas mereka melambat. Kegiatan proyek hanya penting jika perpustakaan melibatkan target yang secara aktif berevolusi, misalnya, pembungkus untuk layanan eksternal perlu terus diperbarui saat layanan eksternal berkembang, sehingga pengembangan aktif sangat penting, tetapi perpustakaan matematika tidak perlu banyak perkembangan baru setelah memiliki semua fitur yang dibutuhkan.
Untuk perpustakaan yang lebih besar, banyak hal menjadi lebih sulit. Mengambil alih lebih banyak terlibat, untungnya perpustakaan yang lebih besar umumnya tidak bergerak secepat, karena mereka umumnya lebih matang.
Seperti @Sam katakan dalam jawabannya, saya setuju bahwa hal paling penting dalam mengevaluasi perpustakaan open source adalah seberapa cocok dengan kebutuhan Anda. Setelah masalah lisensi diselesaikan, menggunakan pustaka sumber terbuka jarang merupakan kesalahan karena Anda selalu dapat melakukan percabangan jika ada hal yang terjadi di selatan.
sumber
Lihat di pelacak bug proyek. Jika Anda melihat banyak tiket diajukan oleh banyak orang yang berbeda, dan tanggapan datang dari berbagai orang juga, maka itu pertanda baik. Lebih banyak tiket bug == komunitas pengguna yang lebih besar == lebih mungkin untuk siap digunakan oleh Anda.
sumber
Berita itu tidak baik, tetapi itu tidak berarti itu salah: Anda tidak tahu.
Jika ada implementasi analog dalam produksi, Anda akan tahu itu layak, tetapi seperti yang Anda katakan tidak ada "pemain utama" yang menggunakan proyek.
Jika Anda mengembangkan di rumah, maka Anda akan tahu, tetapi seperti yang Anda katakan, Anda tidak memiliki sumber daya.
Masuk akal ingin tahu, tapi ... Anda tidak tahu.
Saya harap jawaban ini memang membantu, karena Anda harus memiliki rencana darurat untuk menarik steker pada teknologi apa pun yang Anda andalkan tetapi tidak mengontrol ... dan mengetahui bahwa Anda tidak tahu apakah itu dapat diandalkan merupakan langkah ke arah itu.
sumber
Pertanyaannya harus diletakkan secara berbeda. Apa yang sebenarnya Anda tanyakan adalah menggunakan proyek open-source ini cara terbaik mengembangkan produk?
Itu tidak hanya melibatkan proyek sumber terbuka yang dipermasalahkan, tetapi juga opsi Anda yang lain. Jika satu-satunya pilihan Anda adalah menulis semuanya sendiri, daripada Anda lebih baik menggunakan proyek jika Anda dapat memahami kode itu cukup untuk dapat memodifikasinya.
Tentu saja muncul pertanyaan lain apakah proyek Anda layak atau tidak. Yaitu Anda perlu memperkirakan upaya termasuk risiko harus memperbaiki atau menyelesaikan fungsionalitas yang Anda harapkan disediakan oleh kode sumber terbuka. Jika proyek tidak banyak digunakan, Anda harus meninjau kode untuk itu.
sumber