11 pontos por GN⁺ 2025-03-14 | 3 comentários | Compartilhar no WhatsApp
  • Na indústria de software, existe o mito do "engenheiro 10x", ou seja, alguém supostamente 10 vezes mais produtivo do que os colegas
  • Porém, esse conceito tem base frágil e traz o risco de reforçar vieses ou estabelecer padrões irreais

Medir produtividade é complexo e imperfeito

  • Como medir produtividade?
    • As áreas com que engenheiros lidam são variadas: microprocessadores, IoT, bancos de dados, serviços web, UX etc.
    • As linguagens e frameworks usados também variam: Golang, Python, COBOL, Lisp etc.
    • É necessário conhecimento especializado sobre tecnologias adjacentes, mercado e produto: segurança, visualização de dados, marketing, finanças etc.
    • O estágio de desenvolvimento e a escala do produto também diferem: pode ser um rover de exploração de Marte ou um software simples
  • A tecnologia muda
    • Até mesmo engenheiros que foram excelentes no passado podem, com o tempo, ficar para trás em tecnologias específicas
    • Mesmo que alguém tenha sido um "engenheiro 10x" em uma área específica, em outra pode estar apenas na média

O software pertence à equipe, não ao engenheiro

  • A qualidade do software é determinada não pelo desempenho individual, mas pelo desempenho da equipe
  • Não importa o quão rápido uma pessoa escreva código: se o processo da equipe for lento, no fim a velocidade será a mesma
  • Mais tempo é gasto com testes, revisão, deploy e manutenção do que com a escrita de código
  • Quando um engenheiro específico concentra a propriedade do software, o desaparecimento dessa pessoa cria um grande risco
  • Uma estrutura de desenvolvimento de software centrada na equipe é mais estável no longo prazo

As melhores organizações de engenharia são aquelas onde engenheiros "normais" conseguem ter ótimo desempenho

  • As melhores organizações de engenharia não são necessariamente aquelas formadas apenas por engenheiros excepcionais
  • O importante é um ambiente em que engenheiros comuns consigam entregar bons resultados no dia a dia e continuar evoluindo o produto e o negócio
  • A equipe precisa ser capaz de entender o sistema e realizar rotineiramente deploys de código, responder aos usuários e resolver problemas
  • As melhores organizações de engenharia são ambientes em que engenheiros normais podem crescer e entregar resultados

A importância dos engenheiros "normais"

  • A indústria de software tem uma forte tendência a valorizar "pessoas brilhantes"
  • A Netflix afirma preferir talentos do "top 10%", e a Coinbase diz preferir talentos do "top 0,1%"
  • Porém, a maioria das pessoas é comumé necessário um sistema em que pessoas comuns possam gerar resultados
  • Engenheiros de software não nascem prontos; eles evoluem por meio de treinamento e experiência

Construindo sistemas sociotécnicos para "pessoas normais"

  • Os sistemas devem ser projetados para que "pessoas normais" consigam usá-los com facilidade
  • É preciso considerar características humanas comuns:
    • Há vieses cognitivos, como viés de confirmação, viés de recência e efeito halo
    • Fadiga e estado emocional afetam o desempenho
    • Se um alarme toca às 3 da manhã, a chance de erro é maior do que às 3 da tarde
  • Quando o sistema é intuitivo e fácil de usar, a energia do engenheiro pode se concentrar em melhorar o produto

Grandes organizações de engenharia formam engenheiros de classe mundial

  • Uma grande organização de engenharia não é aquela que apenas possui talentos excepcionais, mas aquela em que engenheiros comuns conseguem crescer
  • Em uma boa organização, até engenheiros de nível médio conseguem entregar resultados e evoluir continuamente
  • Os melhores engenheiros surgem naturalmente desse tipo de ambiente

