paint-brush
Como se tornar um desenvolvedor 10x: um guia essencialpor@zawistowski
15,866 leituras
15,866 leituras

Como se tornar um desenvolvedor 10x: um guia essencial

por Wojciech Zawistowski14m2023/03/22
Read on Terminal Reader

Muito longo; Para ler

Ao melhorar a forma como você trabalha, você apenas ADICIONA ao desempenho de sua equipe. Ao melhorar a forma como todos trabalham, você MULTIPLICA o desempenho da sua equipe. Ser um multiplicador fará com que você seja notado e promovido. Vou te mostrar 16 maneiras comprovadas de fazer isso.
featured image - Como se tornar um desenvolvedor 10x: um guia essencial
Wojciech Zawistowski HackerNoon profile picture
  • O desenvolvimento de software é um esporte de equipe. Seu desempenho individual não importa tanto quanto o desempenho de toda a sua equipe e empresa.


  • Ao melhorar a forma como você trabalha, você apenas ADICIONA ao desempenho de sua equipe. Ao melhorar a forma como todos trabalham, você MULTIPLICA o desempenho da sua equipe.


  • Multiplicar o desempenho de toda a equipe o colocará em um caminho muito mais rápido para ser notado e promovido do que ser um contribuidor individual extremamente eficiente.


  • Impulsionar o desempenho de outras pessoas requer uma mentalidade e uma abordagem diferentes do que impulsionar seu desempenho individual. Neste artigo, mostrarei 16 maneiras comprovadas de multiplicar o desempenho de sua equipe (ou até mesmo de toda a empresa).

O equívoco comum de 10x Dev

Se você pesquisar no Google o termo "desenvolvedor 10x", obterá muitos resultados relacionados ao desempenho individual.


Confira as citações de alguns dos principais resultados que obtive:


  • "Um desenvolvedor dez vezes mais eficiente é dez vezes mais eficiente do que o desenvolvedor médio de uma equipe."


  • "Essas são as pessoas que você quer que resolvam seus problemas; elas farão isso em 1/10 do tempo, com 1/10 do número de linhas de código."


  • "Estou acostumado a estar em equipes onde faço 60% do trabalho com 7 a 8 desenvolvedores na equipe."


Declarações como essas me fazem estremecer.


Esse. É. Não. Como. Nós. Construir. Moderno. Programas.


O desenvolvimento de software é um jogo de equipe. Ou até mesmo um jogo de times. E o jogo é pontuado por resultados de negócios, não por resultados brutos. Sendo eficaz como equipe e organização, não eficiente como indivíduo.


Como vice-presidente de engenharia, não estou procurando codificadores competitivos. Eu não me importo com quantas linhas de código você gira em que tempo. E um único desenvolvedor fazendo 60% do trabalho da equipe não é algo de que eu me gabe, mas uma disfunção que considero minha prioridade corrigir.


Então, quem eu estou procurando, então? Vamos considerar a seguinte matemática:

A matemática simples de trabalhar em equipe

Se você melhorar apenas sua própria produção, você ADICIONA à produção de sua equipe.


Mas se você melhorar a produção de cada membro da equipe, você MULTIPLICA a produção de sua equipe.


E a multiplicação supera a adição muito rapidamente.


Mesmo se você realmente for um desenvolvedor 10x mítico, você só aumentará a produção de sua equipe em 10 "unidades", não importa o tamanho da equipe. Mas se você melhorar a produção de toda a equipe em apenas 2x, aumentará em 10 "unidades" para uma equipe de apenas 10 pessoas. E em 100 "unidades" para uma equipe de 100 pessoas.


E estamos falando de uma situação extrema quando você é 10 vezes mais eficiente do que TODOS os outros desenvolvedores da equipe. Na realidade, a multiplicação superará a adição em equipes muito menores que 10 pessoas.


Além disso, estamos falando apenas sobre a saída bruta: com que força você empurra, mas não em que direção você empurra. E a direção que toda a equipe segue é crítica.

