Do blog

Início / Blog / Avaliação de candidatos a desenvolvimento: Escolhendo os guerreiros certos

Avaliação de candidatos a desenvolvimento: Escolhendo os guerreiros certos

Imagem do filme Seven Samuri. O personagem principal, Kambei, escolhe seus guerreiros.

Resumo: O gerente de equipe do number8, Stuart Matamoros, compartilha suas dicas sobre como avaliar candidatos a desenvolvimento e escolher os guerreiros certos para suas equipes de desenvolvimento.

Muitos gerentes de equipes de desenvolvimento de software têm dificuldade em avaliar os candidatos a desenvolvimento durante o processo de recrutamento. Nessas entrevistas, é importante manter o foco no objetivo número um: encontrar um colega que ajude a combater o verdadeiro inimigo, a complexidade.

No setor de desenvolvimento de software, pode ser um desafio encontrar uma pessoa que consiga equilibrar cronogramas ambiciosos e criar um código sustentável, legível e eficiente. Se você escolher um membro da equipe com a atitude errada ou com um talento abaixo da média, provavelmente só tornará sua carga mais pesada. Mas, se escolher um membro da equipe corretamente, poderá ter uma chance de lutar.

O truque está em como você avalia seus guerreiros durante o processo de entrevista. 

Se você é um cinéfilo como eu, deve se lembrar do filme épico de Akira Kurosawa, Sete Samurais. No filme, há uma cena em que o líder da equipe de samurais, Kambei, está escolhendo guerreiros para lutar contra um grupo de bandidos que está atormentando a aldeia de um fazendeiro. O processo de seleção de Kambei é bastante simples: ele convida os candidatos a entrarem por uma porta em uma sala desconhecida. Em seguida, ele avalia suas reações. Eles estão caminhando em direção ao perigo? Eles serão capazes de reagir com sucesso ao que encontrarem? 

Assim como Kambei, quando estou avaliando candidatos a desenvolvedores, gosto de fazer um exercício em que eles executam seu trabalho na minha frente. Em seguida, eu os avalio em cinco áreas principais: conhecimento, habilidade com o código, arquitetura/design, refatoração/testes e peopleware. 

 

1. Conhecimento

A primeira coisa que quero avaliar é o grau de familiaridade do candidato com suas ferramentas. Presto atenção especial à rapidez com que eles navegam pelos menus, usam atalhos e à facilidade com que criam artefatos em cada ferramenta. Em nossas avaliações ao vivo no number8, analiso especificamente o seguinte:

Armazenamento de dados
Linguagem/estrutura de desenvolvimento web
Estrutura de teste

 

2. Código de Artesanato

O principal produto para a maioria dos engenheiros de software é o código. Então, na verdade, estamos entrevistando autores colaborativos para escrever e revisar diferentes partes do mesmo texto. Portanto, temos que aderir a certos princípios se quisermos que outras pobres almas entendam nosso código.

Para os talentos juniores, os princípios de codificação às vezes podem ser facilmente descartados, mas os desenvolvedores profissionais sabem disso. Um bom código significa que outros desenvolvedores podem ler o texto como uma história. O código deve ser modular o suficiente para atribuir partes separadas de uma solução para cada membro da equipe manter. Em essência, um bom código deve ser:
Limpo | D.R.Y. | Legível | Expressivo

 

3. Arquitetura e design

Nessa área, quero ver o entendimento que o candidato tem dos serviços e como ele distribui as responsabilidades da solução proposta. Presto atenção específica às seguintes atividades:

  • Camadas de solução: Há diferentes abordagens para diferentes problemas. Quero ver o que é apresentado e os motivos por trás das decisões.
  • Modelo de dados: Uma coisa que todo software tem são dados. Um candidato sempre precisa definir entidades, do mundo real ou abstrato. Os relacionamentos e as interfaces são especificados para que esses elementos se comuniquem entre si.
  • Design de API: Uma maneira limpa e moderna de fornecer comunicação é criar APIs. O que está incluído na interface e como ela é explicada é muito informativo durante uma entrevista.

