Consejos para atraer, administrar y retener desarrolladores de software

Publicado: 2022-03-11

La gestión tiene que ver con las personas. Ya sean directivos o empleados, ambos están pensando en cómo alcanzar sus objetivos personales y profesionales. La combinación de estos objetivos y las características personales de las personas involucradas dan forma a relaciones que, con el tiempo, pueden ser positivas, productivas y satisfactorias o, a veces, simplemente estresantes, exigentes y propensas a conflictos.

Por supuesto, en este último caso, la calidad del producto disminuye, la rotación de personal aumenta y el logro de las metas se vuelve cada vez más difícil. Por lo tanto, encontrar la manera de establecer relaciones gratificantes y motivadoras entre gerentes y empleados es clave cuando se trata de eficiencia, productividad y autorrealización para ambos.

Las relaciones positivas son la mejor manera de retener el talento del software.

Esto es especialmente cierto en la gestión de desarrolladores de software, debido a la complejidad técnica y la naturaleza creativa de su trabajo, comprimido en plazos a menudo estrechos para producir resultados. Como en toda relación jefe-empleado, intervienen muchos factores, como por ejemplo:

  • Alusiones personales
  • Objetivos
  • Expectativas
  • Políticas
  • Cultura organizacional
  • detalles tecnicos del proyecto

En este artículo, nos centraremos en los principales aspectos de gestión, más que en los técnicos, que creemos que deberían ser considerados por cualquiera que quiera tener éxito en la gestión de retener a los desarrolladores de software.

Pero aquí “éxito” significa no solo lograr resultados y cumplir con las políticas, tiempos y presupuestos de la empresa, sino también tener un equipo de desarrollo de software motivado y productivo que dé lo mejor de sí y permanezca en la empresa por mucho tiempo.

Esto nos lleva a nuestro tema fundamental: ¿Qué motiva a los desarrolladores de software? Con esto en mente, presentaremos algunas formas de retener a los empleados que hemos identificado en equipos de desarrollo de software exitosos.

Atraer a las personas adecuadas

En el desarrollo de software, el talento que contrate marcará la diferencia entre el éxito y el fracaso, y realizar cambios continuos en un equipo siempre es costoso en términos de tiempo y dinero. Por lo tanto, un buen proceso de selección es crucial para el éxito de su proyecto.

Oferta de trabajo

Los reclutadores de tecnología saben que cuando se trata de contratar desarrolladores de software, todo comienza con una publicación de trabajo cuidadosamente equilibrada. La publicación debe ser motivadora para que los desarrolladores adecuados respondan a ella; demasiados requisitos o demasiado especializados pueden ser desalentadores, pero si es demasiado vago, su empresa puede esperar una avalancha de currículums inútiles.

Establecer salarios detallados y paquetes de beneficios también es una espada de doble filo porque su competencia puede usar esa información para aprovechar sus planes de compensación, y los desarrolladores pueden intentar usarla como base para negociar durante su contratación. Por supuesto, dado que siempre debe haber cierto espacio para la negociación durante el proceso de contratación, sugerimos que la oferta de trabajo sea menos específica en lo que respecta a la compensación, utilizando rangos en lugar de valores fijos.

Por el contrario, la publicación del trabajo debe ser lo más clara posible en los deberes y requisitos del trabajo, tanto obligatorios como agradables. Comenzar con un ajuste sólido es el mejor contexto para el resto de nuestras estrategias de retención de empleados.

entrevistando

En este punto del proceso, es una buena idea obtener algunos consejos sobre cómo evaluar a los candidatos y ver qué trampas se pueden evitar durante el proceso de la entrevista. También agregaríamos a la orientación de los recursos anteriores que pedir a los candidatos de antemano algunas referencias de sus trabajos anteriores suele ser un buen complemento para otras formas de validar sus habilidades.

La oferta de trabajo

La contratación concluye con una oferta de trabajo al candidato, cuando la empresa presenta un documento formal que resume las características del puesto (nombre, rango, área, etc.), el paquete de compensación (salario y beneficios como salud, pensión o educación, etc.) , fecha de inicio, horario, lugar de trabajo y los requisitos para establecer un contrato de trabajo, si el candidato acepta la oferta.

Aunque en esta etapa todo está más o menos logrado, el candidato puede querer negociar algunas condiciones, y depende de la empresa aceptarlas o negociarlas. Depende de las prácticas de la empresa.

Sin embargo, seguramente, la empresa no querrá perder a un buen candidato por una cuestión de principios, por lo que las compensaciones razonables no dañarán a nadie. En este caso, es recomendable pedir algo al candidato a cambio de cada concesión realizada, como por ejemplo, una fecha de inicio anterior, un tiempo mínimo de permanencia en la empresa, o cualquier requisito especial que pueda tener la empresa.

Gestión de equipos de desarrollo de software para el éxito

Una vez que un desarrollador de software comienza a trabajar en la empresa, su gerente comienza a darse cuenta de quiénes son, cómo trabajan y, lo más importante, los resultados que generan. Retener a los ingenieros de software se convierte entonces en una clara prioridad.

Aquí es donde entran en juego los conocimientos sobre las personalidades de los ingenieros de software: ellos, especialmente los de alto rendimiento, a menudo muestran algunos rasgos comunes. Señalaremos estos patrones a medida que avanzamos, pero tenga en cuenta que es posible que no se apliquen por igual a todas las personas. La gestión de proyectos de desarrollo de software se trata tanto de patrones como de excepciones.

Capacitación

Dado que el desarrollo de software es un trabajo técnico, requiere un conocimiento muy preciso de la estructura, los objetivos, los procedimientos, las políticas (incluidos los credos y las prácticas comerciales) y los estándares (técnicos y no técnicos) de la empresa. Por lo tanto, cuanto mejor comprenda un desarrollador a la empresa, mejor producto hará y menos tiempo le llevará hacerlo.

Esta formación básica puede administrarse mediante documentos, cursos de intranet en línea o presentaciones. Pero es una necesidad, ya que le dará claridad al nuevo empleado.

Si se van a introducir nuevas tecnologías, asegúrese de proporcionar la formación necesaria. A los desarrolladores de software les gusta que los desafíen, pero es posible que les moleste que los arrojen a una nueva tecnología sin aprenderla correctamente primero.

Internet está repleto de valiosos materiales de aprendizaje y, a menudo, es el primer recurso al que recurren los desarrolladores de software cuando necesitan aprender o volver a aprender detalles técnicos. Si se quiere fidelizar a los desarrolladores de software, es fundamental fomentar una cultura de autoaprendizaje y, si es necesario, dar tiempo de trabajo para ello. De esta manera, el equipo estará actualizado con tecnologías y métodos de última generación, algo que los desarrolladores de software suelen apreciar mucho.

Recursos

Algunos piensan que los desarrolladores de software buscan la más alta tecnología para hacer su trabajo, con las mejores especificaciones posibles disponibles en la industria. En cambio, pensamos que depende del trabajo en cuestión. Por ejemplo, si una empresa desarrolla juegos en primera persona, será necesario proporcionar a los desarrolladores potencia informática de última generación. Pero si el trabajo es desarrollar servicios web back-end para un sistema transaccional, una computadora menos poderosa podría ser suficiente.

Lo realmente importante es darle al desarrollador todas las herramientas necesarias para hacer su trabajo y estar abierto a sus sugerencias sobre nuevas herramientas. Lógicamente, cada nueva herramienta que sugiera el desarrollador tendrá que ser aprobada (quizás incluso probada antes) y licenciada por la empresa. Sin embargo, vale la pena el costo: tener los recursos adecuados es un factor clave en la motivación y los resultados del desarrollador. (¡No puede esperar retener a los ingenieros de software si los configura para fallar!)

Organización

A los desarrolladores de software les gusta trabajar en lugares que fomentan y respetan sus esfuerzos creativos porque su trabajo consiste en hacer algo de la nada a pesar de estar guiados por el diseño, los estándares y las políticas de TI. Por lo tanto, los desarrolladores deben estar razonablemente seguros de que pertenecen a una unidad donde toda la burocracia y las limitaciones son mínimas, siempre que cumplan con las políticas de la empresa y estén en línea con sus creencias.

Esto no significa que los desarrolladores de software deban tener privilegios especiales en comparación con el resto de la empresa, sino que su gerente los ayude a superar o resolver la burocracia cuando sea necesario. Un aspecto muy importante para retener a los desarrolladores de software es que su jefe esté abierto a sus requisitos personales y los ayude cuando sea necesario.

La disposición de la unidad de desarrollo interna también juega un papel clave aquí. A menudo, existe un grupo de prueba, y es deber del gerente de ingeniería de software mantener el trabajo en equipo fluido entre los desarrolladores y los evaluadores. Esto se puede lograr simplemente teniendo metodologías y procesos claros. Los desarrolladores tienden a trabajar muy bien con los evaluadores si ambas partes deben seguir reglas, manteniendo el conflicto bajo o inexistente.

Comunicación (Reuniones Periódicas)

Si desea retener a los desarrolladores de software, es esencial mantenerlos informados. Todos los miembros de un equipo deben actualizarse periódicamente sobre los objetivos, las situaciones corporativas que les afectan, las estrategias, los cambios en la organización y, por último, pero no menos importante, los logros del equipo.

Incluso tener varios miembros del equipo compartiendo algunos aspectos destacados será bueno para fomentar la cohesión y el trabajo en equipo del equipo. Normalmente, estas reuniones de equipo, de dos horas como máximo, deben programarse regularmente (quizás semanalmente), así como en ocasiones especiales como la etapa final de un proyecto, una situación crítica, etc.

Además de la comunicación con el equipo, el gerente debe establecer una forma de mantenerse actualizado sobre la situación de cada miembro, ya sea laboral, técnica o personal.

  • Relacionado con el trabajo significa todos los aspectos posibles de la relación del empleado con la empresa.
  • Las situaciones técnicas aparecen cuando un desarrollador tiene un problema y, por el motivo que sea, no busca ayuda.
  • Si el desarrollador los comparte, las situaciones personales que está viviendo pueden afectar su trabajo y sus relaciones con sus compañeros de trabajo.

Normalmente, una reunión semanal de 30 minutos con cada miembro del equipo permitirá que un gerente identifique estas situaciones y brinde ayuda, evitando así posibles crisis de personal y mejorando la moral del miembro del equipo dentro de la empresa.

Para que quede claro, no estamos hablando de establecer una unidad de desarrollo orientada a reuniones, por lo que es necesaria una estricta disciplina de reunión (puntualidad, respeto, participación, duración). Además, esta disciplina les demuestra a los desarrolladores que trabajan para una organización muy profesional, algo que normalmente aprecian.

Asignación de objetivos y seguimiento

No tiene sentido asignar objetivos generales anuales o pautas de evaluación similares.

Este es un factor claro cuando se trata de desarrolladores de software: Sea cual sea su rol (recopilación de requisitos, arquitectura, diseño, programación, pruebas, etc.), los objetivos se les deben dar con la mayor claridad posible, por lo que no tiene sentido en la asignación de objetivos generales anuales o pautas de evaluación similares. Dado que se supone que los desarrolladores trabajan en proyectos, es decir, con un alcance y un cronograma definidos, la mejor manera de asignar objetivos es al inicio del proyecto e incluir cómo se evaluarán los avances y, si corresponde, cómo se reconocerán.

Afortunadamente, hoy en día existen metodologías cuyo fin es generar resultados lo más rápido posible, como Agile y Scrum, que simplifican el seguimiento y control de los proyectos. A veces, esto puede incluso desempeñar un papel importante en la retención de talento de software: a muchos desarrolladores les encantan estas metodologías porque pueden ofrecer resultados rápidos, dándoles una sensación de logro de forma regular.

Además, los desarrolladores suelen preferir metodologías más ligeras. Saben que los de gama alta como Rational, donde el producto final se entrega después de un largo proyecto de ingeniería, diseño, desarrollo, prueba e implementación de requisitos, son riesgosos y pueden ser dolorosos de seguir.

Manejo de conflictos

Esto se aplica a los equipos de desarrollo de software tanto como a cualquier otro tipo: un gerente de ingeniería de software tiene que lidiar con el conflicto de manera rápida y efectiva, o puede salirse de control y destruir la moral, el trabajo en equipo y la efectividad de toda la unidad.

