Como contratar um desenvolvedor 10x

Publicado: Última actualização:
Como contratar um desenvolvedor 10x melhor artigo e recursos de RH de 2018

Milhões de teclas foram gastas na internet sobre o tema do programador 10x. Há uma série de definições diferentes e muitas questões sobre se é um fenómeno real. Mas o mito é bom demais para a maioria das pessoas desistirem. Existem realmente desenvolvedores por aí que podem amplificar seus resultados dez vezes?

A verdade é que há desenvolvedores lá fora que são 10x, mas não são os que você pensa. Eles não são as estrelas do rock de lobo solitário, com a reputação de fazer por conta própria em poucas horas o que a maioria das equipes levaria uma semana para fazer. A verdade é ainda mais fascinante e pode ser a chave para multiplicar a eficácia da sua equipa.

O que é um programador ou desenvolvedor 10x?

Há uma série de definições para um desenvolvedor 10x. Aqui estão algumas que encontramos.

  • Um desenvolvedor que pode usar as ferramentas e recursos disponíveis para alcançar 10 vezes o desempenho dos piores desenvolvedores. Fonte: Kenny Bergquist
  • Um desenvolvedor que pode fazer coisas que uma equipe de 10 desenvolvedores menores não seria capaz de fazer. Fonte: Yevgeniy Brikman
  • Um desenvolvedor que é capaz de desbloquear 10x de produtividade em sua equipe. Fonte: Sylvain Kalache via Stack Overflow

Mas será que alguma das verdadeiras definições de um programador de software 10x? Isso vem de alguma combinação desses três traços? Se você está contratando, sua primeira prioridade é ampliar os resultados da sua empresa. Isso vem de um desenvolvedor hipereficiente ou de um desenvolvedor de equipe? Para descobrir quais são os mais importantes, é útil voltar ao ponto de partida da idéia do programador 10x e mais tarde do desenvolvedor.

10x atributos do desenvolvedor

Fonte: O Programador de Produção Negativa Líquida

As origens do desenvolvedor 10x

A idéia do desenvolvedor do software 10x apareceu pela primeira vez em um estudo intitulado "Estudos Experimentais Exploratórios Comparando Desempenho de Programação Online e Offline"a partir de 1968. Os autores do estudo, Sackman, Erikson e Grant não se propuseram realmente a testar se o desenvolvedor de software 10x era real. Ao invés disso, eles queriam testar as diferenças de eficiência entre programadores online e offline (online significa em um computador enquanto offline significa em papel), uma distinção com a qual não nos importamos mais, uma vez que praticamente toda a programação é feita online.

Mas a interessante conclusão deste estudo foi que existe uma grande variação no desempenho de programadores aparentemente idênticos, sugerindo que alguns poderiam ser muito mais eficientes do que outros. Bem, algumas das diferenças foram menos dramáticas quando se considerou algumas das falhas do estudo. Com essas falhas levadas em conta, apoiantes como Steve McConnell da Construx Software ainda afirmam que o estudo revela uma diferença de até 10x no desempenho de programadores aparentemente idênticos.

Desde que este estudo foi lançado, variações do efeito 10x têm aparecido em outras pesquisas.

  • Barry Boehm e outros pesquisadores concluíram que o desenvolvimento de um programa com uma equipe no percentil 15 de programadores classificados por habilidade normalmente requer cerca de 3,5 vezes mais pessoal-mês do que o desenvolvimento de um programa com uma equipe no percentil 90 (Boehm et al 2000). Fonte: Boehm et al 2000: Construx
  • Joel Spolsky também observa o efeito nos estudantes de informática de Yale. Vale a pena ler sua explicação sobre os 10x fenômenos em Atingir as notas altas.

Um desenvolvedor de 10x leva muito menos tempo para completar tarefas do que os seus pares.

Em um grupo de estudantes de informática igualmente experientes, o tempo gasto em um projeto não está correlacionado com a qualidade do código. Fonte: Joel Spolsky

Estes são dificilmente os únicos estudos que observaram um efeito de ampliação com G. Gordon Schulmeyer,

