Como contratar programadores – Técnicas

No post anterior, onde falei sobre a essência da contratação de programadores, disse que hoje falaria sobre algumas poucas técnicas para lhe ajudar na contratação de bons programadores.

A análise do currículo

Obviamente a primeira coisa que faço é uma análise do currículo. Neste ponto todo cuidado é pouco, somos brasileiros, arrumamos um jeitinho para tudo e aqui não é diferente. Logo, eu me apego ao que não pode ser maquiado num currículo: as datas das empresas, a formação, etc. Pontos mais “obscuros” como conhecimento técnico, são utilizados posteriormente.

O que analiso basicamente é se a pessoa tem o perfil que eu quero para trabalhar na empresa, se ela tem a cara da empresa, se ela vai se adequar e trabalhar feliz. Isso, no final das contas, é o que importa, um profissional feliz trabalhar melhor.

Existem alguns pontos de atenção:

  • Pessoas que conhecem profundamente todas as tecnologias existentes: Estas pessoas normalmente só ouviram falar de algumas coisas e dizem que sabem tudo sobre aquilo.
  • Pessoas que tem períodos “em branco” no currículo. Entre uma empresa e outra a pessoa tem 5 meses que não se fala o que ela fez.
  • Pessoas que passam apenas poucos meses em cada empresa. É importante entender o que aconteceu.
  • Pessoas que não tem cursos, eventos ou certificações recentes. Programadores precisam estar sempre atualizados, isso precisa estar no currículo.

Os testes técnicos

Sim, faço mais de um teste técnico com o candidato. Normalmente os nossos candidatos fazem de 3 a 4 testes técnicos. O primeiro eles fazem no conforto de seus lares, sem pressão alguma. Esta é a segunda etapa de nosso processo. Aqui já filtro quem foi bem e quem não foi neste teste.

O teste consiste em 8 questões que envolvem programação, ou seja, vou ver ali, “ao vivo” como o candidato conduziu sua linha de pensamento para as tecnologias que utilizamos mais e, obviamente, a lógica que ele utilizou.

Para esta etapa, onde ele faz o teste em casa, eu utilizo o interviewzen.com, que é uma ferramenta bem interessante. Ela me permite assistir um vídeo do candidato digitando tudo o que está fazendo e me permite um ótimo filtro daqueles que não sabem programar (sim, estas pessoas existem).

Após receber e analisar este primeiro teste, convido o candidato para um teste mais complexo, normalmente feito na própria empresa. Aí já tenho a chance de conhecê-lo um pouco, mas sem uma entrevista formal ainda. Esta etapa é a última que me separa da entrevista tradicional. Neste teste tento entender o quanto ele conhece de nossa principal tecnologia.

Após analisar como ele foi neste segundo teste, agendo uma entrevista mais formal. Nesta entrevista, além da conversa que sempre acontece, faço mais um ou dois testes na lousa. Sei que muitos não gostam, por isso faço testes bem simples, apenas para assegurar que, num momento de maior pressão, ele continua com uma lógica razoável. Acreditem, são testes muito simples e, mesmo assim, muitos não conseguem fazer. É interessante que você crie seus próprios testes para este momento, adequando-os ao perfil da vaga e ao perfil de sua empresa. Você vai ficar admirado em como aquelas pessoas que “sabem tudo” vão mal nestes testes.

A entrevista

Este é o ponto alto para saber se a pessoa vai se encaixar com a sua empresa ou com a sua equipe. Neste momento você deve analisar tudo o que puder e não pode ter medo de confrontar o candidato. Se ele falar algo que está errado, fique de olho, se ele se contradizer, questione-o. Este é um momento para você mostrar o que a sua empresa exige de um profissional e verificar se ele é este profissional. Lembre-se que contratar alguém é algo muito importante: contratar a pessoa errada gera um custo alto para sua empresa e é um problema para o candidato, que apostava na sua empresa para a vida dele.

Tenha uma atenção especial às tecnologias que o candidato diz conhecer, faça perguntas específicas sobre elas para ver se todo aquele conhecimento é real. Converse sobre as comunidades técnicas das quais ele faz parte, o que ele tem feito e estudado em paralelo ao trabalho.

Peça pelo portfolio do candidato (se for possível) e analise-o. Tenho tido boas experiências com isso quando estamos contratando alguém para desenvolvimento móvel ou front-end.

Por fim

Lembre-se que nada disso garante o sucesso e um bom profissional. O mercado de programadores está muito saturado e, infelizmente, com muitos profissionais que não apresentam toda a qualidade que dizem ter. Selecionar bons candidatos é uma tarefa árdua e exige empenho.

No próximo post eu quero falar um pouco sobre o porquê de não acreditar em consultorias de RH para a nossa área.

Qual a sua metodologia de contratação? Comente aí.

Valeu.

Anúncios

Os papéis de um bom scrum master

O Scrum Master perdido

Já faz muito tempo que o Scrum está em nossas vidas. Para um mundo onde surgem novos frameworks, metodologias e afins a cada mês (para ser conservador), o Scrum já existe há tempo suficiente para sabermos o que ele é e como funciona, já existe há tempo suficiente para ser considerado maduro.

Mesmo assim ainda existem muitas dúvidas e dúvidas básicas sobre como ele realmente deve ser utilizado. Hoje quero falar unicamente sobre o papel do Scrum Master.

Basicamente um bom Scrum Master deve preocupar-se com uma correta utilização do Scrum. Ele deve lutar para que as coisas sejam feitas da maneira como elas foram desenhadas no Scrum Guide. Em um time que está começando a utilizar Scrum ou em uma empresa que ainda não o aceitou bem, esta será uma tarefa árdua e exigirá muito tempo deste profissional.

Porém, em empresas onde o framework é aceito e com times mais maduros, o papel do Scrum Master começa a ser questionado. Aliás, não é raro ver Scrum Masters totalmente perdidos com o que devem fazer no dia a dia. Vamos ser sinceros, boa parte dos Scrum Masters de hoje, eram programadores até bem pouco tempo atrás, ou seja, eles saem de uma rotina onde eles sabem exatamente o que devem fazer, para uma rotina onde as coisas não estão tão bem definidas. Por isso quero, com este post, tentar ajudar você, o Scrum Master perdido.

As principais funções de um Scrum Master

1. Garantir o bom funcionamento do Scrum

Como disse anteriormente, a primeira função deste profissional é implantar o Scrum, difundi-lo entre as pessoas e fazer com que nada saia do eixo conforme o tempo passa. Esta tarefa é inicialmente difícil e encontra muitos obstáculos mas, com o tempo, começa a ficar mais simples, as pessoas já entendem como o framework funciona e se adequam a ele.

2. Livrar o time de impedimentos

O time não pode ser impedido de trabalhar numa tarefa. O time não pode parar para ver outras coisas que não sejam o backlog (a menos que o time decida por isso). Nada pode atrapalhar o time de mantê-los no foco e livres para pensar nas melhores soluções, para serem criativos.

Por isso, o bom Scrum Master serve o time em todos os detalhes, desde uma máquina que não está funcionando bem, uma pessoa que não esta acessível, um quadro que não está bom até as coisas mais simples, como ter um bom café.

As tarefas listadas abaixo não são cruciais para o profissional mediano, mas são importantes para o bom Scrum Master.

3. Ser um mestre de cerimônias

Um bom Scrum Master deve ser um ótimo mestre de cerimônias. O time não deve ter que se preocupar em como será a reunião, onde acontecerá, se terá que reservar a sala, se a sala terá os recursos necessários, se as pessoas foram avisadas, se a reunião é realmente necessária, entre outros. Um bom Scrum Master deixará tudo pronto para que o time tenha a reunião mais produtiva possível.

Durante a reunião o time não deve se preocupar com nada além de trabalhar focado para que ela tenha um bom resultado. Se o time está estimando estórias, a preocupação do time deve ser em entender a estória, refiná-la, solucionar dúvidas e estimá-la. O time não deve se preocupar se iluminação está boa, se a sala tem água, se as cadeiras estão confortáveis, tudo isso deve estar sob os cuidados do Scrum Master.

O Scrum Master deve ser o moderador destas reuniões, para que elas não saiam do foco e não deixem de ser divertidas. Ele deve fazer um acompanhamento sério e preciso do andamento das mais diferentes reuniões ao longo do tempo para que elas sejam cada vez melhor aproveitadas. Ele deve filtrar reuniões desnecessárias e garantir que o tempo do time tem sido bem aproveitado.