Suponiendo que los desarrolladores en conflicto sean profesionales y con buenas intenciones, una reunión del gerente con las personas involucradas para iniciar un diálogo claro con una pronta resolución posterior debería ser suficiente para permitir que el equipo avance. Además, a veces es necesario advertirles claramente que el conflicto a nivel personal, si es que alguna vez llega a eso, no será aceptado.

En cualquier caso, al final de esta reconciliación, es muy importante que ambas partes sientan que la solución es justa, aunque a uno de ellos no le guste. A veces, el conflicto es parte de la vida, pero retener el talento del software significa tratar a todos con dignidad cada vez que surjan tales situaciones.

Motivación

Aunque hemos mencionado muchos factores que influyen en la motivación de un desarrollador, hay otro aspecto clave. Este no es emocional, ni técnico. Estamos hablando de la tasa de compensación por su trabajo.

A pesar de que tienden a ser de naturaleza idealista, a los desarrolladores de software a menudo les gustan las cosas buenas del mundo material. Siempre es mejor para la empresa asegurarse de que los salarios y los planes de compensación estén alineados con el mercado laboral (los estudios de la industria son fáciles de encontrar) y tal vez incluso un poco más altos para sus puestos.

Además, la mayoría de los desarrolladores de software no son indiferentes a las ventajas y premios, incluidos cursos y eventos tecnológicos en los que pueden aprender técnicas útiles para enriquecer su trabajo.

Cuando se trata de retener a los desarrolladores de software, es importante respaldar su crecimiento dentro de la empresa, independientemente de su dirección específica. Cuando los ingenieros de software no muestran mucho deseo de pasar a posiciones de liderazgo o gestión, en cambio aprecian avanzar en el campo técnico. Esto incluye certificaciones más avanzadas y programas académicos formales como maestrías o incluso doctorados. El conocimiento es un motor muy fuerte para ellos.

Sin embargo, cuando aspiren a crecer a posiciones de liderazgo, es recomendable hacer un análisis profundo de la personalidad del candidato y su historia en la empresa. Esto puede ser con la ayuda del departamento de Recursos Humanos o de otras unidades de la empresa, ya que una buena gestión requiere un conjunto de habilidades completamente diferente más allá de la competencia técnica.

Cómo retener el talento del software: observaciones finales

Puede tener las mejores intenciones y seguir todos los consejos anteriores, pero aun así no lograr retener a los desarrolladores de software el 100 por ciento del tiempo; a veces, los factores externos simplemente tienen más influencia. Pero pensamos que la rotación de personal puede ser saludable y llena de oportunidades, siempre y cuando:

  1. No es frecuente. Si es así, esto sería un síntoma de que algo anda mal a nivel organizacional.
  2. Solo ocurre con los recursos más valiosos. En este caso, podría significar que están utilizando su empresa como un trampolín, es decir, están con usted simplemente para adquirir experiencia antes de trasladarse a otras empresas.

Las estrategias de retención de empleados deben estar consagradas en la política de la empresa, no solo como una reacción cuando una persona valiosa quiere renunciar. La retención reaccionaria es muy costosa y defectuosa: la persona puede aceptar quedarse, pero pensar para sí misma: "He trabajado aquí durante X años solo para que me ofrezcan el doble de salario cuando me vaya; acaban de admitir que no me estaban pagando". ¡suficiente!"

¿Cuál será el siguiente paso de esta persona? Pueden buscar otro trabajo, pero ahora con el doble de salario como mínimo. En este punto, tratar de retener a los ingenieros de software a toda costa probablemente no valga la pena. A menos que la persona sea absolutamente fundamental (e insustituible) para la empresa, puede ser mejor negociar un período de preaviso y encontrar un reemplazo de inmediato.

Es una tarea no determinista

Atraer y retener desarrolladores de software es una tarea compleja y no determinista, como ocurre con todos los roles en la industria tecnológica. Hay muchas empresas que buscan desarrolladores de software valiosos, pero, afortunadamente, el objetivo aquí no es ganarles a estas empresas, sino atraer a buenas personas que podamos mantener en nuestra empresa.

Los procesos de selección pueden requerir mucho tiempo y esfuerzo. Si aborda esto rápidamente, es probable que termine con las personas equivocadas, y ¿quién quiere retener a los ingenieros de software que son tóxicos para su equipo? Tómese el tiempo para hacerlo bien.