La capacidad de programar no es el único talento que hace que un ingeniero de software sea excepcional.
Es muy probable que haya contratado a la mayoría de sus ingenieros en función de su capacidad para desarrollar con éxito las herramientas que su empresa necesita para funcionar o las aplicaciones que desea ofrecer a los clientes. Esta habilidad depende directamente de su aptitud para lenguajes y frameworks específicos dirigidos a los proyectos para los que fueron contratados.
Sin embargo, si sus prácticas de contratación se basan únicamente en habilidades de programación, probablemente se esté perdiendo algunos candidatos excelentes. Eso, o podrías terminar contratando a alguien con un conocimiento increíble de cualquier idioma, pero que carece de muchas de las otras habilidades “soft” necesarias para trabajar en tu empresa o en un equipo.
¿Qué es una habilidad “blanda”?
Las habilidades interpersonales a menudo se denominan habilidades comunes o básicas y son rasgos y características de la personalidad arraigados en el comportamiento y la actitud de una persona. Si bien estas habilidades no son tan cuantificables como las habilidades interpersonales (como el conocimiento de un lenguaje de programación específico), son igualmente valiosas y, en su mayor parte, tienen un impacto muy positivo en la productividad y la interacción con otros miembros del equipo.
Ahora que sabes qué es una habilidad interpersonal, ¿qué debes buscar al contratar nuevos ingenieros de software? Echemos un vistazo a algunas de las habilidades interpersonales más importantes a las que debes aspirar.
Comunicación
Si sus desarrolladores no pueden comunicarse bien, no podrán trabajar en equipo, intercambiar ideas con las partes interesadas, explicar los problemas que descubran en el diseño o el código, ni ser parte de la corrección de errores o los esfuerzos de marketing del proyecto. Las habilidades de comunicación son absolutamente esenciales para cualquier miembro del equipo.
Esto es especialmente cierto teniendo en cuenta cuántas empresas han optado por un entorno de trabajo remoto. Por lo tanto, las reuniones ahora se llevan a cabo a través de Zoom (u otras plataformas), donde los miembros del equipo pueden estar disponibles para comunicar problemas o colaborar. Con una comunicación efectiva, un miembro del equipo está en mejores condiciones de ayudar a acortar el ciclo de vida del proyecto y hacer que todo funcione de manera más eficiente.
Colaboración y trabajo en equipo
No hace falta decir que sus desarrolladores deben tener estas habilidades sociales. Sin la capacidad de colaborar y trabajar eficazmente como equipo, estos empleados tendrán el desafío de funcionar y ayudar a que el proyecto se haga realidad. Para trabajar bien en equipo, un contratista debe poder y estar dispuesto a ir más allá de lo que se le pide y tomar todas las medidas necesarias para ayudar a su equipo a realizar el trabajo.
Esta colaboración debería ir más allá de compartir código en GitHub y ayudar con la depuración. Estos miembros del equipo deben poder compartir y recibir consejos de quienes están por encima, por debajo y en el mismo nivel. Además, los miembros del equipo también deben respetar el trabajo, la ética y las necesidades de sus compañeros desarrolladores.
Gestión y organización del tiempo
Si sus desarrolladores no pueden manejar la administración del tiempo de manera efectiva, tendrán problemas para cumplir con los plazos. Lo mismo se aplica a sus habilidades organizativas. Ambos rasgos pueden ayudar enormemente a los desarrolladores a convertirse en miembros de equipo eficaces y productivos.
Cuando alguien trabaja con un compañero de equipo que tiene habilidades efectivas para administrar el tiempo, sabe que puede contar con él para hacer su parte del trabajo. Sin estas habilidades, los compañeros de equipo se sentirán frustrados y tendrán que compensar constantemente a quienes no pueden administrar su tiempo.
Inteligencia emocional
Cuando contratas a un desarrollador con una sólida inteligencia emocional, contratas a alguien con la capacidad de absorber e interpretar con éxito no sólo sus propias emociones, sino también las de los demás. Con esta habilidad, un desarrollador puede lidiar mejor con la inevitable presión emocional que a menudo acompaña a los desarrolladores.
Se acercan los plazos, aumenta la presión, aumentan los ánimos. Con un alto nivel de inteligencia emocional, un desarrollador es más capaz de manejar cualquier cosa que se le presente sin derrumbarse ni arremeter. Una gran parte de la inteligencia emocional es tener fuertes habilidades de escucha activa. Una persona que puede escuchar activamente a otra es capaz de procesar lo que experimenta de forma productiva y eficiente.
Culpabilidad
Las cosas van mal. Esto es inevitable. Cuando algo sale mal (ya sea un error de código o un plazo incumplido), lo último con lo que hay que lidiar es con un equipo de desarrolladores que juegan al "juego de la culpa". Debe contratar desarrolladores que estén dispuestos a admitir sus errores para que el equipo pueda avanzar, resolver el problema y cumplir con el plazo.
Sin culpas, encontrará que los empleados pasan mucho tiempo culpando a los demás. Sus ingenieros deben comprender que está bien admitir errores y (excepto en circunstancias extremas) que no perderán sus trabajos por aceptar responsabilidades.
Solución creativa de problemas
Algunos problemas se resuelven fácilmente con lógica y razón. Esto es especialmente cierto en el ámbito del desarrollo de software. Pero de vez en cuando una solución creativa no sólo resolverá el problema sino que también producirá un resultado final aún mejor.
Las personas creativas hacen trabajo creativo. Si desea un equipo de desarrollo que sea capaz de traspasar los límites y pensar fuera de los problemas estándar, debe buscar desarrolladores que puedan resolver problemas de manera creativa.
Adaptabilidad y versatilidad
Si contratas a alguien rígido e incapaz de adaptarse a diferentes circunstancias, descubrirás que has contratado a un desarrollador que obstaculizará el progreso. No todo sale según lo planeado y la ley de Murphy nunca deja de asomar su fea cabeza.
Cuando un proyecto se descarrila, necesita desarrolladores que puedan mantenerse al día con los cambios que se les presentan a través de necesidades cambiantes, un problema que surge en el código presentado por otro miembro del equipo o un problema que surge con una API rota. Al contratar desarrolladores adaptables y versátiles, puede estar seguro de que estos proyectos se completarán pase lo que pase.
Paciencia
Las cosas no siempre suceden de la noche a la mañana. A veces, un proyecto queda en espera mientras se espera trabajo de un equipo o de un tercero. Cuando esto sucede, sus desarrolladores deben tener paciencia. Sólo porque un miembro del equipo llegó a la meta mucho antes que los demás no significa que puedan apresurar el trabajo y esperar que sea de calidad.
Cada miembro del equipo debe comprender que no todos los desarrolladores trabajan al mismo ritmo. Además, una vez que el proyecto salga de las manos de los desarrolladores y pase a manos de, digamos, marketing o administración, tendrán que tener mucha paciencia.
Esto es especialmente cierto en el dominio DevOps, donde en un proyecto hay más que solo desarrolladores trabajando. Es posible que quienes están en operaciones no comprendan completamente un problema tan rápido como un desarrollador, por lo que la paciencia (como dicen) será una virtud.
Conclusión
Recuerde, la codificación no es la única habilidad que sus empleados deberían tener. Sí, probablemente sea mejor dar mayor prioridad a las habilidades que tendrán un impacto inmediato y directo en un proyecto, pero nunca se deben subestimar estas habilidades sociales que pueden hacer que un empleado sea más efectivo, eficiente, productivo y más fácil de trabajar.