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.
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.
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
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
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:
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.
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:
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.
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.
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.