Gestão do conhecimento eficiente é fundamental para empresas onde desenvolvimento de software é atividade crítica. O ideal é a formação do maior número possível de desenvolvedores competentes para gerar o máximo de valor agregado.
Uma boa forma de apurar a eficiência da gestão de conhecimento, em times de desenvolvimento, é apurar a distribuição do trabalho, através de indicadores táticos, a partir dos sistemas de versionamento de código. Em ambientes sadios, haverá uma distribuição quase equânime de mudanças por colaborador. Infelizmente, esse cenário não é comum.
Parece que princípio de Pareto tem se demonstrado válido, também, na distribuição de contribuições no desenvolvimento de software. Segundo estudo recente, em 78% dos projetos, cerca de [tweet]80% das alterações nas bases de código são feitas por apenas 20% dos membros ativos dos times de desenvolvimento.[/tweet] Ou seja, a maioria dos projetos, hoje em dia, são “guiados por heróis”.
Uma causa comum para esse fenômeno é a aplicação recorrente do conceito Surgical Team apresentado por Frederick P. Brooks no clássico The Mythical Man-Month. Entretanto, é importante destacar que, atualmente, essa é considerada uma péssima ideia. Afinal, vivemos em uma realidade muito diferente daquela vivida por Brooks.
Surgical Team
Assim como uma equipe médica é liderada, durante uma cirurgia, por um especialista que realiza o trabalho mais crítico enquanto instrui a equipe, parece razoável que um “bom” programador desenvolva componentes críticos do sistema enquanto o restante da equipe fornece o que ele necessita no momento certo.
[tweet]Centralização por especialização, especialmente no desenvolvimento de software, aumenta a dependência e corrói resultados.[/tweet] Prazos cada vez mais apertados e cargas de trabalho cada vez maiores, comuns em projetos “guiados por heróis”, impactam negativamente a qualidade das entregas.
[tweet]Quanto maior for a expectativa de vida de um software, maior é a importância de que não exista acoplamento entre código e desenvolvedores.[/tweet] O problema, em ambientes corporativos, é ainda mais grave quando, no desenvolvimento de sistemas distribuídos, como os baseados em microsserviços, são constatados altos índices de centralidade em artefatos “guiados por heróis”.
Veja também
Sempre que um projeto de software é “guiado por herói”, existe a demanda para que a organização faça esforços adicionais para manter esse “herói” no time. Essa prática, infelizmente, conduz a uma relação potencialmente desequilibrada. Não são raros os casos onde a gestão fica “refém” de profissionais que, conscientes da sua relevância, passam a agir de maneira negativa para a equipe.
Em termos práticos, nossa recomendação é que se verifique, nas bases de código, a relação entre mudanças por membro ativo do time. O ideal é estabelecer e acompanhar um indicador tático, bem fácil de apurar, indicando a condição atual. Entendemos que essa medida orienta para a formação de times mais coesos e com maior senso de propriedade.
Vivemos um cenário parecidíssimo senão identico ao abordado no texto.
Talvez o quadro atual, digo em relação a pandemia de 2020 isso ficou muito mais evidente.
Observo que a distribuição das entregas esteja concentrada demasidamente, pode ser a hora de rever se estamos ainda aplicando o conceito Surgical Team.
Gestão do conhecimento é um pouco complicado, ainda mais pensando em meio corporativo. Não acredito que tentar gerenciar isso, resolva este problema.
Solução pra isso me parece um pouco óbvio, times ágeis.
Times ágeis é mais fácil?
Em tempo, agilidade, bem praticada, é gestão do conhecimento.
Talvez, esse desenvolvedor que está conseguindo entregar mais devesse ser alocado para passar mais tempo guiando os outros desenvolvedores e sendo responsável por garantir que os outros também estejam entregando. Nem que para isso ele precise parar de entregar e ficar apenas auxiliando. O projeto vai reduzir a velocidade num curto prazo, mas chegará muito mais longe a longo prazo.
Acredito que sim.
Interessante, realmente. Compreendo o ponto.
Alguém que detém sozinho todas as respostas – enquanto os seus pares não -, mesmo bem intencionado, pode produzir um ambiente disfuncional, porque desequilibrado.
O mundo não é homogêneo. Logo, gerir o conhecimento se faz importante.
Compreendo.