Pruebas de selección

Este post surge a raiz de artículo escrito por @Ari_Reinventada en Medium (https://medium.com/@AriJDB/procesos-de-selecci%C3%B3n-agobio-estr%C3%A9s-y-aprendizaje-2c761bf36207) donde comenta su paso por diferentes procesos de selección. Como "contrapartida" en este post voy a hablar de mi experiencia estando al "otro lado"

Aquellos maravillosos años

Durante todos estos años de aplastar teclas he tenido que pasar por muchas y variadas formas de entrevistas para optar a algún puesto de trabajo.

Desde aquellas pruebas psicotécnicas de los 90 donde tenías que completar secuencias de fichas de domino (me apuesto el cuello que todavía se hacen en algún sitio) hasta la de tener que instalar un software que medía tus tecleos, si consultabas páginas de Internet y cosas así para resolver un problema algorítmico en 2 horas (que obviamente no pasé)

De muchas de ellas, tras el rechazo a mi candidatura, pude ver en qué había fallado (aunque eso no implique que aprendiera de ello y lo corrigiera) pero una en especial sí me llegó al alma.

Mala experiencia

Tras ponerse en contacto conmigo alguien de RRHH de una empresa tecnológica y pasar los preliminares me enviaron la dichosa prueba de código. No era complicada, efectivamente, algo así como un servicio REST al que se le actualizaban precios por un lado y los mostraba por otro, y me puse manos a la obra.

Hay mucha "literatura" al respecto de hacer pruebas de código. Gente que no quiere dedicar su tiempo libre en ella, o que piden que se le remunere, etc. Para mí son posturas totalmente válidas pero en mi caso no me importa pues las veo como retos a resolver, si bien es verdad que nunca me han planteado una prueba que parezca que es para resolverles un marrón.

Creé el servicio (en Gradle, Groovy y Micronaut por supuesto) lo más sencillo posible y para completarlo le añadí lo que me pareció lo mínimo que se debía crear para un proyecto:

  • unos test mínimos

  • docker-compose para levantar la base de datos y el servicio

  • repositorio en Gitlab

  • pipeline en Gitlab para construir el proyecto

  • documentación (obvio) con Asciidoctor incluida en el build del proyecto

  • README explicando cómo construir el proyecto y donde encontrar la documentación

Vamos, una oportunidad donde poder demostrar que tocas varios palos y poder discutir sobre ello.

A las 2 horas de haberles enviado la url al repo recibí la negativa ("muchas gracias pero no has usado el patrón sampitopato") y realmente estuve cagándome en sus muelas durante unos cuantos días.

Me parecía increíble que alguien les enviara una propuesta tan completa, como a mi me parecía, al día siguiente de proponerla y la despacharan con ese argumento. Pero lo más alucinante es que ni tan siquiera ofrecieran la oportunidad de discutir mi propuesta. Según me había comentado la persona que se puso en contacto conmigo tenían la intención de contratar a 200 técnicos en un año!!!

Lo repito: no es que me sintiera ofendido porque no aceptaran mi propuesta. Es que pienso en el coste en el que estaban incurriendo para captar talento y lo desperdiciaban simplemente porque no usabas un patrón !!

La parte buena de esta experiencia fue que me piqué con el patrón sanpitopato y a partir de ahí me líe a hacer una serie de bots para Telegram …​ donde seguí sin aplicar el patrón sanpitopato.

Tymit

Tiempo después, y gracias a contactos que te avisan de oportunidades que surgen, me "enfrenté" a la de Tymit la cual me gustó bastante y sobre la que, una vez que formé parte del equipo, hemos ido trabajando para mejorarla, al menos en nuestro entender.

Básicamente el proceso completo, que a priori puede parecer largo, se divide en una serie de entrevistas:

  • una charla corta con RRHH para conocerte y explicarte la vacante y el proceso

  • una charla corta, 1/2 hora aprox, con dos miembros del equipo con los que no necesariamente vas a trabajar codo con codo. Sirve principalmente para resolver dudas de cómo es la compañía, explicarte el producto y forma de trabajar por encima, y que te pueda servir para ver si estarías cómodo trabajando en la empresa (y para qué mentir, sirve para ver si encajarías en la misma)

  • una charla técnica de 1h aprox con otros dos técnicos diferentes (si se puede). Se trata de que el candidato conozca tanta gente como sea posible del equipo así como a la inversa. Es en esta charla donde me voy a centrar pues obviamente es la principal

  • una charla "corta" para conocer al CTO. Como buen CTO si le das pie puede estar horas hablando contigo.

Prueba técnica (backend)

En mi opinión, en Tymit no vas a encontrar a grandes gurús tecnológicos capaces de hacer el algoritmo cuántico del momento, (obviamente si así fuera yo no habría pasado la prueba) por lo que la prueba no consiste en resolver ningún algoritmo, aplicar un patrón, y por supuesto nada de trabajar sobre una hoja en blanco (Me da el flato de la risa de pensar en la pobre @Ari_Reinventada haciendo HTML en una hoja).

La prueba la hemos dividido en una serie de preguntas "incrementales":

  • elegir entre dos trozos de código Java (no más de 10 líneas cada uno) y comentarnos qué hace, que problemas le ves, etc.

  • dado un problema mundano con unas especificaciones supersimples, cómo plantearías los tests. Ni spock, ni junit, ni cucumber, …​ lo que tú harías, si bajas a pseudocódigo bien, si no tendrás que explicarte de viva voz.

  • un día a día con Git

  • algo de docker super fácil

  • elegir una pregunta entre dos sobre un API Rest y charlamos sobre ello.

  • idem de microservicios

  • una pregunta bastante rebuscada sobre arquitectura.

Y sí, solamente tenemos este documento para cualquier nivel al que se opte por dos razones:

  • no necesitas saber de todo, si de algo no sabes no se busca que te lo inventes sino que lo digas sin tapujos. Lo bueno es que muchas veces la gente te sorprende y alguien que opta a un nivel medio se ha peleado con algún tema más raro y así tiene la oportunidad de hablar de ello.

  • somos tan vagos que para qué vamos a hacer dos versiones.

Lo que se busca en este prueba no es tanto que demuestres tus conocimientos resolviendo el problema del siglo sino que discutamos y puedas expresar tus puntos de vista, forma de hacer las cosas, en definitva conocernos.

Se procura en cada apartado no sólo escuchar al candidato sino poder aportarle algo. Por ejemplo puede que no hayas tenido que tocar nada de Docker y tengas interés en saber qué se buscaba en esa pregunta.

Al final de la entrevista (que alguna vez se ha alargado mucho más de la hora) se procura reservar unos minutos para resolver las dudas que se puedan tener principalmente sobre la forma de trabajar, organizarnos, etc e inmediatamente le trasladamos nuestras impresiones a RRHH para que se pongan en contacto con la persona que opta cuanto antes y le traslade si continúa o no.

Hemos evaluado en este punto si deberíamos enviarle nuestro feedback pero al menos a día de hoy creemos que la entrevista es tan abierta y se comentan todos los puntos que creemos que es suficiente.

Conclusiones

El principal problema que le veo a esta "metodología" es que no "escala".

Quiero decir con ello que es un proceso que requiere su tiempo así como esfuerzo por parte del equipo técnico que tiene que aparcar sus tareas durante un buen rato (lo bueno es que la hemos hecho ya algunas veces, rotandonos entre nosotros, y ya tenemos claro lo que buscamos y cómo plantearla)

Por parte de la persona que opta también es un esfuerzo obviamente pero a cambio obtiene el conocer, de forma gradual, a mucha parte del equipo con el que vas a trabajar. Creo que en estos tiempos de teletrabajo es una buena manera porque ya no se puede hacer una reunión física con el equipo (reunión que por otra parte no servía de mucho porque todo el mundo intenta ser políticamente correcto y poco más)

Por el contrario la principal ventaja es que se han propiciado al menos 2-3 entrevistas para conocernos y una de ellas con temas tan diversos que se ha favorecido tanto el poder detectar si la persona se adaptaría al equipo como que la persona piense si podrá trabajar con el equipo. O esa es la idea

Follow comments at Telegram groupOr subscribe to the Channel Telegram channel

2019 - 2020 | Mixed with Bootstrap | Baked with JBake v2.6.5