O autor do livro sobre a construção de uma carreira, Roman Zhikharev, conversa com o diretor técnico do G-Core Labs , Vasily Mikhaleny, sobre o que as empresas de TI modernas esperam de seus funcionários.- Como você acha que o conceito de valor para desenvolvedor se parece?Para aumentar seu valor, você precisa fazer três coisas:
- Estudar as tecnologias demandadas no mercado hoje e amanhã.
- Desenvolver habilidades universais (habilidades sociais).
- Assuma mais responsabilidade.
- Vamos começar com o mais simples. Quais tecnologias dominar?As tendências hoje estão mudando incrivelmente rápido. Portanto, gostaria de expressar alguns princípios gerais, em vez de descrever tendências ou fazer previsões. A configuração ideal de experiência e habilidades, considero uma pessoa com experiência em T (pessoas em T). A essência do termo é que, como especialista em um campo técnico específico, ele deve ter uma idéia do que está acontecendo nos vizinhos.
Por exemplo, um desenvolvedor de back-end, além de um profundo conhecimento dos recursos da linguagem (por exemplo, Python) e estruturas comuns, você definitivamente precisa conhecer e, de preferência, poder construir o processo de teste, montagem e implantação (pipeline de CI / CD, por exemplo, em Jenkins). Ele deve conhecer os recursos do ambiente em que o código funcionará e como garantir a tolerância a falhas nele. Por exemplo, para lidar com a AWS / Azure / GCE ou a instalação local do k8s, consiga corrigir o erro nas ferramentas de implantação escritas em golang.
Em algumas áreas, o valor aumenta a disponibilidade de certificados. Ao contratar, seu portfólio é importante, é mais fácil demonstrar suas habilidades e código participando de projetos de código aberto ou publicando seus projetos de estimação no github.
- Você mencionou várias soluções tecnológicas populares. Acontece que precisamos aprender o que há na tendência?Não necessariamente. Você pode ir atrás da propaganda no mercado ou na direção oposta. Se você está interessado em tecnologia rara e não deseja correr atrás da moda, há uma chance de aumentar seu valor devido ao conhecimento exclusivo.
Os gigantes da tecnologia moderna são flexíveis o suficiente e podem se atualizar com sucesso em seus sistemas. E, tanto quanto se pode julgar, o Yandex e o Google não têm um legado impressionante de soluções baseadas em tecnologias desatualizadas.
Mas existem setores mais conservadores:
bancos internacionais , gigantes industriais e de energia e a indústria de defesa. É muito difícil para eles encontrar especialistas em sua própria pilha e eles estão prontos para pagar um bom dinheiro. Um bom exemplo é o uso do Perl "moribundo" em booking.com e mail.ru. Ou
COBOL , desenvolvido nos anos 60, e ainda usado em algumas instituições financeiras dos EUA.
- E então o que se entende por habilidades universais?A capacidade de se comunicar com outras pessoas aumenta significativamente o valor do desenvolvedor para a empresa. Na prática, isso significa que uma pessoa pode levantar um problema, fundamentar sua opinião, propor uma solução, identificar corretamente as partes interessadas, saber como interagir efetivamente com diferentes pessoas (flexibilidade), resolver construtivamente conflitos, negociar, treinar, orientar e orientar. E até falar em público ou presente.
Isso também inclui a capacidade de falar o mesmo idioma que o designer e a compreensão dos motivos de seu líder. Penso no conhecimento de inglês e, portanto, tudo está claro.
- O que significa assumir mais responsabilidade?Nós nos esforçamos para contratar pessoas que parecem um pouco mais longe do que sua ferramenta de trabalho (tecnologia) e nos concentramos em valores para o usuário final. Por exemplo, aqueles que oferecem opções para otimizar processos de desenvolvimento, estão procurando soluções para o problema de um cliente e estão prontos para fazer esforços para discutir e implementar mudanças.
Infelizmente, muitas vezes você pode ver desenvolvedores que criam um culto em torno de suas ferramentas. Mas você precisa entender que, se o código não entrar em produção no prazo, a qualidade ou as ferramentas utilizadas não importam. Este código não trouxe lucro para a empresa.
"Isso me lembra os valores ágeis." Existe uma conexão?Sim Há um conjunto de
práticas chamadas DevOps que desenvolve valores ágeis. Ajuda a empresa a mudar seu foco de formalizar processos para interagir internamente para criar valor. Mas isso é impossível sem assumir a responsabilidade pelo resultado final de todos os membros da equipe.
Um bom desenvolvedor entende a cultura DevOps e sabe como aplicá-la em sua equipe e, idealmente, na empresa. Ou até planta. Por exemplo, uma das práticas do DevOps é o CI / CD (as versões mais frequentes). E se você realmente deseja fazer lançamentos frequentes (pelo menos uma vez por dia), não poderá fazer isso na ausência de automação de integração e teste, automação e estabilização do processo de implantação, separação do lançamento da implantação (alternância de recursos), que está funcionando e é clara para o monitoramento, os desenvolvedores de preservação compatibilidade com versões anteriores, mecanismo de reversão de alterações etc. Ficará óbvio para você que a responsabilidade de um bom desenvolvedor não termina quando você transfere a tarefa para o departamento de QA.
O valor de lançamentos frequentes parece óbvio para todos.
O Anti-DevOps é uma divisão do processo de produção em dois ou mais poços funcionais: desenvolvimento, teste, operação, segurança. Como resultado, cada função resolve apenas seus próprios problemas.
O senso geral é que a equipe deve assumir a responsabilidade pela qualidade do produto, o valor dos recursos para o cliente, o tempo e, em menor grau, a conformidade formal com os requisitos na descrição da tarefa. O desenvolvedor não deve ter preconceitos para limitar sua responsabilidade: “Eu já transferi a tarefa para teste. Não posso ajudar em mais nada. "
Quanto mais responsabilidade, maior o impacto nos resultados da empresa. Em uma boa empresa, as pessoas que influenciam seu crescimento sobem na carreira.
A responsabilidade da equipe requer uma boa comunicação. Construir tudo isso sem as habilidades de comunicação construtiva e trabalho em equipe é quase impossível.
- Em todo lugar, então?Em uma grande empresa com processos maduros já definidos, a aceitação da responsabilidade significará fazer algo além do trabalho em seu projeto: organização de reuniões, conversas sobre tecnologia, hackers; participando de pré-venda ou treinamento interno.
Conclusões?Em resumo, podemos dizer que a
estratégia mais
ideal para o desenvolvimento pessoal é
adquirir habilidades de comunicação para
expandir de maneira mais eficaz
os limites de responsabilidade pelo que acontece com seu produto e em sua equipe ou empresa.