4. Refatoração e testes

Seja para tornar as coisas mais claras ou para resolver um bug, na maioria das vezes os engenheiros de software estão lendo e alterando o código que outra pessoa escreveu. Por isso, sempre presto muita atenção aos testes. Acredito que oúnica maneira de garantir que um candidato esteja realmente corrigindo um problema (em vez de piorar as coisas) é executar testes de criação. Os testes unitários e de integração simplesmente não são ideais no mundo de hoje.

 

5. Peopleware

Peopleware é um livro e um termo criado pelo engenheiro de software americano Tom Demarco. O livro explica a importância de entender como um desenvolvedor de software se encaixa na cultura de uma organização e como ele trabalhará bem com o restante da equipe. Ao avaliar essa área, presto especial atenção ao seguinte:

  1. Habilidades de comunicação: Observo se o candidato faz perguntas. Se eles não entenderam minha solução, pediram esclarecimentos? O outro lado da comunicação é ouvir. Eu sempre avalio a capacidade do candidato de seguir instruções e o quanto ele presta atenção aos requisitos descritos.
  2. Feedback: Alguns candidatos são tímidos e alguns desenvolvedores simplesmente não conseguem aceitar críticas. É importante ter um bom entendimento de como um candidato reagirá ao feedback, pois isso pode representar um fardo para a equipe.
  3. Trabalho em equipe: Eu faço perguntas ou modificações de última hora nos requisitos durante o exercício, a fim de determinar se o candidato consegue fazer concessões e delegar tarefas a outros colegas de equipe. Usar ou refatorar o código de outra pessoa é um acompanhamento natural da introdução de alterações de última hora. Isso também aumenta a pressão no final da entrevista e imita a realidade. A reação que recebo dos candidatos quando altero os requisitos ou pergunto se eles preferem usar código externo sempre me permite saber se eles vão elevar ou rebaixar as pessoas durante um projeto, ou se têm um grande ego que pode constituir uma responsabilidade no projeto.

Depois que essas cinco áreas forem avaliadas, você saberá se encontrou seu guerreiro.

Concluindo, a engenharia de software é uma profissão complexa e interessante, e os engenheiros estão sempre mudando de um estado de habilidade para outro. Seus candidatos podem ser completos ou especialistas, mas sempre há blocos básicos específicos que são comuns a todos. Avaliar os candidatos ao desenvolvimento com os blocos delineados neste artigo lhe dará a capacidade de avaliar facilmente o que um novo membro da equipe trará para a mesa.
Lembre-se de que, ao realizar uma entrevista, você não está tentando encontrar um gênio ou aceitar todos os candidatos; você está simplesmente procurando guerreiros que estejam suficientemente preparados e tenham a atitude certa para realizar o trabalho e lutar ao seu lado.

 

Imagem do gerente da equipe number8 e autor do artigo, Stuart Matamoros

Sobre o autor: Stuart Matamoros é gerente de equipe e está na number8 há 9 anos. Ele foi fundamental na criação de nosso processo de avaliação de candidatos, que inclui uma breve avaliação, um desafio de codificação de avaliação ao vivo e uma avaliação de personalidade.

Deseja adicionar um desenvolvedor experiente à sua equipe?

O number8 recruta e qualifica desenvolvedores de nível médio e sênior para equipes de desenvolvimento baseadas nos EUA. Se você tiver lacunas de habilidades específicas ou estiver com dificuldades para encontrar grandes talentos, o number8 pode ajudar. Conecte-se conosco hoje mesmo ou continue explorando todos os nossos serviços de desenvolvimento de software personalizado e remoto aumento da equipe a maneira do number8.

Vamos trabalhar juntos

Forneça suas informações para conversar com um executivo de contas da number8 sobre suas necessidades de desenvolvimento hoje mesmo e sinta como é ser ouvido antes de ser vendida uma solução.

Permita-nos ajudá-lo a agregar profissionais altamente qualificados, desenvolvedores versáteis para a sua equipe.

Direitos autorais © 2023-2024 number8. Todos os direitos reservados.