Apa itu bus factor?
- Bus factor adalah metrik yang menunjukkan berapa banyak anggota tim yang harus tiba-tiba menghilang agar proyek mengalami keterlambatan.
- Pada 2015, ketika kontributor pada satu-satunya codebase yang menghasilkan pendapatan di perusahaan dipecat, saya memutuskan untuk menulis plugin GitHub untuk menghitungnya.
Proses pengembangan plugin
- Saya mulai mengembangkan plugin dengan merujuk pada makalah penelitian truck factor.
- Rekan-rekan kerja khawatir plugin ini bisa digunakan manajer sebagai alat untuk dengan mudah menghitung siapa yang akan dipecat.
Upaya mereproduksi hasil
- Saya mencoba mereproduksi hasil menggunakan repositori GitHub yang disediakan oleh makalah penelitian tersebut.
- Data disediakan dalam format JSON, dan visualisasi dapat dilakukan melalui CSV.
- Instruksi di README tidak berfungsi dengan baik, sehingga butuh waktu untuk menyelesaikan masalahnya.
Menggunakan GNU Parallel
- Saya menggunakan GNU Parallel untuk meng-clone beberapa repositori GitHub secara bersamaan.
- Meskipun disetel untuk hanya menggunakan 8 proses, semua core tetap digunakan hingga maksimum.
Ruby Gems dan NixOS
- Saya mengalami kesulitan saat memasang plugin Linguist.
- Saya sedang mencari cara memasang Ruby Gems di NixOS.
Menghitung ulang hasil
- Saya mem-fork repositori asli dan mengompilasi source Java untuk menghitung ulang hasilnya.
- Contoh hasil untuk repositori kernel Linux: truck factor 12, coverage 49.98%.
Masalah dan riset tambahan
- Proses perhitungan tidak mempertimbangkan proses review.
- Perlu diselidiki mengapa truck factor kernel Linux sangat berbeda dibanding 10 tahun lalu.
- Saya berencana meninjau kutipan-kutipan dari makalah tersebut untuk menemukan metode perhitungan yang lebih baik.
Kesimpulan - pentingnya bus factor
- Dalam makalah tahun 2015, truck factor kernel Linux dinilai 90, tetapi sekarang dihitung menjadi 12.
- Ini tidak berarti perbaikan.
- Visualisasi tambahan dan detail lebih lanjut dapat dilihat di blog mclare.
1 komentar
Pendapat Hacker News
Salah satu fitur CodeScene adalah mengidentifikasi area dengan distribusi pengetahuan yang rendah di bagian kode yang sering berubah untuk menemukan area berisiko tinggi
Amazon menyediakan fitur yang memudahkan untuk memahami aktivitas tim dan faktor risiko melalui laporan tentang sistem kode
Alasan GNU Parallel menggunakan semua core adalah karena setiap
git clonemembuat beberapa threadindex-packpack.threadske 1 mungkin bisa membantu'bus factor' menunjukkan otonomi dan transparansi tim, dan dalam kondisi ideal, semua anggota tim seharusnya bisa memahami semuanya
Ada kesalahpahaman bahwa seiring peningkatan karier, pengembang harus lebih fokus pada review daripada menulis kode
Penulis sistem didefinisikan sebagai pengguna yang memberikan kontribusi penting pada file, dan jika penulis mencakup kurang dari 50% dari keseluruhan file, sistem dapat mengalami penundaan yang serius
Masalah PHK di startup bukanlah pertanyaan tentang 'siapa yang akan di-PHK', melainkan 'siapa tim yang bisa mengembangkan versi berikutnya dengan cepat'
Di sebagian perangkat lunak perusahaan, mungkin ada dasbor yang mengukur jumlah email yang dikirim dan diterima
CPAN sudah lama melacak bus factor; misalnya, bus factor Moose adalah 5
Ada juga istilah 'lottery factor' untuk menunjukkan apakah proyek dapat terus berjalan meskipun seseorang menang lotre lalu pergi