Os pesquisadores encontraram entre um mínimo de 5 para 1 e um máximo de 100 para 1 no desempenho do programador. Isto significa que os programadores do mesmo nível, com antecedentes semelhantes e salários comparáveis, podem levar de 1 a 100 semanas para completar as mesmas tarefas.

FonteO Programador de Produção Negativa Líquida

Mas, como aponta Gordon, esses estudos não consideram o efeito negativo que esses desenvolvedores podem ter sobre a produtividade. Um desenvolvedor pode desmascarar um programa em um décimo do tempo como outro, mas pode ser tudo código spaghetti. Se seus colegas levam 10 vezes mais tempo para desvendá-lo, a contribuição do desenvolvedor é efetivamente 1x.

Se você acoplar código spaghetti com um desenvolvedor que prejudique a coesão da equipe, eles podem virar uma contribuição líquida negativa para a produção de uma empresa. Com isso em mente, você precisa fazer a si mesmo uma grande pergunta antes de tentar adicionar um desenvolvedor de software 10x à sua empresa.

Que características você deve procurar em um desenvolvedor de software 10x?

Que características você deve procurar em um desenvolvedor 10x?Fonte: Evgeni Tcherkasski em Desplash

1. Eles sabem o que fazer.

Este deve ser um primeiro passo óbvio, mas um desenvolvedor de software 10x sabe como resolver a maioria dos problemas imediatamente. No mínimo, eles devem saber o que precisam fazer e se não souberem, as perguntas certas a fazer. Fonte: Empilhar

Quer as suas capacidades venham de uma experiência ou conhecimento superior, eles podem tomar as decisões certas sobre como proceder com uma tarefa de desenvolvimento de software. Como diz Chris Stainthorpe, o co-fundador técnico da CustomerSure:

Os codificadores '10x' com que trabalhei têm o dom de fazer escolhas tecnológicas 'chatas', mostrando empatia para com as necessidades do usuário, e uma visão em grande plano do ciclo de vida do produto de software.

Fonte: Excesso de pilha

Alguém que não é 10x simplesmente não consegue preencher este papel. Como Joel Spolsky o descreve,

Não é apenas uma questão de "10 vezes mais produtivo". É que o desenvolvedor "produtivo médio" nunca atinge as notas altas que fazem um ótimo software.

Fonte: Joel Spolsky

O que você vai descobrir é que os melhores programadores têm muito boa experiência com habilidades de combinação de padrões e também podem fazer depuração muito complexa que um programador menor simplesmente não seria capaz de fazer. Fonte:

2. Eles entendem porque o devem fazer.

Você tem que ter uma paixão pelo problema e compreendê-lo por dentro e por fora para ser realmente um desenvolvedor 10x.

Fonte: Empilhar

Se você entender o problema por dentro e por fora, você será capaz de tomar as decisões certas. Afinal, um desenvolvedor 10x não é apenas 10x porque eles podem trabalhar rapidamente, eles são 10x porque eles não perdem tempo descendo a avenida errada. Eles normalmente têm uma compreensão da máquina em que estão trabalhando (o sistema operacional e outros componentes) e têm um bom conhecimento teórico das tecnologias que estão lidando com a Source:

3. Eles sabem quando devem fazer cada coisa.

Um desenvolvedor de software 10x entende onde tempo e recursos devem ser gastos para obter o melhor resultado possível. Um verdadeiro programador de software 10x não vai simplesmente começar a codificar imediatamente e cuspir o que quer que eles inventem. Em vez disso, você vai encontrá-los decidindo como melhor gastar seu tempo. Fonte: Empilhar

A compreensão total da arquitetura de qualquer projeto em que estejam trabalhando antes de começar a trabalhar pode levar a uma economia maciça de tempo. Impede-os de ir para o beco errado, colocar trabalho desnecessário e, em geral, trabalhar em projetos que consomem tempo e que têm um benefício mínimo.

Por outras palavras, um desenvolvedor de software 10x irá cortar uma parte do projeto que pode contribuir 5% do resultado geral, mas resultar em 80% do tempo e esforço investido Fonte:

4. Eles acrescentam à cultura de trabalho

O desenvolvedor 10x acrescenta à cultura de trabalhoHá um grande debate em torno de 10x programadores que mancha a ideia para muitas pessoas. O cerne da questão é que muitas vezes se consegue bons executantes que simplesmente não trabalham com ele o resto da equipe. Às vezes chamados programadores ninja, essas pessoas podem produzir resultados surpreendentes, mas não serão capazes de levantar a equipe ao seu redor. Em casos extremos, a sua arrogância levará o resto da equipa a sair, negando qualquer benefício que tenham dado. Fonte A Pilha de Notícias

Na verdade, Rand Fishkin, CEO da Moz, adverte contra a contratação de 10x parvalhões por esta mesma razão dizendo que ele sugeriria contratar um construtor de equipa médio sobre os seus 10x parvalhões a qualquer dia porque simplesmente é um prazer trabalhar ao lado deles. Fonte: Código Mentor

Mas se a ideia de 10x é que você cria 10x o resultado. Se você tem um desenvolvedor que capacita outras 10 pessoas a aumentar sua produtividade acabando em 10x de produtividade para a equipe, eles são um desenvolvedor 10x. Fonte: Excesso de pilha

Pegue esta anedota de um colaborador pradn no Hacker News. O colaborador dá um exemplo perfeito de como uma pessoa pode criar um valor tremendo para a equipe em que está.

Estou agora numa equipa que creio ter um programador de software 10x. Ele escolheu um modelo simples de threading para evitar toneladas de tempo perdido em deadlocks e outros problemas de threading. Também é mais fácil de raciocinar e de colocar novas pessoas a bordo. Quando ele revisa o código, ele encontra bugs que evitam dias de depuração e sugere arquiteturas mais simples que tornam o código mais fácil de entender e mudar. Ele já teve esse efeito em ~20 pessoas ao longo de ~5 anos. Eu não ficaria surpreso se ele nos poupasse ~1 ano de tempo de desenvolvimento coletivamente.

Fonte: Notícias Hacker

A contribuição que este criador de equipa em particular faz não se eleva apenas a si próprio, mas eleva toda a equipa. Esta pessoa atua como um multiplicador para a equipe e este é o verdadeiro resultado que você quer quando está contratando. Fonte: Sean Cassidy

5. Um desenvolvedor de software 10x se encaixa no papel que você precisa que eles desempenhem

Outra questão que geralmente surge com a idéia dos desenvolvedores de software 10x que eles podem ser colocados em qualquer papel e desempenhar a um nível 10x, não importa em que ambiente técnico eles estejam trabalhando. Fonte: Codementor

É certamente verdade que um artista de 10x será capaz de produzir resultados avançados na maioria das situações, mas isso desmente o facto de algumas pessoas poderem ser 10x para situações específicas e ambientes tecnológicos específicos. Em outros lugares, elas realmente só produzirão resultados normais. É importante ter certeza de que um desenvolvedor será 10x na sua empresa.

6. Eles estão sempre a tentar melhorar.

Um 10x deve ser sempre aprender coisas novas. Cada nova habilidade, ferramenta e abordagem é uma nova maneira de resolver um problema. Não apenas isso, mas eles vão ficar a par das mudanças tecnológicas, mantendo-os produzindo a um nível 10x.

Como testar as habilidades de um desenvolvedor de software 10x

Como testar as habilidades de um desenvolvedor 10xDesenvolvedores de software 10x que não negociam em suas reputações como estrelas de rock são muito difíceis de encontrar. Exigem mais exibição do que um candidato normal.

Verifique as suas competências especializadas

Se você encontrar um desenvolvedor que você suspeita que vai ajudar sua equipe a atingir 10x de produtividade e produção, o primeiro lugar para começar é com suas habilidades profissionais. Provavelmente a melhor maneira de olhar para isto é onde o teste da amostra de trabalho. O teste da amostra de trabalho é exclusivamente adaptado para identificar habilidades que amplificam a saída. Isto porque, ao contrário de um teste algorítmico, um teste de amostra de trabalho testa problemas de negócios em vez de simples aptidão de codificação. E é realmente fácil de fazer usando o DevSkiller.

