Si no contratas a Jones, entonces no mereces a los señores

Déjame contarte una historia sobre una compañía muy exitosa que cometió un gran error estúpido:
No contratamos programadores y pasantes junior ... Si no tiene un cachorro, no tiene que limpiar los charcos.
- netflix

Me sorprendió completamente cómo algo corporativo logró presentar a los cachorros en una luz negativa, e incluso alguien lo convenció. ¡Los cachorros son las criaturas más limpias de la Tierra y viven una alegría esponjosa! Rayos de luz en un mundo solitario. Pero vayamos al grano.

Muchas compañías han seguido esta estrategia de "contratar solo personas mayores". Lo justifican de esta manera:
  • No tenemos tiempo ni recursos para contratar programadores junior; Nos estamos desarrollando demasiado rápido.
  • Nuestra empresa puede pagar personas mayores, por lo que no hay necesidad de joons.
  • En la etapa actual, no podemos permitirnos errores. Las apuestas son demasiado altas.
  • Nuestro proceso proporciona a los empleados una mayor autonomía. No estamos listos para sujetar a los jones por el mango, ya que lo necesitan.
  • Queremos sentar las bases para el producto antes de comenzar a contratar empleados sin experiencia.

El mensaje es que los programadores junior representan un riesgo, un paso que la empresa da ya sea por un sentido de deuda pública o por falta de presupuesto. Resulta que otras compañías deben ser capaces de pagar la caridad corporativa y resultados de segunda categoría, pero ciertamente no nosotros.

Por cierto, en los EE. UU. Hay más de 100,000 empresas de TI , y no escuché algo para que al menos un CEO dijera "¡piensen, errores!" o "sería necesario reducir el presupuesto adicional en alguna parte". ¡Atención, organizaciones, donde "la entrada está prohibida para junio"! No importa cómo veas tus beneficios, no importa cómo justifiques el truco de tu vida, la realidad es que inventaste todo esto por ti mismo. No hay una ventaja competitiva en deshacerse de junio. Y acabas de mostrarle al mundo tu gestión de problemas.

La hostilidad hacia los desarrolladores junior es una forma fácil de detectar una cultura empresarial tóxica.

- April Wensel (@aprilwensel) 1 de agosto de 2017

La hostilidad hacia los programadores más jóvenes es una clara señal de una cultura corporativa tóxica.


La forma en que contrata y maneja a los programadores junior es un indicador indirecto importante de la salud de su organización, su línea de productos y su cultura interna. Las personas mayores prestan atención a esto. Y si esto por sí solo no suena lo suficientemente convincente, la contratación de un número equilibrado de programadores junior también proporciona beneficios financieros.

Prevencion de problemas


Si rechaza a los programadores junior porque “crean problemas”, también envía automáticamente un mensaje importante a sus empleados sobre la cultura corporativa: no se permiten errores. Usted crea una imagen de una compañía que despide a alguien cada vez que el servidor deja de funcionar. No importa cuánto pague, nadie quiere trabajar en un entorno que no le dé confianza en el futuro. E intenta intimidar a los programadores para que no cometan errores, multiplica una cultura de miedo y amenazas, que afecta catastróficamente la salud psicológica y la productividad.

Puede argumentar que esta actitud alienta a los programadores a ser cautelosos y crear procesos que protejan contra errores: por ejemplo, pruebas automáticas, control de calidad, conmutación por error, protección de acceso y cambios de código reversibles. Pero esta teoría pone el carro delante del caballo. Si la política de la compañía fomenta la creación de dicho seguro y la compañía misma proporciona a los programadores suficiente tiempo y recursos para esto, entonces una cultura de inadmisibilidad de errores no es necesaria e inútil; La mayoría de los problemas se detectarán mucho antes de la producción. Y cada programador, ya sea junior o senior, prefiere un entorno donde los procesos confiables protejan contra errores catastróficos.

¿Y qué hay de los errores que rompen todos los setos establecidos? Piense en ellos como valiosas oportunidades para fortalecer su defensa. Debe reconocerse que los programadores más jóvenes, por lo general, abren esas oportunidades más rápido que los adultos mayores. Entonces la pregunta es: ¿preferirías depurar tus procesos tarde o temprano? "Nunca" es bueno, como lo confirmará cualquier programador experimentado. Si algo puede salir mal, tarde o temprano se irá. Ningún stock de experiencia evitará el error humano.

Por supuesto, necesitará algunos programadores senior y líderes de operaciones para sentar las bases y crear precedentes para el ciclo de desarrollo de conmutación por error. Nadie ofrece contratar solo programadores junior. Pero si su oficina se toma muy en serio los errores, en otras palabras, los errores se detectan temprano y con frecuencia, entonces los programadores más jóvenes serán útiles. Y todos los niveles de programadores estarán más satisfechos con su trabajo, ya que la tolerancia a fallas los libera para crear un buen software (en lugar de extinguir incendios constantemente) y protege sus tardes y fines de semana.

Ahorrar dinero


Según Indeed, el ingeniero de software junior promedio recibe $ 55,394 al año, mientras que el ingeniero de software senior recibe $ 117,374 al año. Las personas mayores son más del doble de caras que en junio.

Estos costos a menudo están justificados. Se espera una mayor productividad de los programadores mayores que de los más jóvenes. Pero este no es el final de la imagen, y obtendrá un centavo por la justificación irreflexiva y perezosa del aumento de los costos como los costos de hacer negocios.

No todo el código de aplicación requiere muchos años de experiencia para escribir o incluso para un trabajo bien hecho. Cada programa tiene un "pegamento de software" que conecta las diferentes entradas y salidas de una manera completamente normal. De hecho, no importa quién lo escriba. Puede pagar $ 28 por hora por escribir este código, o puede pagar $ 59 por hora por escribir el mismo código. De una forma u otra, el resultado no será muy diferente. Si contrata solo a personas mayores, entonces paga exorbitantemente por una cantidad sustancial de trabajo simple.

Además, la base del código varía ampliamente entre las aplicaciones, y la familiaridad con este es un factor clave en la productividad. En la mayoría de los casos, un programador junior que ha trabajado en un equipo durante seis meses será más eficiente para hacer frente a las tareas que un programador senior recién contratado, simplemente por el grado de familiaridad con la lógica del proyecto.

El pegamento de software mencionado anteriormente y el código específico de dominio comprenden al menos la mitad de todo el desarrollo. El resto es el código que realmente necesita la atención de un especialista senior con beneficio para el resultado. Pero incluso con este código, un programador junior puede hacer un trabajo increíble con suficiente acceso a los recursos educativos y al asesoramiento de un mentor experimentado.

En vista de esto, un par de programadores junior y senior generalmente trabajan con la efectividad de dos programadores senior y por menos del 75% del costo. Si su objetivo es la productividad máxima a un costo mínimo, ese par de junio + Senior debe convertirse en la molécula fundamental de su organización.

Vale la pena señalar un factor más, inconmensurable: la tendencia de los programadores senior a debates constantes sobre temas que en última instancia son insignificantes: sobre algoritmos, microoptimizaciones y estilo de código. Si la compañía solo contrata a personas de la tercera edad y no tiene un proceso riguroso de toma de decisiones, entonces cientos de horas de trabajo pueden ir a tales disputas. Los desarrolladores junior generalmente se ven privados de tal problema.

Desarrollo profesional


Si no contrata programadores junior, envíe otro mensaje al personal: no sabe cómo funciona el desarrollo profesional.

A veces, cuando las empresas dicen que no están contratando desarrolladores junior, quiero sacudirlos por sus sudaderas y gritarles, ¿de dónde creen que provienen los desarrolladores senior?

- Kate Heddleston (@ heddle317) 13 de septiembre de 2018

A veces, cuando las empresas dicen que no contratan programadores junior, quiero agarrarlos por los senos y gritar: ¿de dónde creen que provienen los programadores senior?

Una vez más, no se trata de cumplir con la deuda cívica corporativa y no de "participar en el desarrollo" de la comunidad de TI. Se trata de convertir su empresa en un lugar de trabajo decente donde los programadores deseen establecerse y permanecer lo suficiente como para hacer una contribución tangible.

Oí de los programadores: “Cansado de cambiar los títulos de los trabajos. Solo quiero seguir siendo un programador senior para siempre ”. Sin embargo, nadie me ha dicho aún: "Espero no recibir nunca un aumento de sueldo, no aprenderé nada nuevo y no seré reconocido por mis servicios". Y, curiosamente, los recursos necesarios para apoyar tanto a los profesionales ambiciosos como a los programadores asiduos, pero entusiastas, son casi lo mismo. Necesitamos formas de cambiar y reconocer un trabajo bien hecho, una cantidad suficiente de recursos educativos y una variedad de proyectos de diferentes edades en la línea de desarrollo. Necesita crear una sensación de desarrollo, incluso para aquellos que no están interesados ​​en la promoción.

Pero no encierres a estos tipos. Su minoría La mayoría de los trabajadores de TI no van a ser programadores senior durante 40 años. Sueñan con convertirse en arquitectos de software, líderes de equipo, directores técnicos y fundadores de estudios. Y una empresa que se jacta de su indiferencia hacia el crecimiento profesional se encontrará al final de la lista de empleadores prometedores.

Solo recluto desarrolladores senior.

El truco es que recluto a algunos de ellos antes en su carrera.

- Reginald Braithwaite (@raganwald) 17 de septiembre de 2018

Solo contrato a programadores senior.

El truco es que contrato a algunos de ellos al comienzo de mi carrera.

Una de las frases más impresionantes que un programador puede escuchar en la entrevista es "Hola, soy un líder de equipo, trabajé aquí durante ocho años, comenzando con el interno". Muy impresionante y muy raro. Esa persona es extremadamente importante para la empresa: sabe todo sobre la línea de productos, vio el código de todos los proyectos en un radio de cien metros y trabajó con todos los empleados de la empresa. Es capaz de ofrecer innovaciones dentro de la empresa como ninguna otra. Y la compañía obtiene innumerables dividendos del trabajo de esta persona, porque pudo entender cómo mantener su interés durante ocho años, aproximadamente 1/10 de la esperanza de vida promedio. Este es un testimonio del éxito de la cultura corporativa. Esta es una señal de una oficina en la que reina el espíritu de lucha, en el que el reconocimiento encuentra un trabajo bien hecho, y proyectos interesantes están esperando en cada esquina.

Afirmar que "no contratamos a June" es, por el contrario, una admisión abierta de que la compañía no está lista para desempeñar un papel en la carrera de nadie. Esto es en realidad una demostración de estancamiento: la compañía quiere atraer programadores experimentados y talentosos que harán su contribución en aras de un solo salario. Algunos aceptarán tales condiciones, pero no verá su mejor trabajo.

Sin embargo, si su empresa se toma realmente en serio el crecimiento profesional, entonces una restricción artificial sobre los programadores junior solo reduce la línea de pago de la contratación y acorta el tiempo de los empleados en su empresa.

Escribir un excelente software


Los programadores junior tienen una serie de rasgos únicos que sus colegas más experimentados suelen perder. Uno de ellos es el optimismo claro. Otra es la voluntad de seguir al líder. Pero quizás la característica más importante que ofrecen los programadores junior es la falta de equipaje. Los programadores senior vieron el auge y el declive de la tecnología, los fracasos de los proyectos, los equipos desgarrados por conflictos internos y otros aspectos de la vida de la industria de TI. Han acumulado fuertes creencias y a menudo sacan conclusiones de largo alcance, lo que sugiere que un escenario de éxito (o fracaso) se desarrollará de la misma manera para otro proyecto o equipo. Lo que puede conducir a la falta de voluntad para comprender los matices de un nuevo campo de problemas.

Las empresas tan ansiosas por contratar solo personas mayores a menudo olvidan que desaprender lo que no aplica puede llevar más tiempo que aprender lo que sí aplica.

- DHH ( dhh ) 31 de julio de 2017

Las empresas ansiosas por contratar solo a profesionales de alto nivel a menudo pasan por alto que olvidar demasiado es a menudo más difícil que aprender lo correcto.

A veces, la tarea del gerente del proyecto es decir "Sé que no funcionó allí, pero tal vez funcione para nosotros". Un programador junior suele ser el mejor candidato para probar dicha teoría: puede recopilar una muestra de una idea o prototipo sin tener en cuenta los prejuicios acumulados por un programador senior a lo largo de los años. Como programador junior, a menudo hacía este trabajo, probando nuevas herramientas y tecnologías, reescribiendo fragmentos de código de una manera alternativa, probando ideas que otros empleados descartaron apresuradamente. A menudo descubrí mejoras arquitectónicas, y las compañías de software mejoraron notablemente. En algunos casos, fue posible acelerar la carga de la página en un orden de magnitud; o combine varias páginas en una, evitando semanas de soporte en el futuro; o deshacerse de tecnologías ineficientes que conducirían a una pérdida de tiempo. No se deben perder los beneficios de una apariencia fresca y fresca.

Muchas compañías pueden permitirse tales extravagancias como resolver un problema o escribir código encerrando a algunos programadores de alto nivel en una sala de reuniones para llegar a algo. Pero si agrega algunos jones, es decir, desarrolladores cuyo tiempo es aceptable para gastar en experimentos únicos e ideas inusuales, puede ver las mejoras que esto brindará a sus productos.

En cuanto a la calidad del software, los programadores más jóvenes generalmente realizan un trabajo importante que pocas personas notan: retienen el código abstruso y exagerado que sus colegas mayores tienden a escribir.

Un atributo de programador subestimado es la capacidad de escribir código que los ingenieros promedio o mediocres pueden leer, modificar y ampliar fácilmente.

- Jamon Holmgren (@jamonholmgren) 17 de septiembre de 2018

Una de las habilidades subestimadas de un programador es la capacidad de escribir código que un programador promedio o mediocre puede leer, modificar y expandir fácilmente.

Si reemplaza "medio o mediocre" por "junior", verá inmediatamente el sistema. La base del código es una impresión abstracta del pensamiento crítico de sus autores. Una combinación robusta de programadores junior y senior brinda la oportunidad de simplificar el código, lo que acelera las funciones de escritura con el tiempo.


Para resumir: el principio "solo mayores", que está muy extendido en TI, subestima a los programadores junior. Esto afecta a todos gravemente, especialmente cuando la organización cree que sin especialistas novatos todo será más fácil. Aunque algunas de estas compañías tienen éxito financiero, uno puede imaginar las enormes cantidades desperdiciadas que deben ser desviadas de su presupuesto debido a este enfoque.

Si su empresa supera a los competidores en este tema, es decir, sabe cómo contratar, capacitar y retener programadores junior, entonces usted mismo siente todas las ventajas que solo describí superficialmente en este artículo. Tiene una rotación menor, una mayor diversidad de especialistas y menos gastos generales que la competencia. Su software tiene menos errores y más alegría. Hay, por supuesto, otros factores. Pero un enfoque positivo para los programadores junior es una señal importante de la calidad de la oficina en todos los niveles.

Source: https://habr.com/ru/post/es425285/


All Articles