Sênior: O indispensável para um desenvolvedor se tornar
Hoje quero compartilhar com vocês um tema que para alguns desenvolvedores pode ser bastante confuso e repleto de inseguranças: A transição para a tão almejada Senioridade.
O cargo de desenvolvedor Sênior é obtido com diferentes critérios, variando de empresa para empresa. No entanto, duas métricas são quase sempre seguidas: Tempo de experiência e capacidade técnica.
Caso você já tenha uma experiência razoável (+4 anos) e quer saber o que lhe falta para ficar apto ao nível de um Sênior, os tópicos abaixo abordam brevemente alguns assuntos que foram escritos para você.
“Espirito” de Sênior
Antes de expor as skills técnicas, é importante que você tenha em mente que se tornará uma referencia para os mais juniores da sua equipe, com isso, sua proatividade e habilidade em resolver problemas complexos são fatores que serão cobrados nessa fase da sua carreira. É sempre bom lembrar que para ser Sênior não é obrigatório ter um perfil de liderança, não, nem sempre, no entanto soft skills podem ajudar, e muito, no dia a dia de trabalho.
Velocidade e Produtividade
Medir a velocidade de desenvolvimento sempre foi uma tarefa difícil, na maioria das vezes repleta de falhas e equívocos, é muito covarde medir de maneira simplista algo tão complexo e cheio de variáveis (literalmente). Porém temos que concordar que um dos principais fatores que distingue um Sênior de um Pleno e Junior é sua velocidade e produtividade na resolução de problemas. Isso impacta fortemente nas métricas da equipe, fazendo com que um balanceio mais coeso seja feito por parte da gestão na construção dos times.
Linguagens e Frameworks
Ter um bom leque de linguagens e frameworks em sua stack é indispensável para assumir tal posição. Vamos la, em nenhum momento disse que você precisa ser proficiente em tudo que existe no mercado, até por que é impossível, no entanto, é necessário ter uma real experiência e fundamentação técnica em um pacote de linguagens que o torna apto a construir, manter e incrementar um sistema.
Arquitetura e Padrões
O bom conhecimento sobre arquitetura permite ao desenvolvedor ter mais alternativas e uma melhor fundamentação para as escolhas em um projeto. Para cada sistema pode existir uma estratégia, tudo varia de acordo com os requisitos, com isso, diferentes abordagens são tomadas pensando exatamente no cenário apresentado. A assertividade dessas escolhas faz com que o software se construa com um bom desempenho, confiabilidade, escalonamento e manutenibilidade. Aqui você consegue se aprofundar mais no tema e ter melhores exemplos.
Testes
Por melhor planejado que seja, sempre existe erros em um software, e nem sempre as habilidades manuais do desenvolvedor e QA serão capazes de encontra-los. Com isso, ter conceitos muito bem fundamentados sobre esse tema é indispensável a um Sênior de respeito, sendo possível formular um plano de teste e após isso focar na estrutura de automatização mais pertinente a sua arquitetura. Mas lembre-se, independente da linguagem, o conceito é o mesmo.
CI/CD
No mundo do desenvolvimento moderno e automatizado esse tópico é cada vez mais necessário e pertinente. Ter conhecimentos sobre Integração continua (CI) e Entrega Continua (CD), faz com que o desenvolvedor tenha muito mais autonomia, segurança e agilidade no processo de deploy.
Cloud Computing
Saber usar provedores de Cloud é cada vez mais essencial, assim como CI/CD, ter uma boa experiência e conhecimento nesse tema torna o desenvolvedor mais independente em suas atividades. Nunca é demais lembrar que existe uma área focada nesse assunto, nossos amigos de Infra, no entanto, se sentir confortável nesse ambiente é essencial para um Sênior.
Conclusão
Por fim, é sempre bom lembrar que um Desenvolvedor Sênior não é um super-herói, ele tem dúvidas e também desconhece muitos assuntos, mas seu olhar atento e assertivo o torna diferente das demais categorias, fazendo com que evolua com rapidez e aprenda as tecnologias certas, para o projeto certo e no tempo certo.
Por hoje é só galera, espero que gostem! :)