1P by neo 29일전 | favorite | 댓글 1개

버스 팩터란?

  • 버스 팩터는 프로젝트에서 몇 명의 팀원이 갑자기 사라져야 프로젝트가 지연되는지를 나타내는 지표임.
  • 2015년, 회사에서 유일하게 수익을 창출하는 코드베이스의 기여자가 해고되었을 때, 이를 계산하는 GitHub 플러그인을 작성하기로 결심함.

플러그인 개발 과정

  • 트럭 팩터 연구 논문을 참고하여 플러그인을 개발하기 시작함.
  • 동료들은 이 플러그인이 관리자가 쉽게 해고할 사람을 계산하는 도구로 사용될 수 있다고 우려함.

결과 재현 시도

  • 연구 논문에서 제공하는 GitHub 저장소를 사용하여 결과를 재현하려고 시도함.
  • 데이터는 JSON 형식으로 제공되며, 시각화는 CSV를 통해 가능함.
  • README의 지침이 제대로 작동하지 않아 문제를 해결하는 데 시간이 걸림.

GNU Parallel 사용

  • GNU Parallel을 사용하여 여러 GitHub 저장소를 동시에 클론함.
  • 8개의 프로세스만 사용하도록 설정했지만, 모든 코어가 최대치로 사용됨.

Ruby Gems와 NixOS

  • Linguist 플러그인을 설치하는 데 어려움을 겪음.
  • NixOS에서 Ruby Gems를 설치하는 방법을 찾고 있음.

결과 재계산

  • 원본 저장소를 포크하고, Java 소스를 컴파일하여 결과를 재계산함.
  • Linux 커널 저장소의 예시 결과: 트럭 팩터 12, 커버리지 49.98%.

문제점 및 추가 연구

  • 계산 과정에서 리뷰 프로세스를 고려하지 않음.
  • Linux 커널의 트럭 팩터가 10년 전과 크게 다른 이유를 조사할 필요가 있음.
  • 더 나은 계산 방법을 찾기 위해 논문의 인용문을 검토할 계획임.

결론 - 버스 팩터의 중요성

  • 2015년 논문에서는 Linux 커널의 트럭 팩터를 90으로 평가했으나, 현재는 12로 계산됨.
  • 이는 개선이 아님을 의미함.
  • 추가적인 시각화와 세부 사항은 mclare의 블로그에서 확인 가능함.
Hacker News 의견
  • CodeScene의 기능 중 하나는 코드 변경이 빈번한 영역에서 지식의 분포가 낮은 부분을 식별하여 위험이 높은 영역을 찾는 것임

    • 누군가 퇴사할 경우, 그 사람이 알고 있는 코드만 쉽게 확인할 수 있어 인수인계 계획이 용이함
    • 악의적으로 사용될 수 있다고 생각하지 않으며, 가시성을 제공하는 도구임
  • Amazon은 코드 시스템에 대한 보고서를 통해 팀의 활동과 위험 요소를 쉽게 파악할 수 있는 기능을 제공함

    • '버스 팩터'는 팀의 특정 구성원이 부재 시 팀이 얼마나 영향을 받을지를 나타내는 지표임
    • 개발자들이 특정 시스템에 대한 지식이 직업 안정성을 보장한다고 생각할 수 있지만, 이는 기술적 위험으로 볼 수 있음
  • GNU Parallel이 모든 코어를 사용하는 이유는 각 git clone이 여러 index-pack 스레드를 생성하기 때문임

    • pack.threads를 1로 설정하면 도움이 될 수 있음
  • '버스 팩터'는 팀의 자율성과 투명성을 나타내며, 이상적인 상태에서는 모든 팀원이 모든 것을 이해할 수 있어야 함

    • 0 버스 팩터는 팀원이 서로의 역할을 대체할 수 있음을 의미하며, 이는 소프트웨어의 단순성을 반영함
    • 이메일, 커밋, PR, 코드 라인 수 등으로 사람을 평가하는 것은 잘못된 방식임
  • 경력 상승에 따라 개발자는 코드 작성보다는 리뷰에 더 집중해야 한다는 오해가 있음

    • 훌륭한 개발자를 평범한 관리자로 바꾸고 싶지 않음
  • 시스템의 저자는 파일에 중요한 기여를 한 사용자로 정의되며, 저자가 전체 파일의 50% 미만을 커버할 경우 시스템은 심각한 지연을 겪을 수 있음

  • 스타트업의 해고 문제는 '누구를 해고할 것인가'가 아니라 '다음 버전을 빠르게 개발할 팀은 누구인가'에 대한 질문임

  • 일부 기업 소프트웨어에서는 이메일 송수신량을 측정하는 대시보드가 존재할 수 있음

    • 동료들이 반대하는 일을 취미로 진행하는 것은 좋지 않은 행동으로 보일 수 있음
  • CPAN은 오랫동안 버스 팩터를 추적해왔으며, 예를 들어 Moose의 버스 팩터는 5임

  • '복권 팩터'라는 용어를 사용하여, 누군가 복권에 당첨되어 떠나도 프로젝트가 계속될 수 있는지를 나타냄