Alguns gestores ainda pensam que todos os problemas relacionados a seus projetos podem ser solucionados se contratarem mais pessoas. Chega ao ponto de esperarem que, ao dobrar o número de integrantes de um time, sua performance dobre também. No entanto, isso não é verdade.
Antes de explicarmos em detalhes o porquê disso não funcionar, precisamos introduzir uma lei da microeconomia: a Lei dos Rendimentos Decrescentes. Não se sinta desmotivado pela palavra “microeconomia”… Será rápido e indolor!
Lei dos Rendimentos Decrescentes
O aumento na produtividade de um processo não é diretamente proporcional ao aumento no número de pessoas do time em questão. Isso acontece pois existe um limite no número de maneiras de paralelizar um trabalho (algumas vezes, é impossível dividir ainda mais uma tarefa). Além disso, cada membro adicional do time pode prejudicar a organização do mesmo.
Quando um novo integrante se junta a um time, os seguintes resultados podem ser notados:
- O time pode realmente precisar de mais pessoas e, portanto, sua vazão de tarefas vai aumentar consideravelmente, fazendo com que seu investimento tenha retorno rapidamente – rendimentos crescentes;
- O time ainda consegue absorver uma nova pessoa, no entanto a produtividade gerada com essa entrada é baixa, resultando em um retorno lento de seu investimento — rendimentos decrescentes;
- O time está saturado e o novo membro do time faz com que as pessoas tenham que disputar espaço por tarefas e investir um tempo maior para coordenar o processo, o que causa diminuição na produtividade do time – rendimentos negativos.
O que você está dizendo, então, é que eu não posso fazer nada para melhorar a vazão do meu time?
Não! Existem métodos que te ajudam a contornar essa lei, e nós mostraremos como alcançar isso.
Ações de contorno
A curva de rendimento decrescente segue uma premissa: você fixa as variáveis do seu sistema e apenas varia a quantidade de pessoas. Portanto, caso mudemos as outras variáveis que outrora estavam fixas, podemos nos manter por mais tempo na área de rendimentos crescentes.
Tais mudanças não vão apenas tornar seu time mais preparado para receber novos integrantes, mas pode também melhorar sua vazão por si só, sem a necessidade de novas contratações.
Primeiramente, você deve observar se seu processo de desenvolvimento é saudável. Nós possuímos um ótimo artigo que sumariza como melhorar seu fluxo de trabalho: 5 Strategies to improve software development workflow.
Além disso, para que seu time seja o mais eficiente possível com a nova contratação, seu projeto precisa das seguintes características:
- Alta qualidade de código – caso a qualidade do código esteja ruim, a adição de um novo membro em nada mudará pois a curva de aprendizado para desenvolver novas funcionalidades será grande e o seu lead time só aumentará com o tempo devido à complexidade gerada pela baixa qualidade.
- Arquitetura de software – a arquitetura do software precisa possibilitar que a adição de um novo integrante melhore o throughput global.
- Organização do time – o time precisa estar corretamente organizado para que a adição de um novo membro não desestabilize o funcionamento do time.
- Documentação – O time precisa de uma boa documentação do software existente, para que novos membros consigam entender seu contexto mais rapidamente e, portanto, comecem a trabalhar mais eficientemente.
Para ilustrar toda essa ideia de retornos decrescentes e as possíveis mudanças em um sistema, nós apresentamos aqui um simples exemplo.
Exemplo
Para que seja possível ver mais facilmente o que significa a saturação de pessoas em um time, imagine que Carlos trabalhe em um carrinho de cachorros-quentes em uma rua movimentada. Ele cuida tanto da montagem do cachorro-quente, quanto da venda do mesmo. Por ter uma fila muito grande de pessoas esperando pelo seu hot-dog, ele vê que algumas vezes as pessoas saem da fila. Com isso em mente, ele decidiu contratar mais uma pessoa para cuidar da parte de montagem enquanto ele cuida das vendas.
Após a entrada do novo integrante, a venda de cachorros-quentes aumentou em 100% pois ninguém mais saia da fila (exemplo de rendimento crescente). Carlos, no entanto, acredita que mais um integrante ainda traria benefícios ao negócio, pois a nova pessoa poderia recolher o resto de comida que fica em torno do carrinho e organizar os ingredientes, para que o montador ficasse focado apenas na montagem. Assim, ele poderia eliminar a fila. Carlos então contratou mais uma pessoa e sua venda de hot-dogs aumenta em 25%, ao invés dos 100% conseguidos com o primeiro novo integrante (exemplo de rendimento decrescente).
Carlos ainda vê que o montador de hot-dogs gasta muito tempo customizando o final da montagem, pois algumas pessoas gostam de mostarda e ketchup e outras não. Pensou então em trazer ainda mais uma pessoa para o time, para cuidar apenas da customização dos produtos. No entanto, quando a pessoa chegou ele viu sua produtividade diminuir em 30%, e notou que o que acontecia era que o novo integrante tinha que dividir espaço com o montador e, portanto, atrapalhava mais do que ajudava no fluxo (exemplo de rendimento negativo).
No entanto, Carlos era um homem de visão, queria crescer seu negócio. Para acomodar as 4 pessoas e aumentar ainda mais o fluxo, ele decidiu abrir uma loja de cachorro-quente. Nessa loja agora, ele tem espaço para todos e ainda conseguiu colocar mais duas pessoas como atendentes. Carlos fatura agora 600% mais do que anteriormente (exemplo de mudanças no sistema para manter um rendimento crescente).
Conclusão
É necessário que, antes de tomarmos decisões sobre contratação ou deslocamento interno de pessoas, tenhamos consciência das condições do time em questão para que a chegada de um novo membro tenha a maior eficiência possível.
O que achou desse artigo? Você já conhecia a Lei de Retornos Decrescentes? Deixe seus comentários abaixo!
***
Este artigo foi publicado originalmente em: http://blog.plataformatec.com.br/2017/01/a-lei-dos-rendimentos-decrescentes-e-seu-impacto-em-projetos/