1. Temas
  2. Desarrollo y distribución de aplicaciones.
  3. ¿Qué es la experiencia de los desarrolladores (DevEx)?

¿Qué es la experiencia de los desarrolladores (DevEx)?

CopiedCopy failedCopiar URL

Cuando hablamos de la experiencia de los desarrolladores (DevEx o DevX), nos referimos a sus acciones y sensaciones al interactuar con las herramientas y los procesos de desarrollo. Para mejorarla, es necesario simplificar los flujos de trabajo, las herramientas y los procesos de colaboración, con el fin de agilizar las actividades diarias y poder dedicar más tiempo a generar innovaciones.

El trabajo habitual de los desarrolladores consiste en diseñar y mantener las aplicaciones de software de la empresa. Crean soluciones para satisfacer necesidades comerciales o informáticas específicas y esperan que se utilicen de manera generalizada. Su objetivo es ofrecer soluciones oportunas que funcionen correctamente, tengan la menor cantidad posible de errores y generen respuestas positivas por parte de los clientes y los usuarios.  

DevEx es un tipo de experiencia del usuario orientado a los desarrolladores, por lo que fomenta a las empresas a prestar atención al modo en que estos realizan su trabajo. Se centra en la manera en que los procesos y las herramientas que usan los desarrolladores mejoran o empeoran la calidad de su trabajo, su satisfacción y su productividad.

Accelerate app development with Red Hat OpenShift

Cuando las empresas prestan atención a la DevEx, obtienen información sobre lo que resulta útil o no para los ingenieros que crean las aplicaciones y herramientas esenciales. La DevEx no solo facilita la vida de los desarrolladores, sino que también supone una ventaja estratégica, ya que repercute en la productividad y, por lo tanto, en el éxito del equipo de ingeniería y en los resultados empresariales. 

Al mejorar la experiencia de los desarrolladores, se agiliza la generación de innovaciones y se aumenta la calidad del código y la efectividad de las transformaciones de DevOps. Además, se reduce la carga cognitiva de los desarrolladores y, así, se mejora la calidad del software. Al crear flujos de trabajo más ágiles, eficientes y efectivos, las empresas pueden aumentar la productividad y la satisfacción de los desarrolladores, lo que facilita su permanencia en la empresa.

En muchas empresas, los desarrolladores deben coordinar diversas herramientas, cada una de las cuales tiene un propósito específico en materia de seguridad, integración y distribución continuas (CI/CD) y gestión de productos, o se utiliza en un entorno local o de nube particular. La necesidad de conocer e implementar varias herramientas repercute en la efectividad de los desarrolladores, y el uso de herramientas fragmentadas aumenta la carga cognitiva del personal y ralentiza el desarrollo de software. 

La falta de retroalimentación durante el proceso de desarrollo también constituye un desafío, ya que los problemas en el código no se hacen evidentes hasta que aparecen como errores en los informes de los usuarios. Los tiempos de desarrollo lentos, las demoras en los canales de prueba de CI/CD y los ciclos de revisión de código dilatados retrasan el ciclo de desarrollo de software (SDLC). La capacidad de detectar errores antes de que lleguen a la fase de producción permite ahorrar tiempo, evitar la repetición de tareas y motivar a los desarrolladores. 

La resistencia interna por parte del personal también puede afectar la DevEx. Cuando se cambian o se agregan herramientas de manera repentina y sin motivo aparente, es probable que los desarrolladores no quieran aprender o implementar los procesos nuevos. 

Para lograr una experiencia positiva para los desarrolladores, es necesario contar con herramientas unificadas, disminuir la carga cognitiva del personal y prestar atención a los ciclos de retroalimentación. Cuando DevEx reduce los obstáculos, los desarrolladores pueden generar más innovaciones e implementar código en menos tiempo gracias a un entorno más efectivo.

Unificación de las herramientas

Los entornos de desarrollo con herramientas diversas y flujos de trabajo personalizados pueden volverse difíciles de gestionar. En un entorno unificado con planes de referencia que cuentan con el soporte adecuado, los ingenieros pueden trabajar en entornos de desarrollo e implementación incompatibles sin tener que apresurarse a aprender a usar nuevas herramientas para realizar sus tareas. 

Disminución de la carga cognitiva

Los sistemas de TI actuales son más complejos debido a la extensión de las arquitecturas de microservicios, los entornos de nube y las dependencias de terceros. La falta de uniformidad en las herramientas y la documentación incompleta desvían la atención de los desarrolladores de sus funciones principales, que consisten en escribir e implementar código, y les obligan a centrarse en comprender los flujos de trabajo. 

La tarea de los desarrolladores siempre ha sido encontrar una herramienta que se adapte a sus necesidades o crearla desde cero. Ahora, a medida que la empresa crece, los procesos para respaldar los flujos de trabajo y adaptarlos eficazmente son cada vez más complejos y fragmentados. La ingeniería de plataformas ofrece formas más eficientes de realizar estas tareas:

  • automatizar la distribución de las aplicaciones;
  • potenciar la comunicación y la colaboración;
  • reducir los errores;
  • garantizar la seguridad y el cumplimiento normativo;
  • permitir que los desarrolladores dediquen su atención a las tareas más importantes. 

Gracias a las herramientas intuitivas, los portales de autoservicio y los entornos que implementan la ingeniería de plataformas, los desarrolladores pueden utilizar plataformas de desarrollo interno (IDP) para la automatización, el autoservicio y la colaboración en diferentes equipos con el objetivo de optimizar la distribución de software. Las herramientas predefinidas facilitan el trabajo de los desarrolladores al reducir las curvas de aprendizaje y los procesos no esenciales. 

Ciclos de retroalimentación

La capacidad y la eficiencia de los desarrolladores dependen de la rapidez con la que obtienen respuestas de las herramientas que utilizan. Si revisan el código, encuentran errores, automatizan las pruebas y las verificaciones de código y ejecutan pruebas locales rápidamente y desde el comienzo, pueden evitar demoras e identificar problemas a tiempo. Los canales de CI/CD y los ciclos de retroalimentación cortos permiten que los desarrolladores comprendan si el código funciona correctamente desde una etapa temprana del proceso.

Colaboración

La colaboración y la integración entre los equipos de desarrollo y operaciones (DevOps) crean un entorno de trabajo que promueve la comunicación efectiva y la experiencia compartida. En la cultura de DevOps, los equipos de desarrollo, que suelen generar código en un entorno de desarrollo estándar, trabajan con los equipos de operaciones de TI para agilizar el diseño, las pruebas y los lanzamientos de los sistemas de software sin comprometer la confiabilidad. Este enfoque de DevOps mejora la DevEx, ya que prioriza el autoservicio y reduce los problemas de comunicación entre los equipos. 

Las empresas pueden medir la experiencia de los desarrolladores de forma cuantitativa, en función del volumen de resultados y del tiempo que tardan en comercializar los productos que crean. También pueden hacerlo de forma cualitativa, en función de su satisfacción laboral, su rendimiento y su comunicación. 

El marco DORA surge del programa de investigación DORA de Google Cloud. Utiliza cinco indicadores clave para evaluar el rendimiento del equipo de desarrollo de software: 

  • la frecuencia de implementación;
  • el tiempo de espera para obtener cambios;
  • la tasa de errores en los cambios;
  • el tiempo necesario para restaurar los servicios;
  • la confiabilidad.

En conjunto, los indicadores de DORA cuantifican los resultados empresariales mediante el seguimiento del desempeño del equipo a lo largo del tiempo. 

El marco SPACE analiza la productividad de los desarrolladores desde un enfoque más centrado en las personas. Tiene en cuenta cinco dimensiones: 

  • la satisfacción y el bienestar;
  • el rendimiento (se prioriza la calidad sobre la cantidad);
  • la actividad;
  • la comunicación y la colaboración;
  • la eficiencia y el flujo. 

El enfoque SPACE se orienta más en la satisfacción de los desarrolladores que en sus resultados inmediatos. 

Ambos marcos no se excluyen, sino que se complementan. En conjunto, ofrecen una visión integral de DevEx que las empresas pueden usar para evaluar la experiencia de sus equipos de desarrollo y promover la mejora permanente. 

Obtén más información sobre cómo abordar los indicadores de DevOps

Con la adopción de la inteligencia artificial, surgen varios obstáculos para los desarrolladores: nuevos puntos vulnerables sobre los que deben mantenerse informados, herramientas novedosas que deben integrar en los flujos de trabajo actuales y errores y problemas de seguridad desconocidos. Sin embargo, la inteligencia artificial también ofrece oportunidades para mejorar la DevEx. 

Oportunidades

Los asistentes para la codificación de la inteligencia artificial y los agentes autónomos ayudan a los desarrolladores a evitar tareas de configuración repetitivas, mientras que las explicaciones de código integradas y las herramientas de rediseño simplifican las arquitecturas complejas y contribuyen a reducir la deuda técnica. La inteligencia artificial generativa convierte los bloqueos de la distribución de software tradicional en flujos de trabajo de alta velocidad con interrupciones mínimas. Muchas empresas utilizan la automatización basada en inteligencia artificial para mejorar el canal de CI/CD al incorporar la revisión de código, la detección rápida de errores y la resolución de problemas directamente en el proceso de implementación, lo que permite identificar las fallas estructurales incluso antes de que comience la revisión humana. 

Obstáculos

Los asistentes de inteligencia artificial funcionan a una velocidad mucho mayor que la revisión humana, lo que puede dar lugar a errores, paquetes desactualizados y puntos vulnerables ocultos. El análisis del código dificulta aún más el trabajo de los desarrolladores. 

La mayoría de los desarrolladores tienen acceso a asistentes de inteligencia artificial, por lo que simplemente usar esta tecnología ya no supone una ventaja para ellos. Como el uso de la inteligencia artificial está cada vez más generalizado, los desarrolladores ya no la utilizan para escribir código, sino para validarlo, depurarlo y gestionarlo. Actúan como organizadores estratégicos que coordinan varios agentes de inteligencia artificial a la vez. Para ello, es necesario tener en cuenta todo el sistema, lo que puede suponer un obstáculo para los ingenieros que están más acostumbrados a resolver problemas lógicos locales. 

Para mejorar la experiencia de los desarrolladores, es necesario simplificar los flujos de trabajo a fin de reducir la carga cognitiva diaria que puede agotar a los equipos de ingeniería, aumentar la eficiencia de los entornos de desarrollo y ofrecer herramientas intuitivas que acorten los ciclos de retroalimentación. 

Las empresas pueden implementar IDP que utilicen automatización de autoservicio para que los desarrolladores puedan preparar los recursos rápidamente en lugar de depender de procesos manuales de gestión de solicitudes de seguimiento de incidentes. Las IDP pueden funcionar como un centro donde mantener toda la documentación actualizada en un solo lugar, lo que simplifica la incorporación de nuevos desarrolladores y facilita la comunicación interdisciplinar. Además, los responsables de las empresas pueden evaluar la calidad de la experiencia de sus desarrolladores a través de encuestas, que les ofrecen información cualitativa para perfeccionar todo el ecosistema.

¿Qué desafíos de incorporación conlleva la DevEx?

Cuando el personal nuevo se enfrenta a entornos de desarrollo poco uniformes que difieren de los de producción, pueden pasar las primeras semanas depurando los errores de configuración locales en lugar de aprender las bases del código. Los desafíos de la incorporación pueden verse agravados por los sistemas mal documentados, cuyas instrucciones de instalación están ausentes, desactualizadas o separadas en diferentes departamentos. Para identificar dónde se producen los bloqueos, las empresas suelen realizar encuestas sobre la experiencia de los desarrolladores y, así, obtienen comentarios de los ingenieros durante sus primeras semanas o meses.

¿Cuál es la causa de una distribución de software lenta?

La causa de la distribución lenta suelen ser los ciclos de retroalimentación poco eficientes. Esperar a que se revisen las solicitudes de incorporación de cambios frena el impulso de los desarrolladores. Para agilizar la distribución de software, es necesario acortar los ciclos de revisión de código. Los conflictos entre los cambios de código y los problemas de control de versiones también pueden ralentizar la distribución. La corrección manual del código entre diferentes versiones puede suponer una pérdida de tiempo que los desarrolladores podrían dedicar a crear nuevas funciones. 

¿Qué agota el tiempo y la energía de los desarrolladores?

Según una investigación de Atlassian, muchos desarrolladores afirman que perdieron tiempo debido a ineficiencias e incompatibilidad entre los sistemas. El cambio frecuente de contexto entre herramientas inconsistentes, la gestión de la deuda técnica, el manejo de flujos de trabajo fragmentados y documentación insuficiente desvían la atención de los desarrolladores de la innovación. 

¿De qué manera la deuda técnica y las decisiones relacionadas con la arquitectura afectan la DevEx?

