¿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
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.
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.
La razón por la que GNU Parallel usa todos los núcleos es que cada
git clonecrea varios hilos deindex-pack.pack.threadsen 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.
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.
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.
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.