Digamos que o seu candidato está mais confortável com Java. Dê-lhes um teste avançado de Java e veja como eles se saem.

Verifique o quão adaptáveis são aos novos ambientes de programação

Mas um teste de Java não é suficiente. Um desenvolvedor 10x deve ser capaz de se adaptar a um certo grau a outros ambientes tecnológicos quando necessário. Então digamos que você é candidato diz que eles estão muito confortáveis com Java, mas nunca usa Python. Além da sua tarefa Java, dando-lhes uma tarefa Python fácil. Mesmo que eles nunca tenham usado Python antes, um verdadeiro desenvolvedor 10x deve ser capaz de descobrir como completar uma tarefa básica no tempo alocado.

Verifique as suas capacidades de depuração

Uma das verdadeiras marcas de um desenvolvedor de 10x é sua capacidade de fazer depuração complexa e de alto nível. Este é o tipo de depuração que um desenvolvedor normal poderia ter um tempo infinito para completar e ainda não seria capaz de fazer. Isto porque eles simplesmente não têm as habilidades e a compreensão da tecnologia.

Mais uma vez, você pode usar uma plataforma automatizada como o DevSkiller para dar ao candidato código avançado com bugs avançados que ele precisará encontrar e remover. Você verá que um desenvolvedor que pode fazer isso fornecerá uma vantagem de produtividade de cem a uma sobre um desenvolvedor normal. Fonte: Nevo

Convide os seus melhores candidatos para uma entrevista de codificação para ver como eles trabalham bem com os outros

Parte de testar a capacidade de codificação de alguém é ver se ele tem o conhecimento técnico para realmente fornecer uma contribuição 10x. Mas a outra metade de ser um desenvolvedor 10x está sendo capaz de elevar as outras pessoas da sua equipe para que a própria equipe faça uma contribuição 10x. Para fazer isso, você precisa descobrir como o candidato trabalha bem com os outros e como eles podem melhorar o rendimento da equipe.

Provavelmente a melhor maneira de fazer isto é com uma entrevista de codificação de pares. Na entrevista, um entrevistador trabalha com o candidato para resolver um problema de negócios. Este tipo de entrevista não é apenas para ter uma noção de como eles entendem bem a codificação. Também pode mostrar os tipos de decisões que tomam, como respondem ao feedback e como cooperam bem com os outros. Mesmo que o desenvolvedor não esteja disponível para uma entrevista cara a cara, é fácil configurar uma dessas entrevistas remotamente, usando uma plataforma como DevSkiller.

Está na hora de encontrar o seu programador 10x

Antes de ir à caça de desenvolvedores de unicórnio 10x, é importante entender que eles são quase tão raros quanto as bestas míticas. Você provavelmente encontrará muitos desenvolvedores médios e a verdade será dita se você tiver um desenvolvedor 10x na equipe, eles podem aumentar muito a produtividade dos programadores médios ao seu redor, então ainda vale a pena procurar por um amplificador.

O importante a lembrar é de:

  • Encontre um desenvolvedor que atenda às suas necessidades (Você pode começar verificando seus contribuições de código aberto). Isto significa alguém que será 10x tanto no ambiente tecnológico como de gestão da sua empresa.
  • Certifique-se de que ambos são excelentes por si mesmos e excelentes com uma equipe. Você não quer alguém que seja incrível por conta própria, mas depois arrasta o resto da empresa para baixo.
  • Faça testes extensivos tanto para ver como eles são bons no campo escolhido, como eles podem se adaptar a novos ambientes, e como eles podem trabalhar bem com outros.

Então, agora que você está pronto, é hora de sair e encontrar o seu desenvolvedor 10x. As recompensas serão incríveis para si e para a sua empresa.

Partilhar correio

Saiba mais sobre a contratação de tecnologia

Subscreva o nosso Centro de Aprendizagem para obter informações úteis directamente na sua caixa de entrada.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.

Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore