Preâmbulo
Este artigo é uma análise de outro artigo: Se você não contrata o Jones, não merece os senhores
Vale ressaltar imediatamente que não tenho idéia do que existe e como está no Netflix. Tornou-se uma vergonha para o senso comum e a lógica, sobre os quais o autor zomba com tanto zelo ao longo do artigo.
Se possível, deixei o design original e observei meus comentários separadamente.
Bem, ele também deixou o título amarelo, modificando-o um pouco.
Vamos lá
Deixe-me contar uma história sobre uma empresa de muito sucesso que cometeu um grande e estúpido erro:
Não contratamos programadores juniores e estagiários ... Se você não tem um filhote, não precisa limpar as poças.
--Netflix
Comente O cabeçalho é amarelo e a introdução diz que a essência do erro e o rápido declínio desta empresa serão revelados. Na verdade não.
Fiquei completamente surpreso com o fato de alguma coisa corporativa conseguir apresentar os filhotes de maneira negativa, e até alguém o convenceu. Os filhotes são as criaturas mais limpas da Terra, vivendo uma alegria fofa! Raios de luz em um mundo solitário. Mas vamos direto ao ponto.
Comente Os filhotes não conseguem se manter limpos e comer sozinhos.
Muitas empresas seguiram essa estratégia de "contratar apenas idosos". Eles justificam assim:
- Não temos tempo nem recursos para contratar programadores juniores; estamos desenvolvendo muito rápido.
- Nossa empresa pode pagar idosos, por isso não há necessidade de joons.
- No estágio atual, não podemos permitir erros. As apostas são muito altas.
- Nosso processo fornece aos funcionários maior autonomia. Não estamos prontos para segurar os jones pela alça, pois eles precisam.
- Queremos estabelecer as bases para o produto antes de começarmos a contratar funcionários inexperientes.
A mensagem é que os programadores juniores representam um risco, um passo que a empresa adota por um senso de dívida pública ou por falta de orçamento.
Comente Sempre foi interessante qual dedo sugava o que não estava na frase original. Onde estava a dívida e o orçamento? Estamos falando da distração dos desenvolvedores seniores: em vez de criar um produto, eles treinam (revisam, explicam, orientam, corrigem etc.) desenvolvedores juniores. I.e. estupidamente economizando tempo para desenvolvedores seniores.
Acontece que outras empresas devem poder pagar caridade corporativa e resultados de segunda classe, mas certamente não nós.
Comente Não é o fato de que outros também podem pagar. Eles apenas pensam que podem. Afinal, ninguém conduziu experimentos, pelo menos eu não ouvi falar disso.
A propósito, nos EUA, existem mais de 100.000 empresas de TI, e eu não ouvi algo para pelo menos um CEO dizer: "pense, erros!" ou "seria necessário baixar o orçamento extra em algum lugar". Então atenção, organizações, onde "a entrada é proibida para junho"! Não importa como você veja seus benefícios, não importa como você justifique sua vida, a realidade é que você inventou tudo isso para si mesmo. Não há vantagem competitiva em se livrar do junho. E você acabou de mostrar ao mundo seu gerenciamento de problemas.
Comente Até o momento, não há evidências de que essas 100.000 empresas de TI representem um ambiente de desenvolvimento eficiente, mais eficiente que o Netflix. Tudo isso é manipular especulações e emoções.
A hostilidade para desenvolvedores juniores é uma maneira fácil de identificar uma cultura tóxica da empresa.
- April Wensel (@aprilwensel) 1 de agosto de 2017
A hostilidade para com os programadores mais jovens é um sinal claro de uma cultura corporativa tóxica.
Comente Onde está a hostilidade? Ninguém diz que os juniores são inimigos. Eles simplesmente não são contratados. E ainda não contrata, por exemplo, serralheria e artistas. Mostrar hostilidade também? Isso é chamado de "substituição de conceitos".
Como você contrata e lida com programadores juniores é um importante indicador indireto da saúde da sua organização, sua linha de produtos e sua cultura interna. Os idosos prestam atenção a isso. E se isso por si só não parecer suficientemente convincente, a contratação de um número equilibrado de programadores juniores também traz benefícios financeiros.
Comente Vamos aplicar essa lógica aos bibliotecários que não são contratados e entender o absurdo do raciocínio lógico.
Prevenção de problemas
Se você recusar programadores juniores porque eles “criam problemas”, também envia automaticamente uma mensagem importante aos seus funcionários sobre a cultura corporativa: erros não são permitidos. Você cria uma imagem de uma empresa que despede alguém sempre que o servidor fica inoperante. Não importa quanto você paga, ninguém quer trabalhar em um ambiente que não dê confiança no futuro. E as tentativas de intimidar os programadores para que eles não cometam erros, multiplica uma cultura de medo e ameaças, que afeta catastroficamente a saúde e a produtividade psicológicas.
Comente Outra estupidez lógica. Todo mundo está errado. Somente um idiota pode dizer o contrário. A única questão é quem os torna mais e quem é capaz de corrigi-los o mais rápido possível. E depois também para evitá-los no futuro. Portanto, questões sobre as "mensagens" deixam a consciência dos inventores. Pelo fato de alguém não ser contratado, isso não ocorre, porque as pessoas são demitidas. Bem, as passagens sobre intimidação, saúde psicológica e muito mais são simplesmente desconcertantes.
Você pode argumentar que essa atitude incentiva os programadores a serem cautelosos e a criar processos que protegem contra erros: por exemplo, teste automático, controle de qualidade, failover, proteção de acesso e alterações de código reversíveis. Mas essa teoria coloca a carroça diante do cavalo. Se a política da empresa incentivar a criação desse seguro e a própria empresa fornecer aos programadores tempo e recursos suficientes para isso, uma cultura de inadmissibilidade de erros não será necessária e inútil; a maioria dos problemas será detectada muito antes da produção. E todo programador, seja júnior ou sênior, prefere um ambiente em que processos confiáveis protegem contra erros catastróficos.
Comente Com base em premissas errôneas, você pode obter consequências terrivelmente terríveis.
E os erros que rompem todas as coberturas estabelecidas? Pense nelas como oportunidades valiosas para fortalecer sua defesa. Os programadores mais jovens, deve-se reconhecer, geralmente abrem essas oportunidades mais rapidamente do que os idosos. Portanto, a pergunta é: você prefere depurar seus processos mais cedo ou mais tarde? "Nunca" é bom, como qualquer programador experiente confirmará. Se algo pode dar errado, mais cedo ou mais tarde ele vai dar. Nenhum estoque de experiência evitará erros humanos.
Comente Sim, vamos levar o macaco ao reator nuclear e ver quão confiáveis são os sistemas de segurança. Bem, para abrir rapidamente a defesa. Eu já estou começando a me preocupar com as habilidades mentais do autor.
Obviamente, você precisará de alguns programadores seniores e leads de operações para estabelecer as bases e criar precedentes para o ciclo de desenvolvimento de failover. Ninguém oferece contratar apenas programadores juniores. Mas se o seu escritório é realmente sério sobre erros - em outras palavras, os erros são detectados cedo e frequentemente -, os programadores mais jovens serão úteis. E todos os níveis de programadores ficarão mais satisfeitos com seu trabalho, pois a tolerância a falhas os libera para criar um bom software (em vez de extinguir constantemente incêndios) e protege suas noites e fins de semana.
Comente Não se trata de medo de erros, é de eficiência e produtividade. O autor repete essa falsa construção de tempos em tempos, provando que tudo está ruim. Tudo está ruim, sim, mas apenas com as premissas originais.
Economizando dinheiro
De acordo com o fato, o engenheiro de software júnior médio recebe US $ 55.394 por ano, enquanto o engenheiro de software sênior recebe US $ 117.374 por ano. Os idosos são mais que o dobro do preço de junho.
Esses custos geralmente são justificados. Espera-se maior produtividade dos programadores mais antigos do que dos mais jovens.
Comente Sabe-se que a diferença de produtividade entre diferentes programadores pode chegar até 25 vezes. Portanto, 2 vezes praticamente qualquer coisa.
Mas esse não é o fim da imagem, e você receberá um centavo pela justificativa preguiçosa e impensada do aumento de custos como os custos de fazer negócios.
Comente Mesmo se você contratar zeladores para programação, incluindo desenvolvedores juniores, isso sempre é verdade, independentemente.
Nem todo código de aplicativo requer muitos anos de experiência para escrever ou mesmo para um trabalho bem feito. Cada programa possui uma "cola de software" que conecta as várias entradas e saídas de uma maneira completamente comum. De fato, não importa quem o escreve. Você pode pagar US $ 28 por hora para escrever este código - ou pode pagar US $ 59 por hora para escrever o mesmo código. De uma forma ou de outra, o resultado não será muito diferente. Se você contratar apenas idosos, pagará exorbitantemente por uma quantidade substancial de trabalho simples.
Comente Se uma quantidade significativa de trabalho na empresa é bastante trivial, então sim. Mas é improvável que a empresa possa ser considerada de alta tecnologia. A complexidade da infraestrutura estabelece uma barreira inicial séria com a qual um desenvolvedor júnior pode não ser capaz de lidar (ou lidar com).
Além disso, a base de código varia muito entre aplicativos, e a familiaridade com ela é um fator chave na produtividade. Na maioria dos casos, um programador júnior que trabalha em equipe por seis meses será mais eficiente em lidar com tarefas do que um programador sênior recém-contratado - simplesmente por causa do grau de familiaridade com a lógica do projeto.
Comente Depende da complexidade do projeto. Acontece que é mais fácil demitir e contratar um bom especialista do que esperar o "júnior" começar a atrapalhar o projeto.
A cola de software mencionada anteriormente e o código específico do domínio compreendem pelo menos metade de todo o desenvolvimento. O restante é o código que realmente precisa da atenção de um especialista sênior com benefícios para o resultado. Mas mesmo com esse código, um programador júnior pode fazer um trabalho incrível com acesso suficiente aos recursos educacionais e conselhos de um mentor experiente.
Comente Acontece que os cogumelos crescem na lua. Argumentos no estilo de "talvez sim", é claro, podem ocorrer, mas não vejo razão para isso.
Por esse motivo, um par de programadores juniores e seniores geralmente trabalha com a eficácia de dois programadores seniores e por menos de 75% do custo. Se sua meta é a produtividade máxima a um custo mínimo, esse par de junho + sênior deve se tornar a molécula fundamental da sua organização.
Comente Ou talvez não.
Vale a pena notar mais um fator incomensurável: a tendência dos programadores seniores a debates constantes sobre tópicos que são insignificantes - sobre algoritmos, microoptimizações e estilo de código. Se a empresa contratar apenas idosos e não tiver um processo rigoroso de tomada de decisão, centenas de horas de trabalho poderão ser disputadas. Os desenvolvedores juniores geralmente são privados desse problema.
Comente Programadores seniores não esmagarão a água na argamassa, mas farão o trabalho. É por isso que eles são mais velhos. Caso contrário, tenho más notícias para você: seus programadores seniores fingem que são seniores; é melhor contratar mais "juniores" para pagar menos salário, porque não haverá diferença entre eles.
Desenvolvimento de carreira
Se você não contratar programadores juniores, envie outra mensagem para a equipe - que você não sabe como funciona o desenvolvimento da carreira.
Às vezes, quando as empresas dizem que não estão contratando desenvolvedores juniores, quero sacudi-los com seus capuzes e gritar: de onde você acha que os desenvolvedores seniores vêm ?!
- Kate Heddleston (@ heddle317) 13 de setembro de 2018
Às vezes, quando as empresas dizem que não contratam programadores juniores, quero agarrá-los pelos seios e gritar: de onde você acha que os programadores seniores vêm ?!
Comente Se a empresa não possui desenvolvedores juniores, como eles podem enviar um sinal? Nesse caso, você pode enviar um sinal apenas para fora. O autor tem vários problemas com o recebimento e a interpretação do sinal. Por alguma razão, estou recebendo um sinal como este: "especialistas legais trabalharão ao seu lado, você poderá aprender muito e não precisará explicar o óbvio".
Novamente, não se trata de cumprir a dívida cívica corporativa e não de "participar do desenvolvimento" da comunidade de TI. Trata-se de transformar sua empresa em um local de trabalho decente, onde os programadores desejam se estabelecer e permanecer tempo o suficiente para fazer uma contribuição tangível.
Comente Sem um bazar. Apenas para!
Por acaso ouvi de programadores: “Cansado de mudar de cargo. Eu só quero ficar para sempre um programador sênior. ” No entanto, ninguém ainda me disse: "Espero nunca receber um aumento salarial, não aprenderei nada de novo e não serei reconhecido pelos meus serviços". E, curiosamente, os recursos necessários para apoiar carreiristas ambiciosos e assíduos, mas programadores seniores entusiasmados são praticamente os mesmos. Precisamos de maneiras de mudar e reconhecer um trabalho bem-feito, uma quantidade suficiente de recursos educacionais e uma variedade de projetos de diferentes idades no processo de desenvolvimento. Você precisa criar um senso de desenvolvimento, mesmo para aqueles que não estão interessados em promoção.
Comente Um programador sênior é o começo de uma longa jornada. E entre eles também há gradações. Em qualquer projeto complexo, um programador sênior se desenvolverá. No desenvolvimento moderno, praticamente não há teto no desenvolvimento.
Mas não prenda esses caras. A minoria deles. A maioria dos funcionários de TI não serão programadores seniores por 40 anos. Eles sonham em se tornar arquitetos de software, líderes de equipe, diretores técnicos e fundadores de estúdios. E uma empresa que se orgulha de sua indiferença ao crescimento na carreira estará no final da lista de empregadores promissores.
Comente "Encontra-se no final da lista" - é sobre a Netflix? A Netflix liderou uma nova lista de "50 Melhores Lugares para Trabalhar para Novos Pais", com várias outras empresas de tecnologia do Vale do Silício chegando à programação e oferecendo forte concorrência para atrair pais que trabalham .
Recruto apenas desenvolvedores seniores.
O truque é recrutar alguns deles no início de sua carreira.
- Reginald Braithwaite (@raganwald) 17 de setembro de 2018
Contrato apenas programadores seniores.
O truque é contratar alguns deles no início da minha carreira.
Comente Este é o truque mais impressionante. E sou a favor disso. Essas pessoas realmente decidem e podem fazer muito pela empresa. No entanto, há um pequeno problema: como encontrá-los? É aproximadamente claro como ver o "sênior" no programador: a quantidade de conhecimento que ele tem disponível. Em um programador iniciante promissor, você precisa olhar para a bola de cristal e ver o futuro. Eu não vi essa abordagem escalar bem e trabalhar dentro de uma grande empresa. Isso é sempre um risco e você pode facilmente entrar no leite.
Uma das frases mais impressionantes que um programador pode ouvir na entrevista é "Olá, sou líder de equipe, trabalhei aqui por oito anos, começando pelo estagiário". Muito impressionante e muito raro. Essa pessoa é extremamente importante para a empresa - ele sabe tudo sobre a linha de produtos, viu o código para todos os projetos em um raio de cem metros e trabalhou com todos os funcionários da empresa. Ele é capaz de oferecer inovações dentro da empresa como nenhuma outra. E a empresa recebe dividendos incontáveis do trabalho dessa pessoa, porque foi capaz de entender como manter seu interesse por oito anos - cerca de 1/10 da expectativa média de vida. Este é um testemunho do sucesso da cultura corporativa. Este é um sinal de um cargo no qual reina o espírito de luta, no qual o reconhecimento encontra qualquer trabalho bem-feito, e projetos interessantes estão esperando a cada esquina.
Comente Uma das frases mais impressionantes é "pagamos um salário incrível, você mesmo constrói o projeto, convida as pessoas certas e usa as ferramentas que deseja". Uau, isso é legal. Mas isso é do reino da fantasia. Como o que o autor escreveu.
Afirmar que "não contratamos junho" é, pelo contrário, uma admissão aberta de que a empresa não está pronta para desempenhar um papel na carreira de ninguém. Na verdade, isso é uma demonstração de estagnação: a empresa quer atrair programadores experientes e talentosos que farão sua contribuição em prol de apenas um salário. Alguns concordam com essas condições, mas você não verá o melhor trabalho deles.
Comente Afirmar que "alegar" que não contratamos jones "é, pelo contrário, uma admissão aberta de que a empresa não está pronta para desempenhar um papel na carreira de ninguém". - É uma admissão aberta de que o autor tem problemas com cadeias e relacionamentos lógicos.
No entanto, se sua empresa é realmente séria sobre o crescimento da carreira, uma restrição artificial para programadores juniores restringe apenas a linha de pagamento da contratação e diminui o tempo dos funcionários em sua empresa.
Comente Gostaria de saber por que o google e o facebook têm uma barra alta? Eles provavelmente "restringem o pipeline (?) De contratação e diminuem o tempo dos funcionários da empresa".
Escrevendo um ótimo software
Os programadores juniores têm uma série de características únicas que seus colegas mais experientes geralmente perdem. Um deles é o otimismo claro. Outra é a vontade de seguir o líder. Mas talvez a característica mais importante que os programadores juniores ofereçam seja a falta de bagagem. Programadores seniores viram a ascensão e o declínio da tecnologia, falhas de projeto, equipes divididas por conflitos internos e outras formas de vida do setor de TI. Eles acumularam crenças fortes e geralmente tiram conclusões de longo alcance, sugerindo que um cenário de sucesso (ou fracasso) se desenrolará da mesma maneira para outro projeto ou equipe. O que pode levar à falta de vontade de entender as nuances de um novo campo de problemas.
Comente Se é um negócio júnior. Ele pode estourar uma tonelada de código bazhy quebrado com otimismo organizado e falta de bagagem sem conclusões de longo alcance. Apenas um sonho!
As empresas tão ansiosas por contratar apenas pessoas mais velhas costumam esquecer que desaprender o que não se aplica pode demorar mais do que aprender o que se aplica.
- DHH (dhh) 31 de julho de 2017
, , , — , .
. ( ), . , .
- — « , , , , ». — , : , , . , , , , . , . ; , ; , . , .
. . . , .
, , - . — , — , .
. , . Borland.
, , : , , .
. , . , : , .. , . . , , .
One underrated programmer attribute is the ability to write code that average or mediocre engineers can easily read, modify, and extend.
— Jamon Holmgren (@jamonholmgren) 17 2018 .
— , , .
. !
« » «», . — . , .
. , . I.e. , , , ? - , . , , . I.e. , .
: IT « » . , , . , - .
. : , , .
— , , — , . , , . . , , . — .
. , — .
Conclusões
— . — . , , , .. , .
, - — . . — .
. - . . , , . .
, . . , , Netflix , , , .
PS , ?