4. Resolver conflitos

O bom Scrum Master é participativo, ele conhece o time, entende o momento que o time está vivendo e é um especialista em resolução de conflitos. Ele não deixa que qualquer animosidade entre no time e não permite que pequenos conflitos tornem-se grandes confusões.

Este trabalho não é simples, exige dedicação, uma boa dose de empatia e muita intuição.

5. Ser um organizador

Num geral o bom Scrum Master é uma pessoa organizada. Ele ajuda o time, dá dicas de como o time pode evoluir nos mais diversos assuntos e consegue participar ativamente das decisões do time. Ele ajuda a organizar o dia a dia, o trabalho, as reuniões, o quadro e o tempo do time.

6. Ser um conselheiro

Um bom Scrum Master é visto como uma pessoa com quem o time pode se aconselhar. Ele sabe o momento de participar mais incisivamente numa situação, conhece os membros do time e entende quando um não está bem. Ele deve estar preparado para ser procurado pelos membros do time para um aconselhamento nos mais diversos assuntos.

Em minha jornada como Scrum Master eu aconselhei pessoas em situações profissionais, pessoais, de carreira e muitas outras. É uma tarefa gratificante e muito delicada.

O bom Scrum Master avalia o time, verificando quais pontos precisam ser trabalhados para que as pessoas tornem-se profissionais melhores e ajuda-os nesta jornada.

7. Estudar

Ser um bom Scrum Master exige muito estudo. Não basta conhecer a fundo o Scrum e saber dois itens do Manifesto Ágil (alguns nem isso sabem). É necessário conhecer outros frameworks, outras metodologias, acompanhar fóruns de discussão, ser um membro ativo na comunidade, entender sobre metodologias mais clássicas, mais modernas, conhecer casos de sucesso e de insucesso.

Precisa certificar-se, fazer cursos e ler livros. Isso tudo exige muito tempo, mas é necessário.

8. Ensinar

Por ser um bom estudante, o bom Scrum Master torna-se um bom professor. Ele consegue passar conhecimento para o time, para os colegas de trabalho, para os outros Scrum Masters. Ele normalmente tem boas ideias e consegue expor seus argumentos de maneira coesa.

9. Ser um exemplo

Um bom Scrum Master é um exemplo. Ele não é chefe do time, mas é um exemplo para eles. As pessoas o enxergam como este profissional estudioso, participativo, organizado, sábio e colega. As pessoas ouvem os seus conselhos e sabem que podem contar com ele.

É muito trabalho

Quem ainda acredita que o trabalho do Scrum Master é simples ou não exige todo o tempo dedicado, deve rever seus conceitos. Se você é um Scrum Master e tem dúvidas sobre o que deve fazer, verifique se tudo o que coloquei acima está sendo feito.

O meu ponto é que ser um Scrum Master não é uma tarefa fácil. Infelizmente ainda vemos muitos “profissionais” que querem tornar-se Scrum Masters apenas por acharem que vão mandar em alguém ou que terão uma carga de trabalho menor, que vão poder se “encostar” numa função. Estes são os piores profissionais que você poderá encontrar.

Você tem algo a acrescentar nesta lista? Tem alguma dúvida? Tem algum caso interessante para contar? Comente!

Obrigado.

A pegadinha dos subtítulos de menus

Recentemente passei por uma situação que deixou-me sentindo como um novato. Utilizando um tema premium, vi que ele tinha um menu especial, que exibia subtítulos de uma maneira muito interessante.

Imagem

Inicialmente inseri o subtítulo no campo “Title Attribute” na configuração do menu e nada. Não funcionou. Após isso, como se tratavam de categorias, inseri o texto na descrição da categoria, e nada. Comecei a ficar confuso, não conhecia mais nenhum lugar para inserir estes dados.

E aí está a pegadinha. O campo “Description” do menu é que é utilizado para criar estes subtítulos, não apenas no tema em questão, mas por padrão, fica escondido na interface administrativa de menus. Para que ele seja exibido, é necessário clicar em Screen Options, no topo da tela, e habilitar a opção “Description”. E pronto, a mágica está feita.

Imagem

Espero que este post poupe minutos preciosos do seu dia.

Valeu galera!