Tag Archives: Rails

Hackathon como forma de contratação

Sempre tive a idéia de utilizar um Hackathon como modelo de avaliação de candidatos que desejávamos contratar, apresentei o modelo para a Fortes e realizamos um evento com bastante sucesso em 2012.  Outras equipes da empresa passaram a utilizar a experiência e se tornou um modelo a ser seguido internamente e já com várias edições.

Esse ano fizemos o segundo do meu time para avaliar um candidato em Rails justamente para me substituir (foi meu último compromisso na empresa, apesar de já ter saído).

 

Vantagens

Contratar alguém é sempre uma loteria, por mais justo que seja o processo. Envolve, além dos aspectos técnicos, saber se o sujeito conseguirá se integrar na equipe aonde vai trabalhar, se não fere princípios e cultura da empresa e aceitação perante a todos os participantes. Não basta ter feeling no candidato, você precisa sempre comprovar que ele realmente merece, ou seja, o próprio avaliador também tem que saber vender a escolha que fez.

IMG_20140830_102439134

No primeiro Hackathon o candidato escolhido era primo de um funcionário da empresa e membro do time aonde iria trabalhar, meu amigo pessoal e já tinha trabalhado na própria empresa como terceirizado por uma consultoria. Ele venceu a competição com os critérios estabelecidos acompanhado pelo departamento de RH (que participaram no dia do evento como olheiros), foi o suficiente para não pairar nenhuma dúvida em sua escolha, apesar do RH ter escolhido outro candidato por questões que não estavam definidos nos nossos critérios de avaliação e premiação (o Hackathon ainda teve um premio em dinheiro para o vencedor).

Formato

A avaliação dos aspectos técnicos é dentro de uma simulação do ambiente de trabalho, já que você provavelmente organizará o evento dentro de sua cultura. A pressão que se espera, o relacionamento que se espera que ele desempenhe e toda a expertise técnica é esmiuçada com mais detalhes do que uma simples prova ou avaliação de currículo.

No primeiro evento fizemos um detalhamento muito rígido de como os candidatos seriam avaliados, inclusive incluímos testes como item obrigatório.

IMG_20140830_125726664

Dessa vez o formato foi mais simples, apenas dois times codificando o mesmo sistema (as mesmas features), com apenas duas rodadas de avaliação, uma primeira aonde declarávamos e apontávamos todos os pontos negativos e de correção e a segunda que seria apenas uma forma de avaliar o evento, trocar feedback e curtir a tarde de diversão.

IMG_20140830_125705090

O formato de inscrição no evento era acompanhado do currículo, link do github e quaisquer informações necessárias que os candidatos pudessem informar para ajudar na escolha dos participantes.

Os desenvolvedores estavam livres para codificarem como quiserem, avaliamos inclusive como eles se comportariam tendo que assumir posições com pessoas que nunca viram antes ou mesmo que conhecessem, nunca trabalharam juntas.

IMG_20140830_143802812

Feedback

O que todos perceberam é que uma simulação de codificação de uma Release real, mas acompanhado por uma equipe experiente que vai corrigindo o processo e os erros, é praticamente uma aula, um curso.

Tivemos o cuidado de apontar sempre quando o time se desviava do objetivo do desafio, praticamente doutrinar sobre o conceito de MVP dentro da realidade da empresa e do mercado. Pudemos perceber que os desenvolvedores se perdem fácil em detalhes que não são importantes em um produto e deixam seu ego passar sobre o valor do negócio.

IMG_20140830_164309781

O que percebemos também é que candidatos com o currículo muito forte ou experiente em relação aos demais  não conseguiu se vender tanto quanto outros candidatos que provavelmente seriam descartados logo de início em um processo convencional de apenas avaliação de currículo ou entrevista.

Daqui pra frente eu espero que o formato seja adotado em larga escala – e vou trabalhar para isso – como uma forma de contratação, inclusive na empresa que trabalho, a Sagarana.

Rails Rumble 2012, nós participamos

Mais uma vez participamos (@cmilfont, @rudrige, @alcidesqueiroz e @yuriadams) desse fantástico Hackathon da comunidade Rails que te desafia a escrever uma aplicação em apenas 48h. Havíamos participado da última edição do Rumble em 2010 com uma aplicação para organização/indexação de livros pessoais – uma pena não ter ocorrido em 2011.
Rails Rumble

Dessa vez resolvemos construir uma rede social para conhecermos os times e equipes de Brazilian JiuJitsu desde sua origem até os dias atuais, chamamos de Jiujitsu Team. Evidente que devido ao tempo e nossa disponibilidade não conseguimos fazer tudo que gostaríamos, mas fechamos um pequeno escopo e entregamos todo funcional, ao contrário de 2010.

Registramos o domínio uns dias antes e esboçamos um escopo do que gostaríamos de fazer – imagem a baixo.

Esboço do Projeto

No dia da competição eu ainda tentei fazer com TDD, mas ficou comprovado pra mim que eu não consigo “I TDD my spikes solutions“. Eu preciso de um tempo para maturar um projeto inicial, pelo menos a primeira versão “prototipal” nasce de experimentações num mexe-daqui-mexe-de-lá, mas depois voce consegue TDDar 🙂

# -*- encoding : utf-8 -*-
require 'spec_helper'
describe GraduationsController do
describe "GET belts" do
before do
@belts = []
7.times {|n| @belts << FactoryGirl.create(:belt, :name => "#{n} belt" )}
Belt.stub(:all).and_return @belts
end
it "should list all belts" do
get :belts, :format => :json
assigns[:belts].should == @belts
assigns[:belts].should have(7).belts
end
end
describe "POST create" do
before do
@graduation = Graduation.new :id => 1
@belt = Belt.new :id => 1
@graduation.stub(:belt_to).and_return @belt
controller.stub_chain(:current_user, :profile, :graduate_your_student).and_return(@graduation)
end
# @graduation = current_user.profile.graduate_your_student params[:student_id], params[:belt_id]
# respond_with @graduation, :include => :belt_to
it "graduate your student" do
post :create, :format => :json, :student_id => 1, :belt_id => 1
assigns[:graduation].should == @graduation
assigns[:graduation].belt_to.should == @belt
end
end
end

Participar de uma competição desse tipo é muito importante para nos testarmos sob pressão de tempo, validamos nossas crenças e ajustamos o que funciona ou não do “By The Book” com o suficiente necessário para um produto.

Profile no Jiujitsu Team

Dê uma navegada nos outros projetos para ver o que a comunidade de 500 times fez esse ano, se gostou do nosso projeto e quiser votar na gente, o link é esse.

Terceiro Encontro GURU-CE

Galera da guru_ce está mandando muito bem, dê uma sacada como foi o encontro:

Fiz código na hora e como sempre não deu tempo de mostrar tudo que eu gostaria, estourei o tempo e saímos de lá por volta de 12:30. Espero ter gerado curiosidade na dobradinha sencha e rails, vamos ver se a galera manda dúvidas para a lista.