1 puntos por GN⁺ 2024-11-13 | 1 comentarios | Compartir por WhatsApp

¿Qué es el bus factor?

  • El bus factor es una métrica que indica cuántos miembros del equipo tendrían que desaparecer repentinamente para que el proyecto se retrase.
  • En 2015, cuando despidieron al colaborador de la única base de código que generaba ingresos en la empresa, decidí escribir un plugin de GitHub para calcularlo.

Proceso de desarrollo del plugin

  • Empecé a desarrollar el plugin tomando como referencia un artículo de investigación sobre truck factor.
  • Mis colegas estaban preocupados de que este plugin pudiera usarse como una herramienta para que los gerentes calcularan fácilmente a quién despedir.

Intento de reproducir los resultados

  • Intenté reproducir los resultados usando el repositorio de GitHub proporcionado por el artículo de investigación.
  • Los datos se ofrecen en formato JSON y la visualización puede hacerse mediante CSV.
  • Las instrucciones del README no funcionaban bien, así que me tomó tiempo resolver el problema.

Uso de GNU Parallel

  • Usé GNU Parallel para clonar varios repositorios de GitHub al mismo tiempo.
  • Aunque lo configuré para usar solo 8 procesos, todos los núcleos se usaron al máximo.

Ruby Gems y NixOS

  • Tuve dificultades para instalar el plugin Linguist.
  • Estoy buscando cómo instalar Ruby Gems en NixOS.

Recálculo de resultados

  • Hice un fork del repositorio original y recompilé el código fuente en Java para recalcular los resultados.
  • Resultado de ejemplo para el repositorio del kernel de Linux: truck factor 12, cobertura 49.98%.

Problemas e investigación adicional

  • El proceso de cálculo no toma en cuenta el proceso de revisión.
  • Hay que investigar por qué el truck factor del kernel de Linux es tan distinto al de hace 10 años.
  • Planeo revisar las citas del artículo para encontrar un mejor método de cálculo.

Conclusión: la importancia del bus factor

  • En el artículo de 2015, el truck factor del kernel de Linux se evaluó en 90, pero ahora se calcula en 12.
  • Esto no significa una mejora.
  • Se pueden ver visualizaciones adicionales y más detalles en el blog de mclare.

1 comentarios

 
GN⁺ 2024-11-13
Comentarios en Hacker News
  • Una de las funciones de CodeScene es identificar áreas de alto riesgo detectando zonas donde el código cambia con frecuencia pero la distribución del conocimiento es baja.

    • Si alguien deja la empresa, es fácil ver qué partes del código conocía esa persona, lo que facilita planear la transferencia de conocimiento.
    • No parece algo que pueda usarse con mala intención; es una herramienta que aporta visibilidad.
  • Amazon ofrece funciones que permiten entender fácilmente la actividad y los factores de riesgo de un equipo mediante reportes sobre sus sistemas de código.

    • El "factor autobús" es una métrica que indica cuánto se vería afectado un equipo si faltara un integrante específico.
    • Los desarrolladores pueden pensar que conocer en exclusiva un sistema les garantiza estabilidad laboral, pero eso también puede verse como un riesgo técnico.
  • La razón por la que GNU Parallel usa todos los núcleos es que cada git clone crea varios hilos de index-pack.

    • Configurar pack.threads en 1 puede ayudar.
  • El "factor autobús" refleja la autonomía y la transparencia de un equipo, y en un estado ideal todos los integrantes deberían poder entender todo.

    • Un factor autobús de 0 significa que los integrantes pueden sustituirse entre sí, lo que refleja la simplicidad del software.
    • Evaluar a las personas por correos, commits, PR o líneas de código es una forma equivocada de hacerlo.
  • Existe la idea errónea de que, a medida que avanza su carrera, un desarrollador debería enfocarse más en revisar que en escribir código.

    • No queremos convertir a grandes desarrolladores en gerentes mediocres.
  • El autor de un sistema se define como el usuario que hizo contribuciones importantes a un archivo, y si el autor cubre menos del 50% del archivo completo, el sistema puede sufrir retrasos graves.

  • En una startup, el problema de los despidos no es "a quién despedir", sino "quién es el equipo que puede desarrollar rápido la próxima versión".

  • En algunos programas empresariales puede haber paneles que miden el volumen de correos enviados y recibidos.

    • Trabajar por hobby en algo a lo que tus colegas se oponen puede parecer una mala conducta.
  • CPAN ha estado rastreando el factor autobús desde hace mucho tiempo; por ejemplo, Moose tiene un factor autobús de 5.

  • También se usa el término "factor lotería" para indicar si un proyecto puede seguir adelante aunque alguien gane la lotería y se vaya.