Quer saber como avaliar os níveis de senioridade em equipes de desenvolvimento de produtos para sua empresa? Isso não é tão intuitivo quanto deveria. Ser um engenheiro de nível júnior, médio ou sênior não tem a ver apenas com anos de experiência em programação, é um processo longo e complicado. Provavelmente envolve muitas pessoas, uma ou mais entrevistas, mas tudo se resume à habilidade. Isso não significa que um sênior deve ser um especialista em programar qualquer coisa, mas é seguro dizer que os sêniors são muito mais qualificados do que os engenheiros juniores e mid-level. O problema é que esse tipo de candidato não é fácil de encontrar no mercado de tecnologia.
Porém, a diferença entre os três níveis de profissional vai muito além das habilidades de programação. Então, quais são exatamente as diferenças? Vamos começar explicando como os engenheiros de nível sênior, mid e júnior diferem uns dos outros aos olhos dos Ubiminds.
O que classifica alguém como Engenheiro de Nível Sênior?
Se você está procurando níveis mais altos de senioridade nas equipes de desenvolvimento de produtos, verá que um engenheiro sênior geralmente possui (mas não estão limitados a) as seguintes características comuns:
- Tem 5-8 + anos de experiência.
- É um entusiasta da tecnologia: uma paixão intrínseca pela aprendizagem e autodesenvolvimento.
- Não tem dificuldades para resolver problemas e tarefas de complexidades diferentes.
- Pode trabalhar como um cientista para experimentar/testar, validar suposições e conectar os pontos para chegar a uma conclusão.
- Tem a capacidade de desenvolver e orientar outros engenheiros da equipe.
- Consegue compreender todo o escopo necessário para o projeto de responsabilidade de sua equipe, e delega tarefas de maneira eficaz.
- Traz uma visão profunda do desenvolvimento do produto e sugere as melhores formas de desenvolvê-lo, tendo em vista o objetivo final do mercado.
- Oferece fortes habilidades de troubleshootings, análise e de solução de problemas.
- Usa a experiência para identificar riscos e propor soluções.
Então, o que pode ser realizado por um engenheiro sênior?
Entre os níveis de senioridade nas equipes de desenvolvimento de produto, é esperado que um engenheiro de nível sênior:
- Assuma um workflow ‘desenvolvimento-implantação-lançamento’ de forma completa
- Seja claro e atualizado sobre as práticas e tecnologias recomendadas mais recentes.
- Componha e implemente projetos técnicos.
- Defina os riscos iniciais ao trabalhar em grandes iniciativas complexas.
- Seja mentor de membros da equipe de mid level e júnior.
- Faça revisões regulares de código para colegas menos experientes.
- Resolva problemas diferentes de forma independente e assuma problemas sem uma abordagem definida.
- Trate os problemas com design patterns.
- Justifique o valor do negócio com dados e convencerá outros a participarem.
- Eleve o nível do software nas equipes.
- Compartilhe conhecimento e experiência em todos os aspectos da engenharia de software: aquisição, validação e gerenciamento de requisitos; arquitetura/design; desenvolvimento de código; integração; e teste/controle de qualidade.
- Adapte os design patterns para atender às necessidades do momento, por meio de uma análise cuidadosa do problema.
- Lide com problemas de arquitetura envolvendo muitos sistemas, não apenas problemas de programação.
- Faça entrevistas técnicas com os candidatos para verificar se eles possuem as habilidades técnicas para concluir o trabalho.
- Gere ideias e software que forneçam valor de negócio quantificável.
- Pense nos desafios que a equipe enfrentará entre 6 meses a 1 ano, já trabalhando com a gestão para resolver esses problemas agora.
- Construa e implemente um sistema do zero.
- Tenha boas habilidades de comunicação, pois não deve apenas oferecer a decisão certa, mas também explicar ao cliente e à equipe para que todos concordem.
Tenha em mente ao contratar um Engenheiro de Nível Sênior:
Um engenheiro de nível sênior precisa estar alinhado com a estratégia de negócios para otimizar o custo de desenvolvimento e conduzir as decisões técnicas
O que classifica alguém como engenheiro mid level?
Se você está procurando um engenheiro mid level, perceberá que, diferente de outros níveis de senioridade nas equipes de desenvolvimento de produto, ele/ela provavelmente:
- Ter entre 2 a 5 anos de experiência.
- Tem um senso de propriedade do código.
- Acredita que fazer o shipping do código é apenas uma etapa do processo.
- É automotivado, organizado e orientado.
- Sabe como monitorar apps em produção.
- Tem uma paixão intrínseca por aprender.
- Possui experiência em diversos projetos.
- Pode trabalhar sozinho e em equipe.
- É competente em pelo menos algumas áreas do ciclo de vida de desenvolvimento do software (SDLC).
- Pode configurar o ambiente de desenvolvimento por conta própria.
- Pode ser o mentor de engenheiros juniores.
- Demonstra iniciativa e maneiras de resolver diferentes tarefas.
- Tem um entendimento mais profundo da tarefa, portanto, avalia com mais precisão e implementa de forma mais eficaz.
- Está familiarizado com templates e soluções padrão ao criar um aplicativo em seu campo, entende por que eles são necessários e sabe como aplicá-los.
- Possui sólidas habilidades de comunicação. Um engenheiro de mid level sabe como interagir com os membros da equipe, por exemplo, discutir um momento difícil com um designer, esclarece os requisitos incompletos com o analista de negócios, chega a um acordo sobre alguma solução técnica importante com o arquiteto do projeto (se houver) e, é claro, possui as ferramentas adequadas para o desenvolvimento coletivo.
Então, o que pode ser realizado por um engenheiro mid level?
Como você pode imaginar, os engenheiros mid leve têm um bom nível de autonomia. Eles podem:
- Assumir o troubleshooting, combinando habilidades analíticas e de solução de problemas.
- Produzir o código de forma que outras pessoas possam gerenciá-lo facilmente.
- Alterar o código para torná-lo mais eficiente.
- Dividir as tarefas principais em subtarefas menores.
- Revisar o código detalhadamente.
- Trabalhar em pedaços maiores de código de uma só vez.
- Trabalhar em vários projetos (gerenciamento de tempo).
Tenha em mente ao contratar um engenheiro mid level:
Um engenheiro mid level ainda pode precisar do apoio do mentor, pois ele provavelmente não tem experiência em resolver tarefas de todos os níveis de complexidade de forma independente. Portanto, você deve se preparar para ajudá-los caso haja alguma dúvida.
O que classifica alguém como engenheiro de nível júnior?
Na base da pirâmide de senioridade nas equipes de desenvolvimento, você encontrará os engenheiros de nível júnior. Um júnior será reconhecido, principalmente, por:
- Ter entre 1 a 3+ anos de experiência.
- A curiosidade é um dos motivadores mais importantes (aprender constantemente, tanto no trabalho como fora).
- Bons conhecimentos básicos sobre TI (software e hardware).
- Capacidade de aprender a usar as ferramentas.
- Conhecimento de pelo menos uma linguagem de programação com habilidade para escrever código básico.
- Capacidade de aceitar a crítica como caminho para a melhoria contínua.
- Capacidade de trabalhar junto com outras as pessoas e colaborar.
Então, o que pode ser realizado por um Engenheiro Júnior?
Os engenheiros juniores são de grande ajuda quando têm poderes para:
- Corrigir defeitos e trabalhar em tarefas com alguma orientação.
- Trabalhar em ferramentas e recursos internos ou admin-side
- Trabalhar em recursos definidos – ou seja, aqueles previamente delineados com documentação clara que direciona a implementação.
- Familiarizar-se com o codebase sem fazer nada muito importante (evite hotfixes e recursos essenciais).
É importante destacar que o desafio para um júnior é encontrar o equilíbrio entre quando tentar resolver uma tarefa sozinho e quando pedir ajuda.
Ao contratar um Engenheiro de Software Júnior, tenha em mente que:
- É provável que produza código com bugs (pode exigir mais revisões de código).
- Não conhece ou não tem experiência nas melhores práticas e nos conceitos de tecnologia mais recentes.
- Deve ser supervisionado/pode exigir programação em pares dependendo da complexidade da tarefa.
- Não está em posição de estabelecer contato com os clientes, coletar requisitos nem fornecer estimativas.
Indo além dos níveis de senioridade nas equipes de desenvolvimento de produto
Se você leu até aqui, é provável que haja muito mais que gostaria de aprender. Confira estes conteúdos principais:
- Competências comportamentais dos profissionais de tecnologia
- Considerando um novo emprego dev? Conheça as suas opções
- Go Distributed: how tech leadership should build, manage and scale digital product teams
Quer descobrir como trabalhar remoto com TI para empresas dos EUA e Canadá?
Quer desenvolver sua carreira internacional em tecnologia e trabalhar com times de alta performance? Se inscreva no formulário abaixo e deixa que a gente cuida do resto! 😉
Paulo Ross, CEO na Ubiminds. Desenvolvedor de software de longa data, empreendedor, amante das relações humanas e pai dedicado. Capacita equipes para crescer e entregar valor.