O desempenho da sua equipe e o individual estão conectados

Não importa se um barco a motor tem um motor de 100 ou 1000 cavalos de potência, se esse motor empurra o barco para o lado ou para trás, não para frente. Se você avançar na direção errada, poderá não apenas desperdiçar sua própria produção, mas também minar o trabalho de toda a sua equipe.


Você pode se tornar um desenvolvedor -10x .


E essa relação é bilateral.


Mesmo se você empurrar na direção certa, sua produtividade 10x no modo divino pode ser negada se o resto de sua equipe estiver pressionando na direção oposta.


Você precisa ajudá-los, para que eles possam ajudá-lo. Cancele os pontos fracos de sua equipe para que eles não anulem seu desempenho.


Pode parecer contra-intuitivo, mas concentrar-se em tornar toda a sua equipe mais eficaz costuma ser uma maneira melhor de aumentar seu desempenho individual, em vez de focar apenas em sua própria produção.


É por isso que eu e outros gerentes não buscamos eficiência individual tanto quanto a capacidade de impactar positivamente sua equipe. E quanto maior o impacto que você causa - quanto mais pessoas você ajuda a ir mais rápido na direção certa - mais valor você gera para sua empresa.


Mas não acredite apenas na minha palavra.

O que faz você ser promovido na maioria das empresas de software?

Vamos dar uma olhada nas carreiras de engenharia em algumas empresas conhecidas:

CírculoCI

O CircleCI usa uma escada de 6 níveis (E1-E6): Engenheiro Associado, Engenheiro, Engenheiro Sênior, Engenheiro de Equipe, Engenheiro de Equipe Sênior e Engenheiro Principal.


Os níveis E1-E3 concentram-se na execução do trabalho. E1 dentro da tarefa, E2 dentro do épico/projeto, E3 dentro da equipe.


Os níveis E4-E6 utilizam habilidades para escalar e gerar alavancagem. Eles facilitam, orientam e orientam os outros. E4 dentro da equipe e com as partes interessadas nos negócios da equipe, E5 em várias equipes e E6 em toda a organização.


FONTE: https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0

carta

Carta usa uma escada de 7 níveis (L2-L8). Em suas próprias palavras:


É fácil articular a coisa mais importante para o nivelamento: seu impacto na empresa. Podemos resumir todo o sistema descrevendo o impacto (grosseiro) que esperamos que os funcionários tenham à medida que progridem: nas tarefas (L2), nos recursos (L3), nos problemas (L4), nas equipes (L5), na organização (L6), na empresa (L7) e na indústria (L8).


FONTE: https://medium.com/building-carta/engineering-levels-at-carta-d33db2a55a20

Spotify

O Spotify não se importa muito com títulos externos como sênior, equipe ou desenvolvedor principal. Eles são muito flexíveis sobre eles e permitem que os funcionários escolham o que faz mais sentido para eles. Mas, internamente, utilizam uma escada de 4 níveis organizada pelo que chamam de “escopos de impacto”.


E eles descrevem esses 4 níveis ("etapas") assim:


Identificamos quatro etapas em sua carreira no Spotify. Cada Etapa é marcada não apenas pelo aumento da responsabilidade, mas também pelo aumento do seu impacto na tecnologia: Etapa Individual, Etapa de Esquadrão/Capítulo, Etapa de Tribo/Guilda, Etapa de Tecnologia/Companhia.


FONTE: https://engineering.atspotify.com/2016/02/spotify-technology-career-steps/

Dropbox

O Dropbox usa uma escada de 7 níveis (IC1-IC7): Engenheiro de software 1-4, Engenheiro de software de equipe, Engenheiro de software principal e Engenheiro de software principal sênior.


É assim que eles descrevem a "extensão da influência" para cada nível:


  • IC1: Atuo no âmbito da minha equipe com orientação específica do meu gestor.


  • IC2: Eu trabalho principalmente no âmbito da minha equipe com orientação de alto nível do meu gerente.


  • IC3: Trabalho principalmente com minha equipe direta e parceiros multifuncionais enquanto conduzo a colaboração entre equipes para meu projeto.


  • IC4: Sou um líder forte para minha equipe, com meu impacto começando a se estender para fora da minha equipe.


  • IC5: Estou influenciando cada vez mais os roteiros de outras equipes do Dropbox para atingir metas de impacto nos negócios.


  • IC6: Normalmente influencio a estratégia técnica de um grupo.


  • IC7: Eu normalmente influencio o departamento e a estratégia de toda a empresa para atingir metas de impacto nos negócios.


FONTE: https://dropbox.github.io/dbx-career-framework/


Eu escolhi essas 4 empresas porque elas descrevem suas escadas de maneira mais sucinta e, portanto, podem ser citadas quase diretamente. Mas um padrão semelhante se repete amplamente em todo o setor.


Então, o que faz você ser promovido em todas essas empresas? O que eles mais valorizam?


Novamente, a área do impacto que você causa.


Quanto maior a fatia de uma organização (e quanto mais pessoas) você influenciar positivamente, mais valioso você será para a empresa - e mais reconhecimento receberá.


Operar em tal nível pode parecer assustador. Mas aumentar o desempenho de toda a equipe em 2 ou 3 vezes costuma ser menos assustador do que parece. E mais fácil do que aumentar seu desempenho individual para 10x.


Ok, então como você pode fazer isso?

Como impactar o desempenho de toda a equipe ou empresa

É difícil ser completamente exaustivo, pois há muitas maneiras de impactar positivamente o desempenho de outras pessoas. Mas vamos explorar vários deles para que você possa ter uma boa ideia e construir a mentalidade que permitirá que você tenha mais ideias por conta própria.

1. Ensine, oriente e compartilhe seu conhecimento

Comece pequeno. Discuta coisas com seus colegas de equipe. Espalhe seu conhecimento por meio de revisões de código, programação em pares e reuniões de equipe. Lidere pelo exemplo, por meio de seu trabalho e comportamento.


Espalhe seu conhecimento não apenas sobre codificação, mas sobre tudo o que pode impactar o desempenho de sua equipe: processos, comunicação e gerenciamento de tempo.


Estenda seu impacto a mais pessoas por meio de bolsas marrons, workshops e blogs. Aproveite as oportunidades para colaborar com outras equipes.


Por fim, quando você for amplamente reconhecido como um especialista, assuma a responsabilidade de gerenciar programas de aprendizado em toda a empresa ou liderar comunidades de prática.

2. Trazer Novos Conhecimentos para a Empresa

Não seja uma sensação única. Não confie apenas na sua experiência anterior.


Aprenda continuamente. Converse com colegas de fora da sua empresa. Ler. Vá a conferências. Mantenha-se atualizado com o que há de mais moderno no setor. Pesquise o que outras empresas estão fazendo. Experimente novas técnicas e bibliotecas.


Seja a fonte de conhecimento inovador que ajudará sua equipe a alcançar o próximo nível.

3. Planejar e Coordenar Projetos

Não importa qual processo você use, o desenvolvimento de software é, no final, um fluxo de grandes e pequenos projetos. O quão bem eles são analisados, divididos, planejados e executados tem um tremendo impacto no desempenho das equipes que os executam.


Ser voluntário para preparar e liderar projetos é uma ótima maneira de impactar o desempenho de várias pessoas.


Comece assumindo a responsabilidade por uma parte do processo: análise de requisitos, plano de implementação ou divisão de tarefas.


Disque-o por possuir o processo de ponta a ponta, supervisionando toda a execução do projeto.


E para obter o máximo impacto, assuma a responsabilidade pela coordenação de grandes projetos entre equipes.

4. Assumir a propriedade de uma parte da base de código ou produto

Em sistemas de software complexos, existem muitas "partes móveis" que precisam ser mantidas por muito tempo: módulos, bibliotecas, subsistemas, produtos, serviços, APIs, ferramentas, documentação, pipelines e assim por diante. Não é fácil mantê-los bem sem propriedade clara.


E o quão bem eles são mantidos tem um grande impacto no desempenho de todos que os utilizam - o que, para alguns módulos fundamentais, pode até significar todos em toda a empresa.


Ao se apropriar de uma parte da base de código, produto ou subsistema de sua empresa e mantê-lo em ótima forma, você pode causar um impacto que dificilmente passará despercebido.


Em uma escala menor, você pode manter algo interno à sua equipe, por exemplo, um pequeno módulo de código ou serviço da web.


Em uma escala maior, você pode manter algo fundamental para todo o produto e empresa, como um sistema de design central ou uma API voltada para o cliente.

5. Melhorar o ferramental

Ferramentas eficientes fazem uma tremenda diferença na rapidez com que uma equipe pode trabalhar. E há tantas coisas em nosso trabalho que podem ser otimizadas, automatizadas ou usadas de maneira mais hábil.


Pipeline sólido de CI/CD. Formatação de código e linting. Conjunto de teste rápido. Código automatizado e geração de dados de teste. Navegação de código mais eficiente. Utilizando todo o poder do seu IDE. Melhores ambientes locais, de teste e de preparação. Sistema de gerenciamento de projetos bem configurado.


Ferramentas robustas para depuração, monitoramento e registro. Melhor descoberta de componentes e bibliotecas compartilhadas. Automatizando e conectando seus fluxos de trabalho (Github, Slack, Trello, etc.). A lista poderia continuar e continuar.


Ao aprimorar o ferramental, automatizar tarefas repetitivas, ou mesmo apenas disseminar o conhecimento de como utilizar melhor as ferramentas existentes, você pode impactar muito no desempenho de sua equipe e de toda a empresa.

6. Melhore a base de código e a arquitetura

Coloque-se no lugar dos colegas que visitarão o projeto depois de você. Código e arquitetura fáceis de entender podem melhorar ou prejudicar o desempenho de toda a equipe. Torne-os mais limpos, simples, fáceis de navegar e depurar e menos propensos a erros.


Mesmo melhorias relativamente pequenas, em um componente ou módulo, podem aumentar consideravelmente o desempenho de sua equipe. E as melhorias mais globais - por exemplo, para convenções de código de todo o produto - podem impactar até mesmo toda a empresa.

7. Ajude sua equipe a ir na direção certa

Reunir as pessoas para avançar em uma direção única e certa é uma das maneiras mais poderosas de multiplicar o desempenho de toda a equipe. E você pode influenciá-lo muito mais do que pensa.


Em primeiro lugar, entenda você mesmo a direção certa. Esforce-se para entender os objetivos, os negócios e os clientes de sua empresa. Isso permitirá que você entenda quais problemas precisam ser resolvidos e encontre melhores soluções para esses problemas.


Em segundo lugar, ajude sua equipe a seguir na direção certa. Compartilhe e documente o que você aprendeu. Ajude sua equipe a rastrear métricas relevantes, coletar feedback e trabalhar de maneira mais iterativa e ágil. Torne-se um consultor confiável para seu gerente de produto.


Em terceiro lugar, ajude a coordenar com as outras equipes e partes interessadas, para que toda a empresa siga em uma única direção.

8. Suporte a não desenvolvedores

O software não é construído apenas por desenvolvedores de software. É um esforço conjunto de desenvolvedores, designers, testadores, gerentes de produto, analistas, cientistas de dados, pesquisadores de usuários e várias partes interessadas nos negócios (suporte ao cliente, marketing, vendas, finanças).


Apoiá-los. Trabalhe em conjunto. Esforce-se para tornar a vida deles mais fácil, para ajudá-los a ir mais rápido e para coordenar seus esforços para que todo o grupo multifuncional funcione perfeitamente em conjunto.


Isso permitirá que você impacte sua organização em um escopo ainda mais amplo do que apenas a equipe de engenharia.

