¿Y si te dijera que hay una manera de hacer que tu equipo de desarrollo se centre más, resuelva más rápido los problemas, haga mejor las tareas múltiples y trabaje más unido? Ya estás a bordo, ¿no? Aunque no tengo un remedio mágico para un equipo de desarrollo de software más productivo y conocedor, tengo una sugerencia: Empiecen a hablar (también conocido como codificación) los idiomas de los demás.
Los atributos positivos enumerados anteriormente son sólo algunos de los beneficios comprobados de ser multilingüe cuando se trata de idiomas hablados, pero yo diría que se aplican también a los lenguajes de programación. En , hemos construido un talentoso equipo de desarrolladores a medida que hemos crecido y adquirido otras empresas. Y en el proceso nos hemos convertido en multilingües – nuestros desarrolladores dominan cerca de una docena de lenguajes incluyendo C#, Python, PHP, Ruby, SQL y más de diez otros lenguajes de programación. Somos verdaderos políglotas.
Toda esta experiencia en el lenguaje es una ventaja significativa para las empresas porque genera nuevas ideas y ayuda a los equipos técnicos a ver los desafíos desde una variedad de perspectivas. Un equipo de desarrollo políglota añade una buena mezcla de habilidades que fortalece no sólo al equipo, sino a toda la organización. Además, los miembros de su equipo tienen menos probabilidades de estancarse o aburrirse y son más capaces de continuar (y querer) aprender nuevas tecnologías. Todo lo que necesitas en tu equipo de desarrollo. Entonces, ¿cuán multilingües son sus desarrolladores y por qué debería dejarlos elegir sus propios idiomas (dentro de lo razonable)?
1. Aumentar la productividad. 2. Ser más estratégico.
Algunas tareas o proyectos se adaptan mejor a un idioma que a otro. ¿Y quién mejor para saber cuál es mejor que la gente que conoce los idiomas? Permítanme ilustrar esto con un ejemplo: Si tienes un gráfico de objetos en C++, con un objeto apuntando a un segundo objeto y ambos tienen dos campos adjuntos (uno es un entero de cuatro bytes y el otro es un puntero de cuatro bytes) y quieres enviarlo por cable como parte de un archivo de objetos distribuido, la solución requiere escribir los datos en el disco. C++ no tiene ningún soporte de reflexión incorporado, por lo que no puede diferenciar entre los dos campos de cuatro bytes. Pero, tanto el .NET como el Java tienen librerías para tratar este problema. De hecho, en ambos lenguajes, este problema se resuelve fácilmente. Pero C++ no tiene la capacidad de hacerlo. ¿Y adivina qué? Tus programadores probablemente saben esto si son políglotas.
Si su equipo sólo tiene experiencia en un idioma, requisitos como éste pueden ser problemáticos. Pero los programadores políglota tienen la capacidad de pensar en los desafíos desde más de una perspectiva y es más probable que encuentren soluciones simples y elegantes para esos desafíos. Y esto lleva directamente a la segunda razón por la que sus desarrolladores deben conocer y trabajar en más de un lenguaje de programación…
2. Crear la propiedad. 3. Contribuir a la satisfacción del trabajo.
Los Devs son un grupo creativo y explorador. Típicamente, acogen con agrado los desafíos y les encanta encontrar soluciones a los problemas. Así que cuando a los empleados técnicos se les permite diagnosticar problemas y recomendar (o incluso elegir) las soluciones, se comprometen más fácilmente y están más involucrados en su trabajo. Saben que se les confía la toma de decisiones con consecuencias comerciales reales. Y en un entorno en el que la contratación y la retención de talentos es tan importante, es fundamental crear un lugar de trabajo en el que las personas se sientan entusiasmadas por contribuir.
3. 3. Impulsar la innovación. 4. Fomentar una cultura del aprendizaje.
Cuando tu equipo de desarrollo está formado por personas con experiencia en varios lenguajes de programación diferentes, es natural que aprendan y se orienten unos a otros. Añade eso a las oportunidades regulares de formación y desarrollo profesional (que deberías proporcionar), y habrás conseguido crear un entorno que fomenta la innovación, mejora la unidad del equipo Y beneficia al negocio. En , animamos a los equipos a compartir ideas y aprendizajes con los demás. El resultado son desarrolladores con más conocimientos y habilidades y un equipo que trabaja más estrechamente para lograr los objetivos.
4. Contratar nuevos talentos, es más fácil.
Cuando no se limita a los empleados potenciales con las estrechas habilidades necesarias para soportar una sola pila tecnológica, tiene más libertad de acción para traer nuevos programadores con una gama más amplia de habilidades y experiencia. Le permite mirar más allá de los requisitos particulares del lenguaje y contratar para cosas más importantes como la actitud, la voluntad de aprender, la capacidad de resolver problemas, etc. (Aquí hay algunos ejemplos de preguntas que puede hacer a esas posibles contrataciones.) Por supuesto, necesita empleados técnicos cualificados que puedan apoyar las tecnologías existentes, pero a medida que crece, tiene la oportunidad de introducir nuevos lenguajes y plataformas (así como programadores con diferente experiencia) en su organización, y eso es una gran ventaja.
Antes de aceptar o empezar a construir un equipo de software políglota, tienes que entender los riesgos potenciales.
Los equipos políglota pueden hacer más difícil el manejo de la producción.
A medida que su equipo construye productos en diferentes idiomas, la disponibilidad de los especialistas con las habilidades adecuadas puede afectar a los calendarios y las fechas de lanzamiento. Especialmente en equipos pequeños, corre el riesgo de depender de uno o dos empleados con la experiencia necesaria para apoyar sus productos.
La movilidad de un equipo a otro puede ser difícil.
También puede ser más difícil para los empleados moverse entre equipos, ya que necesitan aprender nuevos idiomas y habilidades para trabajar eficazmente con una segunda (o tercera) pila tecnológica. La amplia disponibilidad de soluciones de capacitación baratas puede ayudar a aliviar este problema, pero los empleados todavía tienen que dedicar tiempo y esfuerzo para adquirir las habilidades necesarias para pasar de un equipo a otro.
Decidir qué nuevas tecnologías valen la pena (realmente) puede ser difícil.
Por último, los desarrolladores tienen un deseo natural de probar cosas nuevas, incluso en proyectos críticos. Los gerentes pueden tener que retirarlos y asegurarse de que hay razones comerciales sólidas para cada decisión de programación. Si no lo hacen, pueden implementar una tecnología que sus programadores crean que va a ser genial, pero resulta que «meh». Los desarrolladores pasan a la siguiente cosa y usted está atascado con un producto «meh» que necesita depreciarse. Si tienes clientes que usan esa tecnología, se vuelve problemático depreciarla o migrarla a una solución mejor. Hay que tener cuidado de no implementar nuevas tecnologías sólo por el bien de la nueva tecnología.
Así que cuando digo, «Dejen que sus devotos escojan su idioma de elección», quiero decir, «Déjenlos escoger su idioma de elección dentro de la razón». Tiene que haber sólidas razones estratégicas, financieras y de negocios detrás de la tecnología elegida. Y en, usamos herramientas y procesos para ayudar a asegurar que esas razones son válidas.
En general, la gestión de un equipo de desarrolladores con una amplia variedad de habilidades tecnológicas es una gran ventaja para nosotros. Nos ayuda a introducir las tecnologías adecuadas para nuestro éxito a largo plazo y crea una cultura única y saludable de innovación y autonomía. Y puede ser un buen movimiento para usted también, siempre y cuando apoye sus objetivos empresariales generales. ¿Listo para todos los beneficios de un equipo de desarrollo multilingüe?