Os desenvolvedores de software estão se tornando um ativo mais valioso do que dinheiro. Faltá-los ou perder o controle deles (e ainda não está claro o que é pior) é mais fácil do que nunca. Decidimos conversar sobre como reduzir esses riscos.
/ Flickr / Damien Pollet / CC BY-SAComo mostra um
estudo da Stripe & Harris Poll, 61% dos gerentes de topo (de uma amostra de mais de 1.000 gerentes) consideraram o principal fator que poderia determinar o sucesso de seus negócios como uma equipe de desenvolvedores fortes. Segundo a Forrester, as organizações para as quais os talentos de engenharia são críticos e carentes enfrentam em 2018 a necessidade de pagar aos profissionais uma média de 20% a mais do que o mercado.
Mas mesmo com profissionais decentes à disposição, corporações e startups podem perder lucros - simplesmente por causa de erros no sistema ao trabalhar com pessoas de TI. Em particular, muitos programadores são forçados a oferecer suporte a sistemas ou softwares desatualizados de qualidade francamente baixa. Empresas de todo o mundo estão perdendo cerca de US $ 300 bilhões por ano por causa dessa abordagem.
E, em geral, atrair e reter programadores qualificados no ambiente atual não é uma tarefa fácil. Na “economia de shows”, com modelos flexíveis de emprego fora do padrão, estão envolvidos mais e mais adultos saudáveis: de
acordo com a McKinsey, em 2017, havia até 162 milhões de pessoas na Europa e somente nos EUA. Hoje, o desenvolvedor tem um número crescente de oportunidades diversas para receber uma recompensa monetária aceitável por ele, sem se restringir ao escopo de um contrato de trabalho com um empregador.
Para recrutar uma equipe de engenheiros e criar um ambiente para eles que eles não querem sair, vale a pena seguir algumas regras. Eles não são a única receita para o sucesso na gestão de talentos tecnológicos, mas certamente funcionam se aplicados sem fanatismo.
Contrate com cuidado estrelas da TI
Às vezes, contratar "celebridades da codificação" - eminentes especialistas em segurança da informação ou gênios de grandes cargas etc. - leva ao fato de que em algum momento elas se tornam invioláveis, adquirindo de fato alavancar essas influências na equipe que realmente confia apenas para a gerência. Isso acontece se, com o objetivo de desenvolver uma nova direção ou projeto tecnológico, a empresa deseja montar uma equipe dos sonhos e começar a "aspirar" o mercado, arrebatando os profissionais mais experientes, independentemente de como eles trabalham juntos.
Freqüentemente, em grandes empresas com uma longa história, as “estrelas da TI” sofrem metamorfoses desagradáveis de personalidade devido ao fato de saberem apenas como manter grandes conjuntos de códigos legados. Com uma estrutura opaca de gerenciamento tecnológico, esses funcionários já relutam em compartilhar conhecimentos relevantes com os recém-chegados e começam a sabotar iniciativas que são hipoteticamente capazes de minar seu status na empresa ou departamento.
/ Flickr / Code for America / CC BY-NDAté certo ponto, esses riscos são eliminados ou mitigados pela implementação honesta e consistente dos princípios Scrum e Agile no trabalho da organização (veja abaixo), mas mesmo em uma única empresa de TI, onde metodologias flexíveis triunfaram, essas "técnicas técnicas" podem complicar o trabalho do departamento de TI.
No entanto, a "estrela" não é uma frase. É só que você não precisa tentar "arrancar essas mãos", assim como não há necessidade de evitá-las. Ao entrevistar os desenvolvedores mais experientes, você deve prestar mais atenção às suas habilidades pessoais, incluindo habilidades de trabalho em equipe (na maioria das vezes, o software de massa não é feito por uma única pessoa) e feedback de empregadores anteriores.
Isso não significa que, para “riscos de hedge”, seja necessário reunir muitos especialistas com funções duplicadas na equipe ou preferir profissionais da classe média à classe alta. Mas a estrelagem do desenvolvedor certamente não é um valor absoluto.
Dê aos profissionais a oportunidade de aprender novas habilidades.
Para a maioria dos desenvolvedores, arquitetos de sistemas, líderes de equipe, o principal motivador - vamos deixar o dinheiro até agora - é o aprimoramento profissional. Eles simplesmente gostam de escrever código e criar sistemas que podem fazer algo útil. Eles também gostam quando têm a oportunidade de aprender e fazer seu trabalho melhor do que outros.
Além disso, na comunidade profissional, esse desejo tende a assumir o caráter de uma neurose: os desenvolvedores têm medo de não saber de algo, de serem insuficientemente competentes, mesmo nas áreas em que trabalham há anos. Eles
pertencem à FOMO (medo de perder ou "síndrome do lucro perdido"). Ninguém está impedindo o empregador, que entende essas nuances, de dar oportunidades de desenvolvimento acelerado aos programadores sob sua supervisão.
Felizmente, existem muitas dessas oportunidades. Em primeiro lugar, este é (não importa o quão trivial) um trabalho interessante, graças ao qual o desenvolvedor sênior reforçará seu profissionalismo, e o desenvolvedor júnior, quer ou não, elaborará suas habilidades para as "intermediárias". Desde que o clima da equipe seja favorável para iniciantes estudiosos.
Uma coisa é rebitar lojas de modelos on-line uma a uma e outra criar um produto complexo e atípico. No caso de projetos realmente significativos, questões puramente tecnológicas da competência do departamento de TI assumem uma dimensão real. As disputas rotineiras em torno da escolha de uma tecnologia específica podem ser traduzidas em um canal construtivo - no canal dos benefícios que uma determinada escolha oferecerá ao público do serviço.
Para uma empresa que se preocupa com as qualificações de seus desenvolvedores, na ordem das coisas para criar suas próprias bases de conhecimento tecnológico, pagar por cursos de treinamento e certificação total ou parcialmente, comprar literatura profissional a pedido dos desenvolvedores, realizar hackathons internos.
/ Flickr / Betsy Weber / CC BYUm empregador inteligente, com uma alma calma, permitirá que um engenheiro fale em uma conferência especializada, porque entende que indiretamente promove não apenas a si mesmo como especialista, mas também como empresa. Você não deve ter medo de que um especialista seja atraído para outro local da conferência: se o funcionário hesitar, ele também poderá atraí-lo on-line, diretamente do escritório.
Desenvolvedores de remuneração justa
Quando dizem que o dinheiro
não é
o principal fator motivador para um desenvolvedor, por algum motivo, costumam fechar os olhos para ele. Enquanto isso, apenas pelo fato de os especialistas em TI estarem comprometidos com os princípios do pensamento racional, é especialmente importante que eles entendam quais recompensas podem esperar no futuro próximo e sob quais condições. Se os programadores fossem indiferentes ao dinheiro, não receberiam tanto dinheiro.
Também é importante que o modelo de formação de remuneração seja compreensível e mantenha um vínculo com os benefícios que o especialista traz para a empresa. Acontece que essa regra é violada em relação aos desenvolvedores "em estrela" (veja acima) e os paga em excesso "por status".
Obviamente, os empregadores não incentivam a divulgação de informações sobre os salários de seus funcionários, mas, no final, todo mundo ainda sabe quem recebe quanto, e a óbvia "injustiça" de agregar a qualquer um dos vizinhos no escritório simplesmente desmotiva os programadores.
Para uma startup, faz sentido considerar também um programa de opções para os principais desenvolvedores e manter essas promessas, não importa o que aconteça com os negócios. No entanto, não se pode exagerar - prometa mais do que você será capaz de dar. Muitas vezes, os fundadores de projetos inovadores negligenciam essa regra e prometem uma participação na empresa a quase estagiários. Você deve conhecer a medida - por exemplo, no Buffer, de acordo com o programa de opções, a equipe (menos os cofundadores)
alocou um total de 17% das ações e cerca de 3% aos principais consultores.
Ofereça as opções de carreira certas a tempo
O chefe da empresa ou CTO - dependendo do tamanho e da estrutura da empresa - deve entender qual é a motivação básica dos engenheiros, testadores e projetos sob sua supervisão. Em muitos casos, desenvolvedores e outros especialistas técnicos ficam desapontados com a empresa e deixam a empresa porque não veem para onde devem ir a seguir.
Claro, não existe um caminho único para todos e para todos, os desenvolvedores são muito diferentes. Você precisa aproveitar as necessidades de cada funcionário individualmente. Digamos, para muitos desenvolvedores, um excelente caminho de desenvolvimento é se tornar um líder de equipe: sem se afastar da programação, comece a ser mais responsável pelo produto, tenha voz ao mudar a pilha tecnológica.
/ Flickr / Damien Pollet / CC BY-SAMas nem todos os engenheiros querem assumir nada além de tarefas de desenvolvimento. Uma tentativa de "treinar" até mesmo um gerente técnico de nível básico de tal especialista provavelmente o levará a simplesmente desistir. Felizmente, o desenvolvimento de software é uma área em que o crescimento horizontal ilimitado é possível se a empresa tiver projetos que apresentem desafios dignos aos olhos dos desenvolvedores seniores.
Então fale com os desenvolvedores: tanto no início, durante as entrevistas, quanto quando eles já estiverem no seu estado. Se você é um gerente do mais alto escalão, os gerentes diretos (chefes de departamento, líderes de equipe etc.) o ajudarão a entender as necessidades profissionais e de carreira dos programadores comuns.
Crie uma cultura na qual o desenvolvedor seja primário
Esta recomendação se aplica principalmente a empresas de TI para as quais o valor dos engenheiros é ainda maior que a média do mercado. O COO da Stack Overflow Jeff Szczepanski
recomenda promover dentro da empresa a cultura que ele batizou de desenvolvedor primeiro, ou seja, onde o programador com suas necessidades está na vanguarda.
Algumas circunstâncias e situações que desmotivam os programadores podem não estar claras para um gerente que não havia trabalhado com eles antes. Por exemplo, se um quinto do seu tempo de trabalho, um desenvolvedor de software qualificado é forçado a escrever relatórios para uma pessoa que não escreveu uma única linha de código, existe o risco de que mais cedo ou mais tarde (e mais cedo) ele desista e saia, mesmo com um salário maior que a média para o mercado.
Portanto, em empresas cujo sucesso se baseia principalmente no trabalho de desenvolvedores, é importante construir a estrutura organizacional correta, onde entre programadores e gerentes clássicos existem vínculos intermediários - base e gerência intermediária, que são versados no trabalho de engenheiros.
É importante e, sem perder o controle dos desenvolvedores, evitar o microgerenciamento, que pode prejudicar sua produtividade. Os gerentes sem um passado de TI que frequentemente tentam lidar com seu próprio sentimento de desamparo geralmente cometem esse tipo de hipercontrole ou, pelo contrário, os executivos iniciantes que eles mesmos codificaram recentemente e agora têm medo de não conseguir lidar com novas responsabilidades.
Por fim, um dos motivos típicos pelos quais os desenvolvedores costumam deixar grandes empresas é a
falta de autonomia na tomada de decisões importantes, bem como a escolha limitada e excessiva de ferramentas, às vezes não devido a outras considerações corporativas.
Cuidar - ou melhor, “cuidar de uma pessoa saudável” - é expresso em desenvolvedores em vários níveis: da compreensão das realidades atuais do projeto (talvez o projeto permita que os “técnicos” trabalhem em casa 1-2 dias por semana?) À ergonomia do espaço em que funcionários (nem todos os profissionais de TI, por exemplo, gostam de espaços abertos).
Vincule o desenvolvimento de TI aos objetivos da empresa
Freqüentemente, empreendedores e gerentes culpam os desenvolvedores por não “entenderem o cenário geral” e negligenciarem os objetivos de negócios da empresa. Em vão. Arquitetos, engenheiros e codificadores de sistemas não precisam raciocinar nas categorias financeira e de mercado. Sim, o “pensamento sobre o produto” é ótimo, mas é criado no ambiente certo.
Para que os desenvolvedores façam o que é útil para os negócios, você precisa colocá-los em condições adequadas. O objetivo é matar dois coelhos com uma cajadada só. Por outro lado, para garantir que os desenvolvedores não tenham perguntas como "Por que estamos fazendo isso?", Por outro lado, para garantir que o gerenciamento não exija resultados de gerentes técnicos que são fundamentalmente incompreensíveis para as pessoas de TI. E esse objetivo é alcançável.
/ Flickr / Paul Downey / CC BYNos últimos 20 a 25 anos, muitas estruturas e códigos das melhores práticas de tecnologias da informação foram desenvolvidos e continuam a melhorar. Entre eles, por exemplo, ITIL e COBIT. O primeiro
foi criado para minimizar a burocracia e criar regras reproduzíveis compreensíveis para a execução de processos de rotina em TI. E o
segundo , por sua vez, foi originalmente desenvolvido para conectar e sincronizar as necessidades dos negócios com os princípios do desenvolvimento de software.
Além disso, a implementação de metodologias ágeis de desenvolvimento, principalmente o Scrum, ajuda a criar um ambiente saudável para criar e garantir a operacionalidade dos produtos de TI. Para entender como sua empresa cumpre os princípios do Scrum, existe um excelente teste do
Scrum Open . Os mecanismos adotados em metodologias flexíveis ajudam a nivelar muitos dos riscos descritos acima.
Por exemplo, uma pessoa com um papel especial - "Scrum-master" - concentra-se, em particular, em como fazer a transição da equipe para um verdadeiro trabalho em equipe. Inclusive, por um lado, elimina os medos dos veteranos da equipe, que têm medo de se tornar desnecessários; por outro, estabelece que os recém-chegados respeitem as "estrelas da TI" locais.
Entendemos o valor dos desenvolvedores e tentamos deixá-los à vontade para trabalhar no 1cloud . No momento, estamos expandindo nossa equipe e teremos prazer em convidá-lo para o papel de desenvolvedor líder de back-end . Além de coordenar o trabalho dos colegas, você estará envolvido em arquitetura e mecanismos para a interação de nossas soluções com outros sistemas.
Como requisitos básicos: experiência em desenvolvimento industrial em C # e na plataforma .NET; bons conhecimentos de SQL, T-SQL e experiência com o MS SQL Server; experiência com Git, experiência na construção de processos de CI / CD. Estamos considerando candidatos em tempo integral. Nosso escritório está localizado no centro de São Petersburgo (metrô Chernyshevskaya).
Sobre o que escrevemos em um blog corporativo: