Dev Ex, ¿Palabra de moda o realidad?
En los últimos años, el término «Developer Experience» (o Dev Ex) y el trabajo de experiencia del desarrollador se han visto y escuchado cada vez más en círculos de ingeniería de software. Cuando un nuevo término se vuelve de moda pero muchos aún no saben lo que significa, la idea puede ser fácilmente descartada como una palabra de moda. Pero también hay un valor real en el concepto. Sin embargo, la utilidad del término depende en gran medida de cómo se interprete.
Inevitablemente, como un nuevo término que atrae a diversos tipos de profesionales del marketing, «Developer Experience» tiene un espectro de significados. En un extremo, la expresión puede estar relacionada con DevRel (relaciones con los desarrolladores) y recursos humanos, es decir, un conjunto de habilidades blandas utilizadas para mejorar las condiciones de trabajo de los desarrolladores, unirlos y mejorar la productividad y las habilidades a través de medios principalmente no técnicos. Sin embargo, de manera más distintiva, el trabajo de experiencia del desarrollador también se considera efectivamente un correlato de la Experiencia del Usuario (User Experience o UX), por eso a menudo se abrevia como DX, como complemento de UX.
La Experiencia del Desarrollador, en otras palabras, es una forma de abordar cómo los desarrolladores utilizan las herramientas, interfaces, sistemas, productos de software, etc., que necesitan para realizar su trabajo. Y, más concretamente, DX se pregunta cómo se pueden mejorar o avanzar estas herramientas para mejorar la experiencia de los desarrolladores con ellas. Esto no solo facilita la vida de los desarrolladores, sino que los hace más productivos y, en última instancia, más rentables para sus empresas.
Por eso es que la posición de experiencia del desarrollador está ganando más presencia, porque funciona.
- Dev Ex, ¿Palabra de moda o realidad?
- ¿Qué hace un experto en Experiencia del Desarrollador? Habilidades y antecedentes
- ¿Por qué el trabajo de Experiencia de Desarrollador es tan importante?
- ¿Qué empresas están aprovechando la Experiencia de Desarrollador?
- Otros nuevos roles emergentes en la industria de IT
- Únete a nuestra comunidad
¿Qué hace un experto en Experiencia del Desarrollador? Habilidades y antecedentes
En términos de personal, el núcleo del desarrollo de software es, por supuesto, los desarrolladores. En el pasado, los desarrolladores a menudo eran inconformistas. Se les valoraba por sus habilidades, pero el personal de gestión a menudo tenía poca idea de la naturaleza detallada de su trabajo. Las idiosincrasias individuales eran comunes. En estos días, la ingeniería de software es una actividad mucho más regularizada y, por lo tanto, quizás no sea sorprendente que las actividades de los desarrolladores estén tan sujetas a metodologías de ingeniería como el desarrollo en sí. Ahí es donde entra en juego DX.
La posición de Experiencia del Desarrollador también es una especie de puente entre el desarrollo y la administración, con una buena dosis de habilidades interpersonales. El trabajo de experiencia del desarrollador incluye simplificar conjuntos de herramientas e interfaces para los desarrolladores. Pero para hacerlo, necesitan un conocimiento profundo del tipo de trabajo que hacen los desarrolladores, así como del ecosistema tecnológico en el que se lleva a cabo. Un experto en DX, por lo tanto, necesitará una comprensión profunda de los siguientes aspectos de la ingeniería de software, cómo se utilizan y qué los hace efectivos:
- SDKs, APIs y bibliotecas de cliente
- Cadenas de herramientas para desarrolladores, incluyendo IDEs, editores de texto, compiladores, depuradores y shells
- Frameworks de desarrollo
- Bases de datos, plataformas y software de apoyo
- Fragmentos de código y estructuras básicas
- Documentación, incluyendo guías técnicas, estándares de codificación y tutoriales
- Ecosistemas de código abierto
Además de estas habilidades técnicas, un ingeniero de DX debe tener la capacidad de escuchar, comunicarse y aprender de las experiencias de los demás. También deberán interactuar con niveles superiores de la dirección para obtener las herramientas y entornos adecuados para sus desarrolladores. Claramente, es un trabajo que no será adecuado para todos y probablemente no para el tipo de programador inconformista que mencionamos anteriormente. Sin embargo, antecedentes en desarrollo son esenciales para el rol, y la experiencia en la gestión de equipos también sería muy beneficiosa.
imagen y pie de página: Un experto en Experiencia de Desarrollador debe tener la capacidad de aprender y escuchar. Además, un gran conocimiento de diferentes herramientas y pilas de desarrollo es fundamental.
¿Por qué el trabajo de Experiencia de Desarrollador es tan importante?
Habiendo llegado hasta aquí, es posible que te estés preguntando por qué es necesario este rol. ¿No han gestionado tradicionalmente estos aspectos los desarrolladores mismos, eligiendo sus propios conjuntos de herramientas para adaptarlos a sus preferencias y encontrando la infraestructura de soporte adecuada según lo requerido para su proyecto? La respuesta, por supuesto, es sí, pero tal individualidad también puede causar problemas.
Los desarrolladores son famosos por ser exigentes con sus editores de texto. Por ejemplo, encontrarás debates de nicho sobre los beneficios de los viejos stalwarts, Vim y Emacs, frente a los modernos IDE como VS Code. Pero cuando se trata de elegir bibliotecas, SDK o API, las cosas pueden complicarse rápidamente. Los programadores pueden dar por sentada cierta funcionalidad y esto es importante cuando trabajan en equipos o están produciendo componentes de software para consumidores externos.
Las incompatibilidades pueden llevar a fallos en la compilación o errores en tiempo de ejecución. A veces, estos son obviamente evidentes, a veces son mucho más sutiles y difíciles de rastrear. Pero, innecesario decirlo, solucionar incompatibilidades de desarrollo autoinfligidas no es un uso productivo de las habilidades de los ingenieros.
El escenario de ejemplo anterior se puede extender a muchas otras áreas del trabajo de experiencia de desarrollador, más o menos técnicas. Son años de conciencia de las frustraciones causadas por ecosistemas y prácticas de trabajo inconsistentes lo que ha llevado a la creciente prominencia de DX. Mejorar la experiencia no solo es beneficioso para el estado mental de los desarrolladores, sino que permite una productividad mucho mejor y un mejor cumplimiento de los plazos. De hecho, es otro paso hacia la plena profesionalización del desarrollo de software.
¿Qué empresas están aprovechando la Experiencia de Desarrollador?
El rol de Experiencia de Desarrollador (DX) es valioso para empresas de software de todos los tamaños, mejorando la consistencia e integración. Sin embargo, las pequeñas empresas con un solo desarrollador pueden no ver la necesidad de contratar a un especialista adicional.
Las empresas más grandes, especialmente las que trabajan en proyectos colaborativos entre equipos extensos, son las que más se benefician de especialistas en DX. Además, las empresas que venden o licencian APIs o bibliotecas encuentran un gran valor en la experiencia en desarrollo, ya que mejora la usabilidad y actúa como evaluador estratégico y cualitativo tanto de las prácticas como de los productos de la empresa.
Dado el valor de Dev Ex para la productividad de las empresas de software, se esperaría que algunas empresas importantes lo adoptaran. Y estarías en lo correcto. Tomemos dos de los nombres más grandes en tecnología en la actualidad, Twitter y Google. Ambos tienen una representación significativa de DX, incluso si esa no es la terminología principal que utilizan. En su lugar, describen equipos de «eficacia en la ingeniería» y «productividad en la ingeniería«, respectivamente, pero cada uno abarca aspectos significativos de Dev Ex.
También es instructivo ver cómo la industria reconoce el uso del puesto de experiencia de desarrollador. Un buen ejemplo son los recientes premios a la experiencia del desarrollador y la productividad. Los ganadores, Bought By Many, Luscii, Forto y Unibuddy, abarcan una amplia gama de sectores, desde FinTech hasta servicios de salud, lo que indica la importancia del desarrollo de software efectivo en todos los ámbitos.
Otros nuevos roles emergentes en la industria de IT
Los ingenieros de Machine Learning también están muy demandados en la industria de tecnologías de la información.
Como hemos visto, el puesto de Developer Experience es un tema candente en la industria de la tecnología de la información en este momento. Pero no es lo único en lo que debes fijarte. Aquí tienes cinco roles de tendencia adicionales a considerar:
Ingeniero de DevOps
DevOps abarca la codificación, la implementación y las habilidades interpersonales. Los roles pueden variar, pero generalmente puedes esperar gestionar implementaciones rápidas de lanzamientos de software y configuraciones de servidores para satisfacer las necesidades de los clientes. Necesitarás un buen conocimiento de las prácticas de desarrollo, los ciclos de vida del software y habilidades de gestión.
Ingeniero de Machine Learning
La inteligencia artificial y el aprendizaje automático se han vuelto cada vez más comunes en los últimos años, ya que la optimización algorítmica de procesos cotidianos y empresariales se ha convertido en la norma. Como ingeniero de Machine Learning, necesitarás una aguda inteligencia técnica con excelentes habilidades de ingeniería de software y análisis de datos.
Analista de Business Intelligence
Aliado con técnicas de inteligencia artificial pero más enfocado en la estrategia empresarial, la inteligencia de negocios es una tendencia emergente que explora los datos en busca de información sobre el rendimiento de la empresa y la planificación estratégica. Para este puesto, necesitarás habilidades sólidas en datos y experiencia en procesos empresariales.
Analista de Ciberseguridad
Con el crecimiento de las tecnologías en línea, lamentablemente también hay un crecimiento de actividad digital maliciosa. Los analistas de ciberseguridad forman parte de equipos que monitorean continuamente sistemas, redes e infraestructuras de software en busca de vulnerabilidades de seguridad, encuentran soluciones rápidas cuando es necesario y ofrecen medidas de protección preventivas. Necesitarás excelentes habilidades analíticas y resolutivas para este trabajo, además de calificaciones en TI y/o seguridad digital.
Ingeniero de Cloud
Estamos avanzando hacia una era en la que prácticamente todas las operaciones digitales se realizan en línea. Los ingenieros de la nube son responsables del desarrollo y mantenimiento de los sistemas de red que proporcionan servicios en la nube para aplicaciones empresariales y software de productividad, así como para muchos sitios web y servicios. Además, el creciente mercado de Internet de las cosas depende de infraestructuras en la nube. Para una carrera en ingeniería de la nube, necesitarás habilidades en administración de sistemas y redes, y probablemente también algunas habilidades de programación.
Únete a nuestra comunidad
¿Te gustaría aprender más de Open Source? En nuestra plataforma de Talent puedes encontrar la forma de llevar tu carrera al siguiente nivel. Entra en nuestra web y encuentra tu trabajo ideal. Échale un vistazo.
Ser parte de la comunidad de Codemotion te permitirá potenciar tu experiencia y enfrentar nuevos desafíos que impulsarán tu carrera. Aprenderás nuevas habilidades técnicas y crecerás junto a otros miembros mediante el intercambio de opiniones y la creación conjunta. Tenemos dos comunidades para ti según tu experiencia:
- Si eres wanna-be-dev, junior-dev o early-mid-dev nuestra comunidad de Discord es para ti. Allí encontrarás recursos, eventos, formación, muchos compañeros de viaje y beneficios exclusivos. Súmate aquí.
- Si eres late-mid-dev, senior-dev, Tech Lead o CTO nuestra comunidad de Telegram es para ti. Allí encontrarás el mejor networking, artículos high-tech, debates de tendencias tech y beneficios exclusivos. Súmate aquí.
¡Nos vemos en Codemotion!