Minha equipe de 4 desenvolvedores experientes trabalha em um aplicativo Windows grande e modular (aproximadamente 200 KLoC). Concentrei-me na base de código principal desde o início do projeto (há 3 anos) e gradualmente mudei para uma posição de desenvolvedor semi-líder, embora eu não seja o gerente da equipe.
Nossa iteração atual é uma atualização de interface do usuário de alta prioridade solicitada pelo gerenciamento superior, envolvendo cerca de 15 alterações na base de código principal. Quando solicitado pelo gerente, calculei que cada uma das 15 alterações levaria menos de quatro horas para eu concluir , totalizando menos de 7 dias úteis. Eu então me ofereci para realizar o trabalho. Em vez disso, o gerente decidiu dividir uniformemente todas as 15 tarefas para todos os quatro desenvolvedores.
Nos três dias desde que começamos o trabalho, observei duas coisas:
Os outros membros inexperientes da equipe concluíram cerca de 1 ou menos tarefas cada.
Lei de Brook em ação: gastei cerca de metade do meu tempo prestando assistência (tentando treiná-los no uso dos componentes). Como resultado, eu terminei apenas duas tarefas, em vez das 5 ou 6 esperadas.
Entrei em contato com meu gerente com minha preocupação de que estávamos atrasados e, novamente, sugeri que eu concluísse as tarefas restantes. Meu pedido foi gentilmente recusado e os motivos declarados para dividir a carga uniformemente foram duplos:
- Limite o fator caminhão / ônibus - intensificando agora outros desenvolvedores com essas habilidades, para que, no futuro, qualquer trabalho possa ser dado a alguém, não apenas a mim.
- Para eliminar um "gargalo" (eu) e concluir o trabalho mais rapidamente.
Para ser claro, não tenho problemas com: a) investir tempo ensinando, b) pessoas tocando meu código ou c) segurança no emprego. Na verdade, sugiro regularmente ao líder da equipe que eu treine outros desenvolvedores em certos aspectos da base de código principal para reduzir o risco.
Nesta iteração, também temos uma grande coleção de correções de bugs de alta prioridade direcionadas, portanto parece que mais progresso poderia ser feito se a carga de trabalho fosse redistribuída.
No Mítico Homem-Mês, Brooks sugere uma " Equipe Cirúrgica ", onde cada equipe é composta por uma liderança + uma sub-liderança (o gerente e eu) e alguns papéis menores. Sinto como se estivéssemos naturalmente entrando nessa organização, mas meu gerente está trabalhando contra ela. Eu sinto que o fator de barramento já foi resolvido (o gerente é versado no código principal) e que o gargalo não existe (envolver mais desenvolvedores não tornará o trabalho mais rápido). Penso que, a esse respeito, uma equipe cirúrgica é uma coisa boa.
Esses são meus sentimentos, mas não sou um gerente experiente, nem tivemos que lidar com o fator ônibus (bater na madeira). Brooks estava certo? Você já trabalhou em uma "equipe cirúrgica" onde o fator de ônibus entrou em jogo? Existem técnicas melhores para gerenciar a experiência em distribuição?
Perguntas semelhantes: