Raw Thought

by Aaron Swartz

Cómo contrato programadores

English

traducido por iPodizados

Hay tres preguntas cuando estás contratando a un programador (o a cualquier otro trabajador, para el caso): ¿Es inteligente? ¿Puede sacar el trabajo adelante? ¿Puedo trabajar con él? Alguien que sea inteligente pero que no saca el trabajo adelante debería ser tu amigo, no tu empleado. Puedes hablar sobre tus problemas mientras procastinan (posponer conscientemente un trabajo que sabemos que tenemos que hacer) con su trabajo real. Alguien que saca adelante el trabajo pero que no es inteligente, es ineficiente: los que no son inteligentes sacan el trabajo adelante usando el camino más difícil y trabajar con ellos es lento y frustran. Por último, alguien con quien no puedes trabajar… bueno, pues no puedes trabajar con él.

El proceso tradicional de contratación de programadores consiste en: a) leer un curriculum, b) realizar algunas preguntas difíciles en una conversación telefónica, y c) darles un problema de programación en persona. Creo que es un sistema horrible para contratar a alguien. Se puede aprender muy poco de un curriculum y la gente se pone nerviosa cuando les haces preguntas complejas en una entrevista. Programar no es el típico trabajo que se hace bajo presión, así que ver cómo se comporta alguien cuando está nervioso es bastante inútil. Y las preguntas de la entrevista que normalmente se formulan parecen escogidas simplemente para que sean crueles. Creo que soy un programador bastante bueno, pero nunca he superado una de esas entrevistas y dudo que nunca lo pueda hacer.

Así que cuando tengo que contratar gente, intento responder a las tres preguntas [que planteaba al principio]. Para saber si pueden sacar el trabajo adelante, les pregunto qué han hecho. Si de verdad hacen su trabajo, a estas alturas deberían tener algo ya hecho. Es difícil ser buen programador sin algún tipo de experiencia previa y en estos días todo el mundo puede obtener experiencia colaborando en algún proyecto de software libre. Así que les pido una muestra del código y una demostración y miro a ver si me gusta. Aprendes un montón rápidamente, porque no les estás mirando mientras responden a una compleja pregunta de entrevista, sino que estás viendo el código real que han producido. ¿Es conciso? ¿Claro? ¿Elegante? ¿Usable? ¿Es algo que querrías en tu producto?

Para saber si alguien es inteligente, tengo una conversación informal con ellos. Hago todo lo posible por eliminar la presión: me encuentro con la persona en un café, les digo claramente que no es una entrevista, hago todo lo que puedo por ser informal y amigable. Bajo ningún pretexto les hago “preguntas estándar” de entrevista. Simplemente hablo con ellos como lo haría con alguien que conozco en una fiesta. (Si le pides a la gente que conoces en una fiesta que enumeren sus puntos fuertes y débiles o que estimen el número de afinadores de piano que hay en Madrid, tienes problemas más importantes). Creo que es bastante sencillo saber si alguien es inteligente mientras sostienes una conversación informal con él. Constantemente hago juicios sobre si la gente que estoy conociendo es inteligente, de la misma forma que constantemente estoy evaluando si la gente que veo me parece atractiva.

Pero si tuviera que escribir qué es lo que hace que alguien me parezca inteligente, pondría el énfasis en tres cosas. La primera ¿tienen conocimientos? Pregúntales en qué han estado pensado y comprueba su nivel de conocimiento sobre ello. ¿Parecen comprenderlo al detalle? ¿Pueden explicarlo claramente? (explicaciones claras son un signo de que realmente conocen la materia). ¿Saben cosas sobre ese tema que tú no sabes?

Segunda, ¿son curiosos? ¿Responden haciéndote preguntas sobre ti? ¿Están genuinamente interesados o simplemente están siendo educados? ¿Realizan preguntas sobre lo que estás diciendo? ¿Te hacen pensar sus preguntas?

Tercero, ¿Aprenden? En algún punto de la conversación, probablemente acabarás explicándole algo. ¿Lo entienden de verdad o simplemente asienten y sonríen? Hay gente que sabe cosas sobre alguna pequeña área, pero no tienen curiosidad con respecto a otras. Y hay gente que es curiosa pero no aprende, realizan muchas preguntas pero en realidad no están escuchando. Y yo quiero alguien que cumpla las tres cosas [escuchar+preguntar+aprender].

Finalmente, concluyo si puedo trabajar con alguien pasando algún tiempo con esa persona. Mucha gente brillante puede parecer agradable en una conversación de una hora, pero sus excentricidades se hacen patentes después de un par de horas. Así que, una vez que hayas acabado la charla, invítale a comer con el resto del equipo o a jugar a algo en la oficina. Por supuesto, mantengo las cosas tan informales como sea posible. El objetivo es, precisamente, ver si te ponen de los nervios.

Si todo parece correcto y ya me siento preparado para contratar a alguien, hago una pequeña comprobación final de seguridad para confirmar que no me la han dado con queso: les pido que hagan una parte del trabajo. Normalmente, esto supone escoger una parte del proyecto suficientemente independiente y pedir que la escriban (si realmente necesitas ver a alguien trabajando bajo presión, ponles una fecha de entrega). Si es necesario, puedes ofrecer pagarles por el trabajo, pero a la mayoría de los programadores que me he encontrado no les importa que les encargues una tarea pequeña como esta siempre y cuando puedan publicar el código de su trabajo cuando esté acabado. Esta prueba no funciona por ella misma, pero si alguien ha pasado las primeras tres partes, debería ser suficiente para probar que no te han engañado, y que realmente pueden sacar adelante el trabajo.

(He conocido gente que me dice “Perfecto, ¿por qué no probamos a contratarte un mes y vemos cómo sale? Esto no parece funcionar. Si no puedes hacerte una idea después de encargarle un pequeño trabajo, también podría pasarte que un mes después tampoco tuvieras una opinión clara y has acabado contratando gente que no son suficientemente buenos. Mejor decir directamente no y equivocarse por el lado de intentar conseguir a los más indicados [que acabar con alguien que no da la talla].

Estoy bastante contento con este método. Cuando me he saltado algunas partes, he acabado con contrataciones fallidas que finalmente he tenido que deshacer. Pero cuando las he seguido, he conseguido gente que me gusta tanto que me siento mal si tengo que dejar de trabajar con ellos.

Me sorprende que en vez de esta perspectiva, haya tantas empresas que utilicen unas técnicas tan estúpidas para contratar.

You should follow me on twitter here.

December 30, 2009

Comments

You can also send comments by email.

Name
Site
Email (only used for direct replies)
Comments may be edited for length and content.

Powered by theinfo.org.