1 điểm bởi GN⁺ 2024-11-13 | 1 bình luận | Chia sẻ qua WhatsApp

Bus factor là gì?

  • Bus factor là chỉ số cho biết cần bao nhiêu thành viên trong dự án đột ngột biến mất thì dự án sẽ bị chậm lại.
  • Năm 2015, khi một người đóng góp cho codebase duy nhất tạo ra doanh thu của công ty bị sa thải, tác giả đã quyết định viết một plugin GitHub để tính chỉ số này.

Quá trình phát triển plugin

  • Tác giả bắt đầu phát triển plugin dựa trên bài nghiên cứu về truck factor.
  • Các đồng nghiệp lo ngại plugin này có thể bị dùng như một công cụ để quản lý dễ dàng tính xem nên sa thải ai.

Thử tái hiện kết quả

  • Tác giả đã thử tái hiện kết quả bằng cách dùng kho lưu trữ GitHub được cung cấp trong bài nghiên cứu.
  • Dữ liệu được cung cấp ở định dạng JSON và có thể trực quan hóa qua CSV.
  • Hướng dẫn trong README không hoạt động đúng, nên tác giả đã mất thời gian để xử lý vấn đề.

Sử dụng GNU Parallel

  • Tác giả dùng GNU Parallel để clone nhiều kho lưu trữ GitHub cùng lúc.
  • Dù chỉ cấu hình dùng 8 tiến trình, tất cả các lõi CPU vẫn bị sử dụng tối đa.

Ruby Gems và NixOS

  • Tác giả gặp khó khăn khi cài plugin Linguist.
  • Tác giả đang tìm cách cài Ruby Gems trên NixOS.

Tính lại kết quả

  • Tác giả fork kho lưu trữ gốc, biên dịch mã nguồn Java và tính lại kết quả.
  • Kết quả ví dụ cho kho lưu trữ Linux kernel: truck factor 12, coverage 49.98%.

Vấn đề và nghiên cứu thêm

  • Quá trình tính toán không xem xét quy trình review.
  • Cần điều tra vì sao truck factor của Linux kernel lại khác nhiều so với 10 năm trước.
  • Tác giả dự định xem lại các trích dẫn của bài báo để tìm phương pháp tính tốt hơn.

Kết luận - tầm quan trọng của bus factor

  • Trong bài báo năm 2015, truck factor của Linux kernel được đánh giá là 90, nhưng hiện nay được tính là 12.
  • Điều này không có nghĩa là đã có cải thiện.
  • Có thể xem thêm trực quan hóa và chi tiết trên blog của mclare.

1 bình luận

 
GN⁺ 2024-11-13
Ý kiến Hacker News
  • Một trong các tính năng của CodeScene là xác định những phần có mức phân bổ tri thức thấp trong các khu vực mã nguồn thay đổi thường xuyên để tìm ra các khu vực rủi ro cao

    • Nếu ai đó rời công ty, có thể dễ dàng kiểm tra phần mã mà người đó nắm rõ, giúp việc lập kế hoạch bàn giao thuận tiện hơn
    • Tôi không nghĩ nó có thể bị sử dụng với mục đích xấu; đây là một công cụ cung cấp khả năng quan sát
  • Amazon cung cấp tính năng giúp dễ dàng nắm được hoạt động và các yếu tố rủi ro của nhóm thông qua các báo cáo về hệ thống mã nguồn

    • 'Bus factor' là chỉ số cho biết nhóm sẽ bị ảnh hưởng đến mức nào nếu một thành viên cụ thể vắng mặt
    • Các lập trình viên có thể nghĩ rằng kiến thức về một hệ thống cụ thể đảm bảo sự ổn định nghề nghiệp của họ, nhưng điều này có thể được xem là một rủi ro kỹ thuật
  • Lý do GNU Parallel sử dụng toàn bộ các lõi là vì mỗi git clone tạo ra nhiều luồng index-pack

    • Đặt pack.threads thành 1 có thể giúp ích
  • 'Bus factor' thể hiện tính tự chủ và minh bạch của một nhóm, và trong trạng thái lý tưởng thì mọi thành viên trong nhóm đều nên có thể hiểu mọi thứ

    • Bus factor bằng 0 có nghĩa là các thành viên trong nhóm có thể thay thế vai trò của nhau, điều này phản ánh sự đơn giản của phần mềm
    • Đánh giá con người bằng email, commit, PR, số dòng mã, v.v. là một cách làm sai lầm
  • Có một ngộ nhận rằng khi thăng tiến trong sự nghiệp, lập trình viên nên tập trung vào review nhiều hơn là viết mã

    • Tôi không muốn biến những lập trình viên xuất sắc thành những người quản lý tầm thường
  • Tác giả của hệ thống được định nghĩa là người dùng có đóng góp quan trọng vào tệp; nếu tác giả bao phủ dưới 50% toàn bộ tệp, hệ thống có thể gặp chậm trễ nghiêm trọng

  • Vấn đề sa thải ở startup không phải là 'sa thải ai' mà là 'ai là đội có thể phát triển phiên bản tiếp theo thật nhanh'

  • Trong một số phần mềm doanh nghiệp, có thể tồn tại dashboard đo lường lượng email gửi và nhận

    • Làm như một sở thích những việc mà đồng nghiệp phản đối có thể bị xem là hành vi không phù hợp
  • CPAN từ lâu đã theo dõi bus factor; ví dụ, bus factor của Moose là 5

  • Dùng thuật ngữ 'lottery factor' để chỉ liệu dự án có thể tiếp tục hay không ngay cả khi ai đó trúng xổ số rồi rời đi