1 poin oleh GN⁺ 2024-11-13 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-11-13
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

    • Jika seseorang keluar dari perusahaan, kita bisa dengan mudah melihat kode yang hanya diketahui orang itu, sehingga memudahkan perencanaan serah terima
    • Saya tidak melihat ini bisa digunakan secara jahat; ini adalah alat yang memberikan visibilitas
  • Amazon menyediakan fitur yang memudahkan untuk memahami aktivitas tim dan faktor risiko melalui laporan tentang sistem kode

    • 'bus factor' adalah metrik yang menunjukkan seberapa besar tim akan terdampak jika anggota tertentu tidak hadir
    • Pengembang mungkin menganggap bahwa pengetahuan tentang sistem tertentu menjamin keamanan kerja mereka, tetapi ini bisa dipandang sebagai risiko teknis
  • Alasan GNU Parallel menggunakan semua core adalah karena setiap git clone membuat beberapa thread index-pack

    • Mengatur pack.threads ke 1 mungkin bisa membantu
  • 'bus factor' menunjukkan otonomi dan transparansi tim, dan dalam kondisi ideal, semua anggota tim seharusnya bisa memahami semuanya

    • bus factor 0 berarti anggota tim dapat saling menggantikan peran satu sama lain, yang mencerminkan kesederhanaan perangkat lunak
    • Menilai orang dari email, commit, PR, jumlah baris kode, dan sebagainya adalah cara yang keliru
  • Ada kesalahpahaman bahwa seiring peningkatan karier, pengembang harus lebih fokus pada review daripada menulis kode

    • Saya tidak ingin mengubah pengembang hebat menjadi manajer biasa-biasa saja
  • 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

    • Menjalankan hobi yang ditentang rekan kerja bisa terlihat sebagai perilaku yang tidak baik
  • 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