Consejos para contratar a los mejores desarrolladores
Eventualmente en el mundo del software te tocará trabajar con otros profesionales, por lo que armar un buen equipo y contratar a los mejores es una tarea fundamental a desarrollar.
Podría asegurar que la diferencia entre el éxito y el fracaso de un producto reside bastante en tener un equipo sobresaliente.
Particularmente, me ha tocado entrevistar a muchos candidatos para diferentes roles y te comparto algunos consejos que me han funcionado a la hora de elegir si son el candidato ideal para el equipo o no.
1. Define efectivamente la oferta laboral
La mayoría de ofertas laborales en el mundo del software son muy genéricas y piden bastantes requisitos.
Por norma general, podría decirte que los buenos candidatos tienen varias ofertas laborales, por tanto, son muy cuidadosos a la hora de definir la empresa con la que quieren laborar.
En términos generales, el candidato va a mirar:
- El salario
- Las tecnologías requeridas acordes al rango salarial
- Beneficios adicionales al salario
Poner títulos generales como: Software Engineer, BackEnd FullStack semi-senior, Desarrollador Front End-Backend Junior, etc. te va a restringir el número de candidatos y mandará un mensaje equivocado al indicado.
Mas o menos lo que hace un candidato que conoce bien del mercado, es algo como lo que relata @freddier en el siguiente vídeo (9:41).
Por tanto, si tú no eres el que publica la oferta y tienes un equipo de RH que lo hace, ayúdales todo lo que puedas.
2. Nadie va a ser el candidato perfecto
Repítelo conmigo: Nadie va a ser el candidato perfecto, pero puedes acercarte lo más posible.
Si quieres encontrar a los mejores candidatos en tecnología, debes buscar en plataformas especializadas del sector. Pero… los mejores candidatos siempre estarán en lo que le llaman el warm intro y nuevamente les dejo un vídeo de @freddier que lo explica bastante bien (14:05).
Otra realidad es que mientras más especializado sea el puesto, más difícil será encontrarlo.
3. Los desarrolladores de software son escasos
Relacionado con el punto anterior, sé tiene la idea (bastante errónea, por cierto) de que los desarrolladores de software pueden ser productivos desde el día uno y que se pueden reemplazar fácilmente y la respuesta rotunda es NO.
Creo que la escasez de habilidades se manifiesta de tres maneras:
- La escasez de habilidades en demanda
- Puestos que son difíciles de cubrir
- Escasez de habilidades en tecnologías emergentes
Ninguna industria está a salvo de la amenaza que conllevan las nuevas tecnologías y la mayoría están buscando un equipo de desarrolladores para mejorar sus productos, no perder su ventaja competitiva, etc.
Por tanto, las empresas absorben el costo de capacitación + la curva de aprendizaje de los profesionales en desarrollo.
Los mejores desarrolladores saben esto, por lo que dedicarán bastante tiempo a aprender nuevas cosas y mejorar sus skills.
4. Revisa su portafolio
Regularmente, los mejores desarrolladores te enviarán links a su portafolio con orgullo.
Para mí, un portafolio muestra lo que eres capaz de hacer y no tiene que tener 3000 proyectos. Ningún reclutador va a revisar tantos proyectos de todos modos.
¿Qué tienes que verificar?
- Debes buscar “personalidad” es decir, las personas le agregamos un poco de nosotros mismos a las cosas que hacemos. Así que fíjate en el diseño, colores, fuentes, imágenes… Cualquier cosa que se vea diferente es esa “personalidad”.
- Regularmente, el portafolio lo encontrarás en un website, así que comprueba que tan bien optimizado se encuentra, sí funciona en distintos dispositivos; en pocas palabras que tanto cariño le dan.
- Revisa si escribe sobre cosas relacionadas con la industria de la tecnología.
La mejor presentación para un desarrollador será siempre su propio trabajo. Créeme, la mayoría de los candidatos tendrán un portafolio y muchas veces puede definir el rumbo de las cosas.
5. Experiencia
Squad Leader con más de 5 años de experiencia diseñando, manteniendo e implementando sistemas de alta disponibilidad y escalabilidad, creando experiencias tecnológicas centradas en el cliente.
Este es el speech que tengo en mi website y lamentablemente no importa mucho para medir mi experiencia.
Entonces… ¿Cómo medir el nivel de experiencia de alguien? ¿En qué tienes que fijarte?
Desde mi punto de vista, te puedes fijar en estos 5 aspectos:
- Cuanta responsabilidad y/o ownership ha tenido en los proyectos
- Como maneja las emociones en un proyecto
- Su forma de comunicarse y expresarse
- Que tanto entiende sobre procesos de distintos dominios (diseño, UX, marketing, negocio…)
- La capacidad técnica que tiene
Como puedes observar, no todas estas cosas se pueden comprobar sin tener una entrevista con la persona y a veces aunque la tengas no siempre se puede saber a ciencia cierta…
Lo que recomiendo que averigües en la entrevista es lo siguiente:
- Cada cuando o cuanto tiempo le dedica a su aprendizaje
- Los patrones de diseño que conoce
- Su forma de escribir código
- Las arquitecturas que conoce y/o ha trabajado
- Que tanto puede entender el código de otros
6. Busca a jugadores de equipo
Opino que a muchos desarrolladores en esta industria les gusta ser lobos solitarios y tienden a preferir trabajar individualmente.
Los mejores desarrolladores entienden que la buena comunicación y una cultura colaborativa siempre serán mejores que cualquier habilidad técnica. Esto produce un ambiente de trabajo sano y no hay nada mejor que eso.
Recuerda que en el mundo de la tecnología los desarrolladores quieren trabajar con los mejores
7. Beneficios
Como mencioné en el punto 3, los desarrolladores de software somos escasos lo que provoca que nos fijemos mucho en los beneficios que nos ofrece una empresa.
Ahora, muchas veces confundimos los beneficios, te pondré un ejemplo de cosas que no son beneficios:
- Buen ambiente laboral
- Sueldo acorde al mercado
- Horario flexible
Ejemplos de cosas que si son beneficios:
- Libros gratis
- Presupuesto anual para capacitaciones (online, conferencias, etc.)
- Descuentos en tiendas
- Estacionamiento gratis
- Préstamos con tasa preferencial
- Planes de salud
- Jornada laboral menor a lo establecido
- Planes de retiro complementarios
Los mejores desarrolladores muchas veces preferirán los beneficios al sueldo de la empresa, por tanto, debes fijarte mucho en ellos.
8. No discriminar
Hay varias cosas que no debes hacer cuando haces la oferta laboral y muchos menos cuando realizas la entrevista, por ejemplo:
- No preguntar la edad
- No preguntar la orientación sexual ni la identidad de género
- No preguntar si tiene familia
En pocas palabras, trata de evitar preguntas que no estén relacionadas directamente con las tecnologías que se requieren para el trabajo.
Recuerda que los mejores desarrolladores son excelentes seres humanos, antes que desarrolladores.
9. Evita las pruebas técnicas muy largas
Este es un gran filtro que bien usado puede ayudarte bastante, debido a que podrán permitir un mayor número de candidatos.
Recuerda (como ya dije) que los buenos candidatos estarán aplicando a más de una oferta y los mejores desarrolladores no están dispuestos a hacer pruebas largas y complejas.
Lo ideal es hacer pruebas lo más cortas posible y online.
Plataformas como HackerRank, CodingBat, TopCoder, CoderByte, Project Euler, CodeChef, Exercism, CodeWars, LeetCode, etc. te pueden ayudar a obtener pruebas técnicas que durarán poco tiempo, pero definitivamente son bastante buenas.
Los mejores desarrolladores estarán familiarizados con este tipo de plataformas y ejercicios, por lo qué no tendrán ningún problema al realizarlos.
Pasando este filtro, ya se puede acceder a una entrevista de tipo Pair-Programming donde se puede hablar con el candidato más a fondo y puede demostrar que es lo que puede hacer en una sesión en vídeo.
10. Crea una estrategia para retener talento
Muchos ingenieros tienen una mentalidad un poco mercenaria, es decir, de irse con el mejor postor.
En este ambiente van a existir mejores ofertas económicas de manera constante y si un desarrollador es de los mejores, seguramente va a estar tentado por una mejor compensación económica.
La mejor forma de retener al talento es lograr que el equipo se sienta realmente motivado por el trabajo que ejecuta y un buen fit con la cultura laboral de la empresa.
Un buen salario atrae, pero una gran cultura retiene.
Las empresas que no pueden crear una buena cultura, solo podrán competir con el salario y los mejores desarrolladores saben esto.
Conclusiones
Una gran parte de contratar buenos desarrolladores, es ser un gran desarrollador. Si ya eres uno de ellos, felicitaciones eres un elemento que puede ayudar a que un equipo crezca.
Si te interesa convertirte en uno, publicaré un artículo de como maximizar las posibilidades de lograrlo próximamente.