Trabajar con código heredado supone un obstáculo, ya que las bases de código antiguas no suelen tener límites claros ni pruebas automatizadas. Estos problemas se agravan cuando las aplicaciones tienen interfaces de programación de aplicaciones (API) muy complicadas, ya sean internas o de terceros, con demasiado código predefinido, endpoints confusos o métodos de gestión de errores poco claros. Estos desafíos pueden hacer que incluso las actualizaciones de funciones más sencillas resulten tediosas y requieran mucho tiempo a los desarrolladores. 

Red Hat® Advanced Developer Suite permite que los ingenieros de plataformas diseñen experiencias de autoservicio seleccionadas para los desarrolladores, con funciones de seguridad aplicables. Reduce la carga cognitiva de los desarrolladores y los inconvenientes en la cadena de suministro al combinar los portales de desarrollo con protección automatizada e inteligencia artificial aplicada.

Red Hat Developer Hub unifica visualmente herramientas dispares, concentra la documentación y ofrece plantillas de software con planes de referencia aprobados previamente. De esta manera, disminuye el tiempo necesario para la incorporación de los desarrolladores y permite que pasen de la idea al código sin interrupciones.

Las funciones de seguridad de Advanced Developer Suite, como la inteligencia de explotación, utilizan el razonamiento de código basado en inteligencia artificial para analizar y clasificar automáticamente las alertas de puntos vulnerables. En lugar de exigir a los desarrolladores que busquen cada punto vulnerable teórico, Advanced Developer Suite ayuda a los equipos a priorizar las medidas correctivas en función del riesgo real que supone ejecutar la aplicación. Los productos y elementos integrados, como Red Hat Trusted Artifact Signer, Red Hat Trusted Profile Analyzer y Red Hat Trusted Libraries, automatizan la firma criptográfica del código, el seguimiento de la procedencia y la gestión de dependencias verificadas de nivel 3 de los niveles de la cadena de suministro para los elementos de software (SLSA) con el fin de aumentar la seguridad del código desde su introducción hasta el tiempo de ejecución del clúster.

Red Hat OpenShift® es una plataforma de aplicaciones basada en Kubernetes empresarial que te permite desarrollar, modernizar e implementar aplicaciones a gran escala. Sigue estándares abiertos y ayuda a las empresas a diseñar, acelerar y ampliar tanto las cargas de trabajo tradicionales como las cargas basadas en inteligencia artificial mediante funciones de seguridad y cumplimiento normativo integradas. Ofrece un conjunto de herramientas y servicios para optimizar todo el ciclo de vida de las aplicaciones, desde el desarrollo del código hasta la distribución y la gestión de las cargas de trabajo en entornos híbridos. Con Red Hat OpenShift, puedes generar innovaciones más rápido y simplificar la adopción de la inteligencia artificial gracias al conjunto completo de herramientas en la infraestructura que elijas. Olvídate de tener que gestionar herramientas dispares y de los problemas de interoperabilidad y portabilidad que puedan surgir. 

Red Hat OpenShift AI brinda a los analistas de datos y los desarrolladores un entorno totalmente integrado y adaptable para diseñar, entrenar e implementar aplicaciones inteligentes. De este modo, la automatización basada en inteligencia artificial se integrará en tu ecosistema con la menor dificultad posible.

Red Hat OpenShift Dev Spaces y Red Hat Desktop ofrecen entornos de desarrollo uniformes y organizados en contenedores, tanto en las instalaciones como en la nube, que replican los entornos de producción. Esto permite que los equipos prueben aplicaciones y agentes de inteligencia artificial en entornos de pruebas (sandbox) de forma segura antes de implementarlos en un clúster.

Recurso

Modernice la experiencia de los desarrolladores en la nube híbrida

Modernice la experiencia de los desarrolladores en entornos de nube híbrida y acelere la entrega de aplicaciones con Red Hat Services. Descargue el ebook.

Más información

¿Qué es una aplicación empresarial?

Una aplicación empresarial es un software que gestiona los procesos fundamentales de toda una empresa.

IDE: ¿Qué es y para qué sirve?

Un entorno de desarrollo integrado (IDE) es un sistema de software para el diseño de aplicaciones que combina herramientas del desarrollador comunes en una sola GUI. Vea las ventajas y tipos más populares de IDE.

Migración de las aplicaciones

La migración de aplicaciones es el proceso de trasladar las aplicaciones de un entorno a otro con el objetivo de mejorar las cargas de trabajo.

Desarrollo y distribución de aplicaciones.: lecturas recomendadas