O que é um desenvolvedor sênior e como posso me tornar um?

O que é um desenvolvedor sênior e como posso me tornar um?

7 de May, 2020 0 By António César de Andrade
Click to rate this post!
[Total: 0 Average: 0]


Tornar-se um desenvolvedor sênior é algo para o qual muitos de nós lutamos enquanto continuamos nossa jornada de código e construímos nossa carreira. Mas o que realmente significa ser um desenvolvedor “sênior”?

O que ser desenvolvedor sênior não é

Antes de começarmos, vamos tirar isso do caminho. Contrariando o que você verá em mais de 95% das ofertas de emprego on-line, um Desenvolvedor sênior não está estritamente correlacionado apenas ao número de anos em seu currículo.

Embora seja verdade que, na maioria das vezes, muitos anos de trabalho normalmente trazem muita experiência. E com algumas empresas, você pode se dar bem com isso. Mas não é a única qualidade que prova que alguém está no nível Sênior.

Mas esse é um problema comum no mundo do software e pode levar a altas expectativas com baixa entrega. Também pode levar a conflitos dentro da equipe quando seu novo desenvolvedor sênior de 15 anos 10x se recusa a trabalhar com outras pessoas.

Então, o que podemos fazer para nos preparar para esse papel?

O que faz um desenvolvedor sênior?

Ao olhar para trás, ao longo da minha carreira, nos desenvolvedores da minha equipe que eu mais admirava e respeitava, tudo se resumia a quatro qualidades:

  • Experiência
  • Liderança
  • Mentoria
  • Capacidade técnica

Não é bom o suficiente considerar qualquer uma delas como a única representação de como alguém se sairá em equipe. Cada desenvolvedor é único e pode ser mais forte com uma qualidade que com outra. Mas é importante ver como essas qualidades se reúnem para determinar como alguém ajudará sua equipe a crescer.

Vamos dividi-los um pouco.

Experiência

A experiência é tipicamente considerada como anos de trabalho e, embora não seja completamente imprecisa, não conta a história toda.

Assim como todo desenvolvedor é único, a experiência deles também é. Enquanto um desenvolvedor pode ter passado cinco anos em uma posição intensiva em que trabalhava para resolver difíceis desafios técnicos todos os dias, outro poderia estar se esforçando em uma loja local onde sua única responsabilidade era atualizar o site toda semana.

E isso não é necessariamente uma coisa ruim! Cada um de nós tem sua própria jornada e precisa equilibrar nossas vidas para se adequar a ela. Mas não é realista dizer que esses 5 anos foram os mesmos.

Então, o que realmente significa experiência?

Reconhecendo padrões de trabalhos anteriores

Todo desenvolvedor tem uma história (se eles se lembram ou não) de um erro aleatório que eles encontraram na experiência de desenvolvimento. Isso pode ser algo que lida com Javascript, webpack ou mesmo com seu sistema operacional e simplesmente não faz sentido!

Mas seja através de um colega ou pesquisando no Google, você descobre. E três meses depois, quando você está trabalhando em outro projeto e encontra a mesma coisa, nem precisa pesquisar no Google ou simplesmente já sabe o que pesquisar no Google. Você já sabe qual é o problema e pode superá-lo rapidamente e seguir em frente.

Esse é o tipo de experiência que faz a diferença. Ser capaz de reconhecer padrões, seja por causa de um erro ou porque foi super bem-sucedido, é o que ajuda cada um de nós a crescer. Essas são as experiências que ajudam uma equipe a crescer quando outras pessoas ficam paralisadas e você pode eliminá-las.

Reconhecendo o que você não sabe

Também é importante entender o que você não sabe. Eu acho que parte do que contribui para o meu próprio luta pessoal com síndrome de impostor é que quanto mais eu aprendo, mais percebo que não sei.

Mas isso não deve ser encarado como algo ruim ou assustador, deve ser inspirador. Isso significa que sua arte em que você está trabalhando tem muito mais coisas interessantes para explorar!

Onde isso é importante, é perceber como isso afeta seu trabalho e o resto da equipe. Por exemplo, não ajuda ninguém se você agir como se soubesse de tudo e se comprometer com grandes quantidades de trabalho. Quando você se compromete com esse trabalho e, na verdade, não o entende, isso pode atrapalhar o seu sprint, o que pode frustrar toda a equipe (e o cliente).

Seja no planejamento ou durante o desenvolvimento, não tenha medo de pedir ajuda. Venha para o ar e jogue suas mãos para cima! Só porque você é o único desenvolvedor sênior, não significa que você não pode aprender algo com um membro da equipe Junior.

Tente dar uma boa olhada em onde você esteve, o que você entende e onde você pode se beneficiar para descobrir mais.

Liderança

Como membro sênior de uma equipe, eu esperaria que um desenvolvedor tivesse uma tendência natural de liderar. Embora isso não signifique que você tenha que ser um líder técnico de verdade em um projeto ou tomar alguma das decisões finais, isso significa que você deve ter um nível básico de capacidade de ajudar a impulsionar o projeto

Compreendendo a imagem maior

Se você trabalhou em projetos com membros da equipe, deve saber que cada projeto ou recurso geralmente vem com um monte de histórias para serem trabalhadas. Cada história deve ser uma peça focada que ajude a alcançar um objetivo maior.

Onde isso se torna desafiador é se ninguém na equipe entende como cada uma dessas histórias ajuda a alcançar esse objetivo maior. Como desenvolvedor sênior, você poderá ver como cada peça se encaixa no quebra-cabeça e por que a história é escrita com os critérios específicos de aceitação. E se você não souber, saberá como obter as respostas e garantir que elas sejam comunicadas à equipe.

Se você não tiver certeza da direção, tente dar um passo atrás. Tente ver onde ele se encaixa. Ajude a liderar a equipe do projeto para esse objetivo final.

Ajudando diretos membros menos experientes da equipe

Isso ocorre naturalmente na capacidade de ajudar a orientar aqueles em nossa equipe que são mais jovens ou menos experientes. É comum os desenvolvedores perderem o foco no cenário geral, mas, como acabamos de discutir, um desenvolvedor sênior deve ter uma boa ideia do projeto geral e de onde as histórias diferentes se encaixam no épico maior.

Ajude a orientar outras pessoas da sua equipe para colocá-las no caminho certo. Embora seja benéfico para todos entenderem como tudo se encaixa no quadro geral, às vezes faz mais sentido ajudar um indivíduo a se concentrar em como sua tarefa específica se encaixa.

Tente reconhecer essa luta ao trabalhar com outras pessoas, incentivando-as a fazer mais perguntas ou ajudando a orientá-las se elas não estiverem no caminho certo, enquanto você revisa o código delas.

Mentoria

Muitas vezes, é mais conveniente ficar de olho no seu trabalho e não ter que se preocupar com o que mais alguém está fazendo, mas isso realmente está beneficiando alguém?

Ajudando a formar outros membros da equipe

Você pode ser o chamado 10x developer, mas fazer tudo sozinho e não ajudar os outros só pode desacelerar a equipe em geral. Muitas vezes, você fica preso pegando as peças que poderia facilmente pegar se passasse um segundo extra emparelhando-se com outra pessoa da sua equipe.

Também é ruim para o moral. Ninguém quer se sentir sozinho em um projeto e ainda mais como um júnior. O software é um mundo grande e assustador; um pouco de orientação pode ajudar muito a outros a se tornarem mais produtivos e, posteriormente, incentivar um ambiente mais feliz e menos estressante.

É fácil esquecer que éramos todos membros de uma equipe júnior de uma só vez. Embora você possa considerar as coisas como certas, os conceitos podem ser realmente desafiadores para os outros entenderem.

Lembre-se de que estamos juntos nisso. Celebre as vitórias, grandes ou pequenas. Se alguém está lutando, procure ajuda.

Compartilhamento de conhecimento

Compartilhar conhecimento é algo com o qual muitas equipes lutam. Embora todos esperemos que haja uma maneira de realizá-lo, na maioria das vezes isso não é resolvido. Então o que nós podemos fazer?

Decida compartilhar o que você sabe. Você acabou de refazer a lógica de negócios principal? Ofereça 30 minutos para orientar todos pelo código. Emparelhe e compartilhe a tela com o revisor de código, se eles estiverem com dificuldades para entender.

Isso é algo que podemos incentivar todos a fazer. Você naturalmente aprenderá mais apresentando seu trabalho reforçando o que acabou de trabalhar. Isso é útil se você é um Sênior ou é a primeira vez que abre um editor de código.

Capacidade técnica

Eu queria intencionalmente deixar isso por último, pois, embora seja importante, há mais aspectos na jornada de se tornar um desenvolvedor sênior do que apenas ser realmente muito bom em alguma coisa.

Capacidade de se mover rapidamente

Como desenvolvedor sênior, eu esperaria que outro desenvolvedor sênior se tornasse produtivo em algo mais rápido que um desenvolvedor júnior. Se eles são especialistas em Javascript, esperamos que eles entendam os princípios e padrões principais da linguagem.

Mas voltando à idéia de reconhecer o que você não sabe, não é razoável esperar que todos os desenvolvedores seniores saibam tudo. Eu não consideraria um especialista em Ruby menos um desenvolvedor sênior porque eles não sabem Javascript, mas eu esperaria que eles entendessem como aplicar o que sabem ao criar e aprender outro idioma.

Promovendo padrões de software

Na maioria das vezes, o padrão de código que você acabou de criar não é novo. E tudo bem! O objetivo de criar um ótimo software não é necessariamente único em todas as soluções.

E por causa disso, podemos aprender com o trabalho passado, vendo o que foi bem-sucedido e o que talvez não tenha passado tão bem para encontrar padrões que funcionem para você e sua equipe.

Padrões como MVC (Model View Controller) não se tornou popular sem razão. Os desenvolvedores aprenderam com o passado e com seus colegas que resolveram grandes desafios de software. Com esse conhecimento, eles podem aplicar as soluções ao seu próprio trabalho. Não se trata de reinventar a roda, trata-se de resolver desafios e criar um bom produto.

Todos temos nossas próprias jornadas únicas pela frente

Não importa o que alguém diga, todos nós temos nossas próprias jornadas de código exclusivas. Isso visa encorajá-lo e inspirá-lo a se tornar um desenvolvedor geral melhor e entender como o seu trabalho afeta o resto da equipe.

Embora você possa ter sucesso sem levar essas coisas em consideração, pode estar perdendo as principais características que podem fazer as pessoas não quererem trabalhar com você da perspectiva do ser humano.

Qualquer que seja sua jornada, lembre-se dessas coisas à medida que se torna um desenvolvedor melhor!

O que você acha que faz um bom desenvolvedor sênior?

Você acha que eu estou no local ou a caminho? Compartilhe comigo no Twitter!





Fonte