Devemos contratar a "pessoa certa", não a "melhor pessoa"

  • É mais importante encontrar "a pessoa certa para a nossa equipe" do que "o melhor talento"
  • O sistema deve promover o desempenho da equipe acima do desempenho individual
  • É preciso um ambiente em que trabalho em equipe e colaboração importem mais do que resultados individuais
  • Uma cultura inclusiva e justa aumenta o desempenho e oferece oportunidades para que engenheiros de diferentes origens possam crescer

Conclusão

  • O "engenheiro 10x" pode até existir na prática, mas conectá-lo ao desempenho da equipe é algo difícil e arriscado
  • Grandes organizações de engenharia não dependem de alguns gênios, e sim de uma estrutura em que engenheiros comuns consigam entregar resultados
  • O sistema deve reforçar o desempenho da equipe acima do desempenho individual
  • O ponto central é criar, por meio de uma cultura e de sistemas inclusivos, um ambiente em que engenheiros comuns possam crescer e gerar resultados

3 comentários

 
iolothebard 2025-03-20

Numa empresa em que só há engenheiros 100x, os engenheiros 100x são o normal. O normal é importante. Mais importante ainda é elevar o padrão do que se considera normal…

 
felizgeek 2025-03-16

Acho que os engenheiros de software 10x ou 100x de que pessoas como Steve Jobs falavam significam o seguinte.
Em trabalhos como construção civil, entrega e direção, é difícil que até o profissional mais habilidoso seja mais de 2 vezes mais eficiente do que uma pessoa comum. Já em áreas como software e finanças, alguém muito bom às vezes produz entregas que 100 pessoas medianas jamais conseguiriam fazer.

Formação de talentos é importante, mas seleção de talentos também é. Parece haver uma grande diferença entre treinar e selecionar. Não dá para misturar as duas coisas e confundi-las.

 
GN⁺ 2025-03-14
Comentários do Hacker News
  • A ideia de que engenharia de software é algo especial tende a ser tóxica

    • Assim como no setor financeiro, há uma tendência de superestimar o valor individual
    • É importante fazer bem o trabalho e ir para casa; jornadas excessivas indicam fragilidade no sistema
    • Esforço consistente e cuidadoso é importante
  • Não existe engenheiro "normal"; há desenvolvedores em vários níveis

    • Para montar uma equipe excelente, são necessários engenheiros competentes
    • Porém, é difícil encontrar esse tipo de engenheiro
  • Software é desenvolvido por indivíduos, não por equipes

    • Projetos complexos normalmente são liderados por uma única pessoa excepcional
    • Montar uma equipe é um desafio constante
  • Há oposição à desumanização e à categorização da classe trabalhadora

    • O núcleo de uma grande equipe é uma grande liderança
    • Só pode haver liderança se houver uma equipe
  • Há decepção com a IEEE por tratar de algo que parece clickbait

    • Há equívocos sobre como medir produtividade
    • Questiona-se o conceito de engenheiro de software "normal"
  • Engenheiros 10x são criativos e se preocupam com a experiência do usuário e a manutenção do código

    • Desenvolvedores 1x focam apenas no resultado e acabam gerando conflitos
  • O conceito de engenheiro 10x é exagerado, mas existem algumas pessoas que fazem muita coisa

    • É difícil entender por que se dedicam tanto ao trabalho mesmo sem recompensa proporcional
  • O trabalho de engenharia tem características diferentes de outras profissões

    • O desempenho é uma propriedade do par engenheiro-produto
    • É difícil quantificar desempenho
  • Às vezes bate um sentimento de impotência ao se comparar com os outros

    • A confiança volta ao resolver problemas
    • A produtividade aumenta quando se tem objetivos claros
    • Velocidade não é mágica; ela é alcançada de maneiras específicas
  • Muitos engenheiros trabalham por dinheiro, e sem paixão é difícil se tornar um engenheiro excepcional

    • Habilidades individuais são influenciadas por prática e talento
    • Experiência pode ser mais útil do que inteligência