Retornos decrescentes para desenvolvedores adicionais

10

Existe um termo para descrever o momento em que adicionar mais desenvolvedores a um projeto de software fornecerá retornos decrescentes?

Percebo que, em um nível alto, é mais complicado que apenas um número de desenvolvedores em que o projeto esteja em capacidade produtiva (ex / estado do projeto, qualidade do desenvolvedor adicionado), mas estou tentando criar uma maneira de relacionar isso ao gerenciamento não técnico por meio da repetição. Estou basicamente procurando por um termo que invoque uma imagem mental forte como "velocidade terminal", exceto a Lei de Brook .

smp7d
fonte
2
Eu acredito que esse ponto é chamado "agora". Sério, você deve mostrar a eles um gráfico, plotando o momento em que um / cinco / dez novos desenvolvedores são adicionados e o efeito que isso tem no cronograma do projeto (considerando a perda de produtividade devido à orientação de membros existentes, erros de novos membros e retrabalho etc ... )
Enviado
14
"Nove mulheres dando à luz a um bebê em um mês" é uma analogia comum usada para explicar a questão dos recursos versus cronograma para o gerenciamento.
dasblinkenlight
2
@dasblinkenlight - "Mas e se você tiver mulheres trabalhando em turnos?" (resposta típica de gerenciamento não técnico).
jfrankcarr
6
but senior management tends to view it as aggressively negativeA agenda da alta administração no seu caso provavelmente é dupla: diminuir os dados de conclusão do projeto de qualquer maneira possível e controlar os desenvolvedores. Qualquer visão que contrarie suas noções preconcebidas será vista como negativa e depende de quão agressivamente você tentar "convencê-las", caso contrário, apenas o rotulará de "não um jogador de equipe". A gerência fala por alguém que não pode ser controlado.
maple_shaft
11
Você (eles?) Está preocupado com - cronograma, risco ou US $ ou uma combinação desses. Descubra com o que eles estão mais preocupados e explique por que mais desenvolvedores não resolverão esse problema (e, para ser levado a sério, proponha uma solução alternativa). Muitas vezes, é mais sutil do que dinheiro puro ou horários.
mattnz

Respostas:

7

Sua pergunta inclui a resposta: o ponto de retornos decrescentes. Este é o ponto em que adicionar mais recursos custa mais do que o efeito produtivo desses recursos. Esse é um conceito econômico básico, de modo que sua gerência deve saber isso de cor ...

miraculixx
fonte
3
O que você descreveu é o que os economistas chamam de ponto de retorno negativo - onde a adição de recursos o deixa em pior situação. O ponto de retornos decrescentes é que a adição de mais recursos ainda aumenta a produção, mas em uma quantidade menor. Portanto, adicionar recursos deixa você um pouco melhor, mas menos do que você poderia esperar.
MarkJ
@MarkJ Bom ponto. Acho que não estou necessariamente procurando por retornos decrescentes ou negativos por regra. Estou apenas procurando o ponto em que o gerente de desenvolvimento / projeto líder diria não a mais recursos. Infelizmente, isso nem sempre é cortado e seco.
smp7d
6

"A adição de mão de obra a um projeto de software atrasado o torna mais tarde. Um homem-mês é um conceito de unidade de trabalho proporcional ao número de pessoas que trabalham multiplicadas pelo tempo em que trabalham; a lei de Brook diz que essa relação é um mito, e é, portanto, a peça central do livro. "- Fonte: Wiki-Mythical_Man_Month .

NoChance
fonte
11
"Meu amigo de golfe, que também administra uma empresa de consultoria em TI, diz que tem dois programadores 'black belt' que estão disponíveis no momento. Ambos têm mestrado em ciência da computação. Você deve poder trazê-los sem nenhum problema , certo? Talvez você aprenda algo sobre como agendar melhor seu tempo. "
jfrankcarr
11
@kevincline - "Vejo que você não faz parte do time. Estou transferindo você para a manutenção do nosso aplicativo VB6 de 14 anos. Aqui está uma cópia de Quem mexeu no meu queijo? para você ler".
jfrankcarr
3
"Vejo que você não faz parte do time.": Também tive esse comentário. Minha resposta foi uma comparação com o futebol: um bom time não tenta se espremer em 5 metros quadrados, mas tenta ocupar todo o campo para que cada jogador possa ser mais eficaz; e os jogadores geralmente jogam a bola para frente e para trás, conforme necessário. Trabalhar em equipe significa que os membros da equipe coordenam suas atividades, mas trabalham em áreas independentes e não sobrepostas do projeto. Se isso for possível, você pode adicionar mais desenvolvedores e aumentar a produtividade.
Giorgio
11
@ Kevin Cline: Talvez essa seja a razão pela qual eventualmente se torne inútil adicionar novos desenvolvedores a uma equipe. Provavelmente, deve-se parar de adicionar novos desenvolvedores se não for possível encontrar uma área que seja bastante independente do restante do projeto.
Giorgio
2
A atitude da equipe, o tamanho do projeto, como boa a situação é, a experiência dos novos membros, o estado atual de requisitos, etc. são todos fatores importantes a considerar aqui ...
NoChance
4

Condenado a repetir

O pobre Fred Brooks é como Cassandra, da Ilíada de Homero . Se você leu o livro de onde o filme Troy veio, foi ela quem não ligou para o cavalo (Trojan). Ela prevê o futuro com precisão, mas ninguém acredita nela até que a previsão tenha acontecido e eles tenham visto por si mesmos.

Não lute contra gerenciamento / resistência passiva ou contratação cuidadosa?

Meu conselho é que provavelmente não seja um bom dia para morrer e que, se seu gerente quiser que você contrate mais funcionários, faça-o. Sugerir alguns parâmetros, como contratar alguém com experiência específica e o uso da técnica de triagem rápida, triplicará o tempo de pesquisa e talvez você atinja seu prazo antes que o disruptor chegue.

Minimizar o tempo que você gasta em candidatos improváveis ​​economizará muito tempo. Por exemplo, qualquer currículo sem os três principais requisitos no primeiro 1/3 do currículo é lançado, os candidatos devem passar por uma tela de telefone de 30 minutos antes de qualquer entrevista no local, ignorar os recrutadores que não fazem a pré-seleção para suas necessidades. Outras técnicas são abundantes, verifique se tudo o que você usa é eficiente e eficaz.

Controlando o ônus da integração de novos contratados

Se você efetua a contratação antes do prazo final e precisa lidar com um novo funcionário, planeje um orçamento de pessoas que não estão no caminho crítico para se envolverem no treinamento. É útil que os membros de sua equipe vejam um, façam um, mostrem um. Se você tiver um membro da equipe de baixa a média experiência, ele fortalecerá a compreensão dos processos, conjunto de ferramentas e base de código para orientar um novo contratado nessas áreas.

Felizmente, você tem alguma documentação, portanto, designar a nova pessoa para ler a documentação que os ajudará a acelerar é um bom investimento a curto e longo prazo. Eles devem ser introduzidos em seus processos gradualmente, e seu trabalho deve ser revisado por pessoas que possam impedi-los de conduzir o projeto nas rochas com mudanças ousadas, mas prejudiciais.

Melhores e piores atribuições para novos contratados

Se você tiver um projeto separado ou algum desenvolvimento de tecnologia que eles possam fazer para se preparar para seu uso em um projeto futuro, isso também poderá ser um grande benefício. Aprender seu conjunto de ferramentas específico, fazer suas próprias construções locais, testes de unidade, testes de usabilidade, documentação e participação em revisões são ótimas tarefas candidatas para novos contratados. Uma nova contratação pode ter uma perspectiva nova e pode fornecer comentários críticos valiosos sobre coisas com as quais sua equipe aprendeu a conviver e que não pode mais ver.

Os usos menos benéficos para a nova equipe podem incluir reuniões da equipe com gerentes e partes interessadas não desenvolvedores, estimativa, levantamento de requisitos e gerenciamento (a menos que sejam especialistas após trabalharem em um concorrente), patentes e entrevistar novos candidatos ou ajudar na equipe.

Mantendo a harmonia na equipe, estabelecendo expectativas futuras

As novas prioridades de contratação ainda entram em jogo. Se você tem uma equipe que passou pela formação, invasão, normatização e desempenho da evolução, deve dar ao novo contratado suas expectativas em relação ao desempenho e responsabilidades planejadas dentro da equipe. Você não deve fazer com que o trabalho do novo contratado pareça menos exigente do que outras funções na equipe. Se sua equipe está pressionando agressivamente em direção aos prazos, o novo contratado deve ter maneiras de demonstrar que está pressionando agressivamente em direção à integração.

DesenvolvedorDon
fonte
1

Não conheço um termo padrão para o ponto de diminuir os retornos na mão de obra; como o objetivo é convencer as pessoas, tente transformar uma frase:

  • "limites de decomposição" podem ser especialmente relevantes para um projeto de tamanho médio.
  • "barreira aérea de comunicação" evoca a clássica lei de Brook para grandes projetos.
  • "os requisitos de iteração do design" como uma maneira elegante de dizer "se você quer algo que não seja uma porcaria, levará algum tempo para fazê-lo no meio do caminho certo".
tempestade
fonte
0

Um prazo razoavelmente próximo seria o "intervalo de elasticidade ": a analogia de atingir a região de inelasticidade do preço, ao reduzir ainda mais o preço não aumenta suas vendas, deve soar um sinal à gerência.

dasblinkenlight
fonte