O que é fator ônibus?
- O fator ônibus é uma métrica que indica quantos membros da equipe precisariam desaparecer repentinamente para que o projeto sofresse atrasos.
- Em 2015, quando o colaborador da única base de código que gerava receita na empresa foi demitido, decidi escrever um plugin do GitHub para calcular isso.
Processo de desenvolvimento do plugin
- Comecei a desenvolver o plugin com base em um artigo de pesquisa sobre truck factor.
- Meus colegas se preocuparam com a possibilidade de esse plugin ser usado como uma ferramenta para gestores calcularem facilmente quem demitir.
Tentativa de reproduzir os resultados
- Tentei reproduzir os resultados usando os repositórios do GitHub fornecidos no artigo de pesquisa.
- Os dados são fornecidos em formato JSON, e a visualização é possível via CSV.
- Como as instruções do README não funcionavam corretamente, levei algum tempo para resolver o problema.
Uso do GNU Parallel
- Usei o GNU Parallel para clonar vários repositórios do GitHub ao mesmo tempo.
- Configurei para usar apenas 8 processos, mas todos os núcleos foram utilizados no máximo.
Ruby Gems e NixOS
- Tive dificuldades para instalar o plugin Linguist.
- Estou procurando uma forma de instalar Ruby Gems no NixOS.
Recálculo dos resultados
- Fiz um fork do repositório original e recompilei o código-fonte Java para recalcular os resultados.
- Exemplo de resultado para o repositório do kernel Linux: truck factor 12, cobertura de 49,98%.
Problemas e pesquisa adicional
- O processo de cálculo não leva em conta o processo de revisão.
- É necessário investigar por que o truck factor do kernel Linux é tão diferente de 10 anos atrás.
- Pretendo revisar as citações do artigo para encontrar um método de cálculo melhor.
Conclusão - a importância do fator ônibus
- No artigo de 2015, o truck factor do kernel Linux foi estimado em 90, mas agora foi calculado em 12.
- Isso não significa uma melhora.
- Visualizações adicionais e mais detalhes podem ser encontrados no blog do mclare.
1 comentários
Comentários no Hacker News
Um dos recursos do CodeScene é identificar áreas de alto risco ao detectar partes com baixa distribuição de conhecimento em regiões do código que mudam com frequência
A Amazon oferece, por meio de relatórios sobre sistemas de código, recursos que permitem entender com facilidade a atividade e os fatores de risco de uma equipe
O motivo de o GNU Parallel usar todos os núcleos é que cada
git clonecria várias threads deindex-packpack.threadscomo 1 pode ajudarO "fator ônibus" representa a autonomia e a transparência da equipe, e, em um estado ideal, todos os membros deveriam conseguir entender tudo
Existe o equívoco de que, conforme a carreira avança, o desenvolvedor deve focar mais em revisão do que em escrever código
O autor de um sistema é definido como o usuário que fez contribuições importantes em um arquivo, e, se os autores cobrem menos de 50% do arquivo inteiro, o sistema pode sofrer atrasos graves
O problema das demissões em startups não é "quem demitir", mas "quem é a equipe que vai desenvolver rapidamente a próxima versão"
Em alguns softwares corporativos, pode haver dashboards que medem o volume de e-mails enviados e recebidos
O CPAN acompanha o fator ônibus há muito tempo; por exemplo, o fator ônibus do Moose é 5
Usa-se o termo "fator loteria" para indicar se o projeto conseguiria continuar mesmo que alguém ganhasse na loteria e fosse embora