Sou o gerente de uma equipe de 11 desenvolvedores de software que cuidam dos sites / aplicativos da web da minha empresa, executando até 4 projetos simultâneos, além de suporte diário a qualquer momento. Nos 11 desenvolvedores, há uma mistura de habilidades técnicas, cargos e experiência, embora a estrutura da equipe seja plana, com todos os 11 desenvolvedores se reportando diretamente a mim.
Toda a equipe que tem um único gerente está começando a provar que não está muito bem dimensionada. Estou começando a me espalhar muito pouco, então quero reduzir meu número de subordinados diretos. Todas as maneiras pelas quais posso pensar em fazer isso têm desvantagens significativas:
- Faça com que os desenvolvedores juniores se reportem aos seniores. Isso reduz o tempo gasto no desenvolvimento pelos melhores técnicos.
- Divida a equipe por produto de software, por exemplo, os desenvolvedores 1-6 trabalham na intranet e 7-11 trabalham em sites externos, com cada seção tendo um novo líder de equipe (possivelmente uma nova descrição de cargo com mais responsabilidade de gerenciamento / mentoria / treinamento do que os atuais desenvolvedores seniores ) Isso adiciona silos artificiais e pode dificultar que um "desenvolvedor da intranet" trabalhe em um site externo, se eu quiser.
- Mantenha a estrutura plana e adicione suporte gerencial na forma de gerentes de projeto / administradores de equipe apenas para aliviar a pressão. Isso não resolve o problema, pois a equipe não pode continuar crescendo assim para sempre.
Existe uma maneira padrão de resolver esse problema que estou perdendo?
Se não, como outros resolveram esse problema?
fonte
Respostas:
Algumas reflexões rápidas:
Além disso, sempre vale a pena ir e (re) ler o Manifesto Ágil , e especialmente os doze princípios .
fonte
Essa estrutura irá principalmente
depend on project specifications
Idealmente, deve haver três juniores por desenvolvedor sênior em uma equipe. Consequentemente, existem 2-3 desenvolvedores seniores por líder de ensino.
Assim, apenas os líderes técnicos reportarão à PM o status do progresso do projeto. A estrutura descrita ainda pressupõe que, para problemas não técnicos (férias, folgas, conflitos etc.), todos possam ter acesso ao PM.
Uma das equipes de desenvolvimento de software relativamente bem-sucedidas das quais eu fazia parte era algo assim, por projeto:
Um gerente de desenvolvimento de software / desenvolvedor sênior / mentor, para quem todos se reportaram diretamente.
Funcionou perfeitamente bem, e eu amei essa organização. Por outro lado, eu era o gerente de desenvolvimento de software e a estrutura organizacional da equipe estava evoluindo.
fonte
Considere seguir o padrão da Organização de Funcionários Funcionais . Isso indica sua segunda opção de dividir a equipe por produto de software.
Para citar o artigo no seu contexto:
A estrutura real de gestão / RH é irrelevante além disso.
fonte
Na verdade não. Depende da sua equipe, você, o que você precisa fazer e que recursos a empresa disponibilizará para você.
Pessoalmente, o melhor tipo de opção é dividir o gerenciamento técnico do gerenciamento administrativo. É raro que as pessoas sejam boas em ambas, e raramente tendem a interagir.
Uma pessoa lida com os aspectos técnicos. O que precisa ser feito, quem vai fazer isso, como as coisas precisam se alinhar. O outro lida com aspectos administrativos. Revisões, reuniões de orçamento, planejamento de produtos etc. Eles trabalham juntos para comunicar idéias de um lado para o outro e fornecer uma frente unida.
Como isso é dividido pode seguir algumas maneiras diferentes. O mais comum é ter o gerente de engenharia no lado administrativo e um arquiteto no lado técnico. Eles são colegas e se reportam a um diretor / vice-presidente.
Outro trabalho que vi foi o de fazer com que o gerente de engenharia seja a pessoa administrativa e, em seguida, o (s) líder (es) da equipe atuam como pessoa técnica. Isso é mais complicado e requer que as pessoas certas ajam como (principalmente) colegas, mesmo que os relatórios sejam hierárquicos.
Para o seu cenário específico, eu recomendaria ter 2-3 equipes e ter líderes técnicos para fazer os aspectos técnicos e você se concentrar no administrativo. Sim, isso reduz o tempo dos leads que realmente escrevem o código, mas eles devem (se estão fazendo um bom trabalho) recuperar esse tempo, tornando os desenvolvedores mais jovens mais eficientes / produtivos. Isso lhes proporciona mais motivação e um senso de realização com a promoção real também. E, na prática, é mais fácil vender para a gerência do que abrir uma nova posição.
fonte