9. Aprimorar Metodologias e Processos

A maneira como sua equipe e organização trabalham tem um impacto fundamental no desempenho. E não é reservado apenas para gerentes e scrum masters. Como desenvolvedor, você também pode influenciar muito os processos da empresa.


Primeiro, eduque-se. Entenda os princípios de empirismo, desenvolvimento iterativo, descoberta de produtos e Agile. Conheça abordagens técnicas modernas, como CI/CD ou desenvolvimento baseado em sinalizadores de recursos. Aprenda como as equipes multifuncionais modernas funcionam.


Em segundo lugar, observe com um olhar crítico, procure proativamente por oportunidades de melhoria e tome a iniciativa de moldar o processo. Seja ativo dentro e fora de sua equipe. Participe de discussões relacionadas ao processo. Campeão implementando novas ideias.


Você poderá multiplicar a performance de muitas pessoas e equipes.

10. Liderar Iniciativas Técnicas

Muitas melhorias técnicas exigem um esforço conjunto de toda a equipe por um longo tempo: substituindo sucessivamente o antigo framework por um mais novo, migrando para um novo conjunto de convenções de codificação e refatorando gradualmente uma parte crítica da base de código.


Se não forem gerenciadas e impulsionadas de forma consistente, essas iniciativas geralmente fracassam rapidamente. E seus resultados são medíocres na melhor das hipóteses.


Ofereça-se para liderar tais iniciativas. Se você planejar e gerenciá-los bem, se facilitar a contribuição de outras pessoas e se coordenar os esforços em torno deles e levá-los até a conclusão, poderá causar um impacto substancial no desempenho futuro de sua equipe e organização.

11. Melhorar a comunicação e a transparência

Uma comunicação clara e transparente é essencial para um trabalho em equipe eficaz. Determina o quão bem as pessoas se coordenam, o quanto confiam umas nas outras, quão boas decisões tomam e quão bem entendem seus objetivos.


E isto aplica-se a todos os níveis: dentro de uma equipa, entre equipas, entre diferentes funções e departamentos e entre colaboradores e gestão. A qualidade da comunicação pode atrapalhar ou atrapalhar o desempenho de toda a organização.


E você pode fazer muito para melhorá-lo.


Compartilhe seu status com as outras equipes. Mantenha a documentação, roteiros e wikis de sua equipe e empresa em bom estado. Ajude sua equipe a se manter informada extraindo informações proativamente das outras equipes.


Peça à gerência para esclarecer os objetivos de sua equipe e atualizá-los sobre seu progresso. Propor melhorias nos padrões e canais de comunicação em toda a empresa (Slack, etc.). Iniciar reuniões de coordenação entre equipes sempre que necessário.

12. Exemplificar e Promover a Cultura

Não existe uma única cultura certa. Diferentes empresas se comportam de maneira diferente com um nível semelhante de sucesso. Mas se diferentes pessoas, equipes e departamentos na mesma empresa se chocam culturalmente, isso mata a produtividade.


Entenda a cultura da sua empresa. Exemplifique e promova. Esteja consciente de seus padrões de comportamento e comunicação.


Isso afeta o desempenho da sua empresa mais do que você pensa.

13. Motive os outros

Às vezes, alcançar um desempenho superior é apenas uma questão de motivação. A vontade de empurrar mais forte. Sentindo-se mais faminto pelo sucesso. Ter a atitude certa.


Você não precisa ser um gerente para influenciar o moral de sua equipe. Lidere pelo exemplo. Espalhe boas vibrações. Mostre entusiasmo, otimismo e coragem. Torne o trabalho divertido. Fique calmo e composto em uma crise. Reúna sua equipe para se esforçar um pouco mais a cada dia.


Tais comportamentos são virais e freqüentemente funcionam melhor do que as tentativas de "empoderar" as pessoas do topo. E eles se espalham facilmente para fora de sua equipe, o que permitirá que você cause um amplo impacto.

14. Ajuda com recrutamento e integração

