F*ck You, Renuncio! Recruitment no funciona


(Germán G.) #1

Este es un post que encontré en medium y siento que resuena en mí intensamente.

Es el relato de un Software Developer, Sahat Yalkabov, técnicamente bueno y talentoso, con conocimiento demostrado, que aporta a la comunidad Opensource y que recibe incluso felicitaciones de programadores de todo el mundo a diario. Sahat postula / es contactado para ofertas de trabajo y así y todo no logra superar la secuencia de entrevistas para distintas empresas (corporaciones / startups)

Me gusta mucho como reflexión acerca del estado actual de Nuestra Industria. Realmente amerita darle una vuelta a lo que Sahat comenta.

El post está en inglés y toma cerca de 20 minutos leerlo completo. Espero que lo disfruten.


(RIcardo M.) #2

Leí el artículo (y algunos de sus comentarios) y creo que no representa el estado actual de la industria… sólo representa el estado actual de algunas empresas. Por otro lado, creo que por la forma de escribir del autor no encaja en las empresas donde fue entrevistado… probablemente debería dedicarse a trabajar como freelance o similar…

Las preguntas típicas de entrevistas de Google, Facebook, etc. están en la red y si realmente estaba interesado trabajar ahí podría haberse preparado.

Entonces, el problema está que en el fondo Sahat no quiere trabajar en ese tipo de empresas… y en vez de lamentarse de que no lo contratan debería crear su propia start-up.


(David Lay) #3

Discrepo contigo ricardo.

Cada vez más y más empresas medianas o grandes creen que para contratar un buen elemento deben emular a estos procesos de incorporación. Y están totalmente mal. Incluso para los google y los amazon, pero especialmente para todo el resto del mundo.

El problema central, es que uno no debiera “estudiar” para una entrevista. Es estúpido, ya que lo único que obtienes de vuelta son personas que estudian para entrevistas, no buenos programadores:

Being a good programmer has a surprisingly small role in passing programming interviews


(Claudio Alvarez) #4

Hola a todos,

Soy nuevo en el foro y este es mi primer post, así que los saludo cordialmente a todos.
Creo que el punto central aquí es que las empresas han ido aumentando la complejidad de los procesos de selección en respuesta a que según ellos han fallado en procesos anteriores. Y la verdad es que no es fácil contratar, ni para nosotros mismos que entendemos un poco más del tema. Lamentablemente creo que las empresas nos ven como una especie de commodity, donde sólo les interesa un alto nivel de productividad, que se cumplan los plazos, metas etc. y si por cualquier motivo (que muchas veces puede ser absurdo) llegan a pensar que el rendimiento de uno no es el esperado, simplemente cambian una pieza del ajedrez por otra, alguien que sea como un senior pero a precio de junior.

Dicho esto, le encuentro toda la razón al OP, ya que pienso que las empresas han tratado de buscar estrategias para contratar a los mejores, pero creen que éstas “estrategias” son replicables y se pueden aplicar a cualquier perfil TI, lo cual sabemos que es algo utópico. Justamente por eso al Front end developer lo estaban haciendo escribir el algoritmo BFS en la pizarra. Seamos sinceros, si alguien llega a una entrevista y de un momento a otro le pasan un marcador y le dicen, por favor escríbeme un algoritmo que solucione el problema del “vendedor viajero” realmente creen que se acordarán sin consultar alguna documentación?, eso se lo pregunto a los senior, porque los junior probablemente se acuerden pero dudo que lo puedan llegar y escribirlo de memoria.

Mi solución a esto es simplemente no prestarse a ese tipo de tests, si tienen una carrera que han pulido con trabajo y esfuerzo, han hecho cosas valiosas (que no todo el mundo puede hacer), han ganado experiencia, se mantienen al día en su campo de trabajo, simplemente NO lo hagan. Es la única forma que las empresas se den cuenta que lo están haciendo pésimo en términos de selección de personal.

Siempre he pensado que los informáticos tenemos que parecernos más a los doctores en términos de negociación. Tenemos que poner nuestras condiciones encima de la mesa y si no se cumple lo mínimo que esperamos, simplemente no hay trato.

Saludos!
Claudio


(RIcardo M.) #5

No dije que este bien hacer ese tipo de entrevistas y pruebas, pero si uno sabe que en la empresa X así funciona el proceso para qué gastar tiempo una y otra vez yendo a entrevistas que uno sabe llevan a nada?

Una “solución creativa” hubiera sido averiguar primero el proceso y luego simplemente no participar.

Y si realmente le gusta programar tarde o temprano va a encontrar una empresa donde encaje… lo que si está claro, es que lamentarse públicamente indicando los nombres de las empresas que lo rechazaron disminuye un poco sus posibilidades con otros posibles empleadores…


(David Lay) #6

Si, sorry, no fuí claro sobre mi punto de discrepancia. Discrepo con la parte de:

Mantengo mis argumentos anteriores.


(David Lay) #7

Bienvenido! :slight_smile:

Este es un gran punto. Generalmente la discusión es (simplificadamente) así:

  • CTO: Tuve que despedir a [alguien] porque simplemente no rindió lo que esperabamos
  • CEO: Tenemos que subir la vara, cada persona equivocada que aceptamos en el equipo nos cuesta mucho tiempo y dinero
  • CTO: Es lo mismo que estaba pensando, hablaré con RRHH para establecer un proceso más estricto.

El problema aquí no es el racionamiento, sinó las acciones que siguen luego. Se establece un proceso “generico” entre CTO y RRHH con el input quizás de algún JP o algún consultor y listo. Por eso se cae en la estupidez de copiar “mejores prácticas” de “los grandes y exitosos” sin instrospección para determinar si efectivamente esas prácticas van a servir.

Yo diría que esto es cada vez menos, pero si, sucede, se complementa con lo que viene a continuación:

Esta parte también es crítica. Generar equipos es mucho más importante que tener una colección de profesionales. Y los equipos son inmutables: cada vez que alteras el equipo, tienes un equipo nuevo.

Esto es como lo que decía arriba, la trampa de las “buenas prácticas”

Ojalá fuera tan simple. Estas empresas van a seguir recibiendo postulantes, y van a seguir contratando gente (más incauta o más necesitada, etc). Como comunidad aquí tenemos la responsabilidad (cada uno de nosotros) de darles a conocer que están mal, primero, generando un discurso coherente, es decir, que tengamos claro porqué está mal y que tengamos claro que palabras usar para comunicarlo. Si lo decimos suficientes veces, quizás escuchen, y ahí es donde tenemos que tener nuestras propuestas.

¿Qué propuestas tenemos?

Estoy generalmente de acuerdo con esta idea, pero es posible solo debido a que estamos en alta demanda. Me pregunto si hubieran dos postulantes para cada puesto existente, cómo sería la historia.


(Guillermo Schwarz) #8

Sería que contratas a cualquiera de los 2 y das gracias a Dios que tienes uno.

La única razón por la que seleccionas es porque para cada puesto llegan cien currículums.

No entiendo porqué los equipos se les desarman, a mí no me pasa eso. Supongo que el problema es que no designan responsables de cada tema, por una visión romántica que tienen de lo que significa un equipo, temen que si designan responsables entonces “algo malo pasa”.

Para decir verdad, al designar responsables, todo se ordena. Pasa lo mismo con los niños en una familia, les pones horarios para que se ordenen y eso funciona. Realmente funciona.

Nunca he visto una familia en la que cada individuo decide a qué hora come, a qué hora duerme, en la que cada uno hace su vida a su manera y en sus tiempos, eso puede deberse eventualmente debido a un problema puntual, pero si se da siempre, no hay orden, y se pierde la capacidad para hacer cosas.

Es como dice Alan Kay, tiene que haber un plan: https://www.youtube.com/watch?v=NdSD07U5uBs&spfreload=1

Una cosa es tener un plan, otra cosa es explicarlo en detalle, eso mata los proyectos. Tiene que haber libertad, sin eximirse de la responsabilidad, porque si no hay libertad, ¿de qué responsabilidad me están hablando?

Si no soy libre, ¿Cómo podría tener la culpa de algo si no me dejan tomar decisiones? ¿Se entiende?

El recruitment no funciona desde el punto de vista de quien quiere ser contratado, porque quien quiere contratarlo, quiere a alguien a quien controlar… Ese es el problema. Controlar a un tondo es fácil porque el tonto no puede hacer nada. Controlar a alguien que inventa cosas en su tiempo libre es imposible.

De modo que deberías querer contratar a alguien a quien no puedes controlar, a aquel que su acto de rebeldía es construir cosas que tú no entiendes. Por eso el comando y control no sirve, porque te lleva a contratar gente más tonta que tú.

Cuando contrataron a Alan Kay en Parc, contrataron sólo gente genial y no les dieron nada que hacer, sólo hagan lo que quieran. Si contratas idiotas, sólo se van a divertir. Si contratas genios van a construir cosas que ni siquiera te imaginas.

El problema mencionado respecto de que la contratación está mal diseñada para los que quieren ser contratados, eso no es verdad.

Una historia de la vida real. Fui a una entrevista en una empresa conocida del medio chileno. Una de las preguntas se refería a que cuándo corresponde usar listas enlazadas y cuándo arreglos, basandose en los tiempos de ejecución, lo que por cierto siempre es una mala idea preguntarle a un programador, porque si esa respuesta se supiera, alguien ya habría creado FastContainer que se comporta como lista o como arreglo dependiendo de cuántos elementos tiene.

Buena la respuesta es que los arreglos siempre convienen. Esto lo sé desde 1999 cuando trabajé en Microsoft, porque allá te contratan y te lo mencionan, y lo comprobé empíricamente.

No lo digo sólo yo, lo dice mi tío Bjarne Straupstrup:

Donald Knuth tenía en 1999 una muy buena explicación de porqué el análisis O(n) estaba malo, ya que no consideraba los caches L1 y L2, ahora no lo puedo encontrar. Eso significa que todo el análisis que aprendimos en la universidad estaba mortalmente malo, desafortunadamente. Considerar no uno sino 2 caches, es extremedamamente complejo, como alguna vez aprendimos, y hoy en día las arquitecturas no sólo tienen L1 y L2 sino L3 y además cuando se interactúa con el disco sigue siendo malo.

¿A qué me refiero con esto?

Un acceso a RAM puede convertirse un un acceso a disco cuando se está usando swap. Es imposible predecir cuál acceso a RAM está en L1, L2 o L3 (pero sabemos que la localidad ayuda), pero además un acceso a disco es fácilmente 100 veces más caro. De hecho si un acceso a un registro tomara un segundo, entonces un acceso a caché L1 tomaría un minuto, un acceso a RAM tomaría una hora, un acceso a disco tomaría una semana.

Pero lo peor de todo es que la mayor parte de los ingenieros en computación no tienen idea de cómo funcionan los discos y son incapaces de predecir cuánto demoran en operar:

https://queue.acm.org/detail.cfm?id=864058

Esto significa que la mayor parte del software está mal construido, se desperdician “semanas” en tiempo de cómputo desde el punto de vista de la CPU porque no se minimizan los accesos a disco, y porque se hacen de manera síncrona en vez de hacerlos de manera asíncrona.

Dado eso, dado que la gente ni siquiera revisa lo que le enseñan para ver si tiene sentido, dado que la gente es tan floja que ni siquiera hace pruebas para ver si lo que le enseñan es verdad, y me encuentro con esto tipo que en la entrevista me discuten y me discuten durante una hora, que las listas enlazadas son más rápidas que los arreglos cuando los arreglos son muy grandes.

¿Cuál es la enseñanza de la historia? ¿Cuál es la moraleja?

Es lo mismo que un pololeo. Si tu pretendida polola no te acepta, da las gracias y da la media vuelta. Por a mí me ha pasado que la chiquilla que me dice que no, cuando pasa los 30, ya no tiene nada que perder, y ahora te dice que sí, perdió el pudor, y te das cuenta desafortunadamente que no era lo que te imaginabas.

De la misma manera, si en una empresa te rechazan, es lo mejor que podría haberte pasado, porque si en una entrevista se comportan como pelmazos, imagina como será trabajar con ellos.

A veces pienso que las personas piensan que sí hay empresas que son sumamente buenas… Pero eso requeriría que la genética fuera diferente. Y sabemos que todos los seres humanos no se diferencian en más del 2% de los genes, es decir, nunca vas a encontrar más de un 2% de diferencia.


(David Lay) #9

Es cierto que siempre hay hartos postulantes y por lo tanto debes seleccionar, pero cada postulante tiene más ofertas que no postula que a las que postula. Hoy seleccionas a alguien y es muy probable que se caiga porque está considerando también otras opciones. Por esto, desde el punto de vista del postulante, el se puede dar el lujo de exigir condiciones y elegir bien donde llega a trabajar, mientras que en una situación en donde estás postulando a cada posición que encuentras y aun así no eres seleccionado (baja demanda) no tienes tanto poder de exigencia.

GRAN PUNTO. Llevo unos meses con la idea de “no trabajo para mi empresa, trabajo con mi empresa” y por lo tanto me hace mucho sentido que hoy en realidad no quiero ser contratado, es decir, no es mi objetivo ser “contratado” sino ser parte de un equipo. El orden de prioridades ahí es importante y no había conectado mi idea con el proceso de contratación. Buena!

En algún punto de mi lectura de tu comentario pensaba que iba a tener que discrepar, pero finalmente termino estando muy de acuerdo!


(Guillermo Schwarz) #10

Bueno, en realidad lo de ser contratado o no, creo que da lo mismo. El flujo de caja quizás se ve afectado, pero lo que tienes que hacer es hacer lo que quieres, eso es lo importante.

¿A qué me refiero?

Aprende las tecnologías que quieres aprender, construye los proyectos open source que quieres construir, participa de los proyectos open source en los que quieres participar, si realmente te interesa tu carrera.

Cuando he contratado gente a la que le realmente le gusta lo que hace, lees el currículum y se nota. La actitud debe ser barrer tecnológicamente con el resto, hacer cosas que dejen al resto en la irrelevancia total.

Por ejemplo Spring contra los proveedores de J2EE. El tipo les dobló la mano con un proyecto open source y fundó su empresa. Cuando he contratado gente así, que se nota que se la puede, el resultado es siempre sorpredente, y ese debería ser tu norte, averiguar si lo que te dicen es verdad y cuando encuentras algo que no está bien, corrígelo, porque las empresas están para cambiar el mundo.

Lo malo en Chile: Los gerentes. No son capaces de vender esas invenciones. Ponen cara de “no entiendo nada” y eso termina matando las invenciones. El problema en Chile no es que haya pocos ingenieros o que los ingenieros no sean buenos, deberías ver los ingenieros que consigues en Santa Mónica, no se les entiende nada y saben un 10% de lo que saben los ingenieros chilenos.

No es broma.

Tecnológicamente estamos muy avanzados. El problema es que no nos creemos el cuento y trabajamos para gente idiota, sin intereses en la vida, sólo quieren ganar plata y eso lo quiere hasta la señora que limpia el baño, no están aportando nada a la economía y hay que saltárselos. Si un gerente sabe hacer algo, debe tener el valor que tiene limpiar el baño, eso es lo que deberían ganar… pero se ponen en el medio y “negocian”.

Lo voy a decir de otra manera: Los empresarios chilenos no son empresarios, son leeches. No sólo no aportan valor, sino que se quedan con el valor, te entregan pedazos de vidrio y te piden que te conformes con eso. Si ven el video de Alan Kay verán que dice lo mismo, claro que él se los dice en la cara a cientos de CEOs al mismo tiempo, mientras que Alan y 20 ingenieros más inventaron el mundo en que estamos viviendo ahora.

Un buen ejemplo de cómo hacer que tu propia empresa tenga éxito: http://paulgraham.com/good.html

“Make something people want”


(Esteban) #11

Hola, tiempo sin vernos.

Yo creo que siempre tiene que ver a la empresa y sus formas de contratación. Personalmente me ha tocado todo tipo de procesos de contratación, desde las típicas 2 o 3 entrevistas, hasta pasando por el tipo que solo hace una y “le tincó” contratarte, o el típico desesperado que te entrevista en la mañana, y te llama en la noche avisándote que estas contratado (por lo que general terminas trabajando en partes con proyectos incendiados, vale decir, horas extras, fin de semanas, condiciones no adecuadas, etc).

Yo creo que no hay que encasillar a las empresas y sus procesos de selección por sobre una tendencia, de hecho creo que con el tiempo ciertos procesos son necesarios para que tu perfil sea lo que buscan ellos. Por ejemplo, siempre se critica mucho a las empresas reclutadoras o intermediarias (y con razón, porque no ofrecer un contrato a planta sin una justificación de peso por lo general significa negreo), pero en ciertos casos es necesario y los procesos son muchos mas llevaderos: Postulo mi caso, en estos momentos trabajo para una entidad de gobierno y las diferencias en el ritmo de trabajo como las condiciones laborales son ABISMALES con respecto a una consultora promedio, que a causa de la competencia por lo general sobrevenden proyectos y a bajo precio, y bueno, el resto es historia. Yo entré por un intermediario ya que por la burocracia propia de una entidad de gobierno tendrías que pasar por millones de procesos y meses de espera para poder lograr un resultado y lograr convertirte en un funcionario público, a cambio mis condiciones no son malas, hay mucho respeto por la vida personal del trabajador, PC de escritorio (nada de llevarse el trabajo a casa), proyectos acotados en el tiempo, y reloj control con huella digital por lo que nadie se puede hacer el loco con el temas de las horas extras, lo cual en estos tiempos se agradece.

Yo creo que todo depende, y si viene siendo cierto de que cada vez se dan mas malas prácticas para ser de los procesos de contratación mas tediosos, yo creo que es un tema de try and error por parte de la gente que te contrata, en algunos casos ciertos procesos son necesarios.