Outra forma de impulsionar o desempenho de uma organização é através do recrutamento.


Se puder, envolva-se no processo de recrutamento. Participe das entrevistas. Ajude a preparar os desafios de recrutamento. Revise os currículos.


E mesmo que você não possa participar do processo de recrutamento em si, ainda há muito que você pode fazer para ajudar a trazer novos talentos a bordo. Indique seus colegas. Promova sua empresa por meio de blogs, fóruns de discussão, palestras em conferências e networking. Deixe uma avaliação positiva no Glassdoor.


Assuma a responsabilidade pela integração e orientação de novos contratados.

15. Resolva Problemas Complexos (e Depois Espalhe o Conhecimento)

Se você conseguir resolver um problema que ninguém mais é capaz de resolver, de forma que dê à sua empresa uma vantagem competitiva, você pode gerar muito valor.


Isso pode soar como uma tarefa para um gênio 10x solitário, mas ainda é sobre a equipe. Se você não disseminar o conhecimento sobre sua solução brilhante, se não a projetar de forma que seja fácil para outros reutilizá-la, você se tornará um gargalo e um potencial ponto único de falha em vez de um multiplicador.


Você colocará sua empresa em risco, não agregará valor.


Mas se você puder resolver problemas complexos de forma que todos entendam sua solução e sejam capazes de construir sobre ela, você pode se tornar um divisor de águas.

16. Fornecer orientação técnica e aconselhamento

Muitas vezes, sua empresa precisa lidar com decisões com um impacto enorme e duradouro. Escolhendo uma pilha de tecnologia. Escolhendo um fornecedor de nuvem. Tomando decisões de construção versus compra.


Ainda mais frequentemente, surgem questões menores: Qual seria o tamanho aproximado do projeto? É tecnicamente viável? Quais são as possíveis soluções para este problema?


Torne-se um consultor obrigatório para sua equipe e toda a empresa. Aprenda o cenário da indústria em profundidade. Mantenha-se atualizado com os mais recentes desenvolvimentos e tendências. Fique bom em pesquisa. Isso permitirá que você traga muito valor para sua empresa.

"Mas posso realmente fazer tudo isso como desenvolvedor?"

Você pode realmente possuir subsistemas, liderar projetos ou tomar decisões de construção versus compra? Não é responsabilidade de arquitetos, gerentes e líderes técnicos?


Sim você pode! Em qualquer empresa bem administrada, seu gerente ou líder técnico ficará feliz em delegar o máximo possível a você. Este é realmente o trabalho deles. Isso ajuda você a crescer e melhorar o desempenho de sua equipe, que são as responsabilidades mais importantes de um gerente.


Algumas das coisas de maior impacto podem, de fato, exigir mais experiência - ninguém deixará um júnior recém-saído de um bootcamp de codificação possuir um subsistema de missão crítica usado por todas as equipes da empresa. Mas todos os impactos que discutimos têm uma progressão gradual.


Comece com iniciativas menores em sua equipe e expanda sucessivamente o escopo de seu impacto. Trabalhe com seu líder ou gerente para encontrar mais oportunidades de crescimento. Esteja sempre atento a essas oportunidades você mesmo, em sua equipe e em toda a empresa. Seja notado e construa uma reputação.


Isso o colocará em um caminho rápido para fazer um respingo cada vez maior. Para se tornar não apenas 10x, mas até mesmo um desenvolvedor 100x. E - se esta for sua ambição - eventualmente se tornar um líder de tecnologia.

Resumindo

Sim, você precisa ser um desenvolvedor sólido. É difícil ser um multiplicador para os outros enquanto você mesmo faz um trabalho ruim. Mas não se preocupe se você for realmente 10x, ou 5x, ou apenas um sólido 1x. Mude sua mentalidade da eficiência pessoal para a eficácia de toda a equipe e empresa.


E quando o fizer, apenas o céu (e o tamanho da sua empresa) é o limite. Você pode se tornar não apenas 10x dev, mas até 100x e mais.