Enable javascript in your browser for better experience. Need to know to enable it? Go here.
Blogs Banner

Plataforma de ingeniería: clave para maximizar la eficacia del desarrollo de software

La ola de rápida transformación digital exigida por la pandemia cambió la perspectiva que muchas organizaciones tenían de las TI. Pasó de ser considerada un centro de costes o una función de apoyo a algo que puede impulsar el crecimiento y añadir valor comercial, lo que llevó a que más líderes que nunca se dieran cuenta de que la tecnología es la fuerza motriz de las empresas digitales modernas. No es de extrañar, por tanto, que la inversión en TI esté creciendo: Gartner prevé que el gasto mundial en TI alcance los 4,6 billones de dólares en 2023. 

 

Sin embargo, las condiciones económicas actuales están empujando a las organizaciones a asegurarse de obtener un retorno tangible de sus inversiones. Esto requiere una optimización no sólo en términos de costes, sino también de agilidad empresarial, escalabilidad y complejidad. Esto puede lograrse de dos maneras:

 

  1. Centrándose en la mejora de las capacidades a nivel individual.
  2. Implementando el cambio a nivel organizativo, creando una experiencia para el desarrollador a través de herramientas y fomentando un ecosistema para el desarrollo eficaz de software.

 

Este blog explora el segundo enfoque a través de plataformas de ingeniería que permiten una experiencia del desarrollador sin fricciones.

 

Pero primero, ¿cuál es la fricción en la experiencia de un desarrollador?

Tipos de fricción por los que pasa el equipo de ingeniería

Hay muchos tipos de fricción en el ciclo de vida del desarrollo de software. Por ejemplo:

 

  • Fricción de entrega: cuando los desarrolladores tienen que esperar a disponer de la infraestructura, las decisiones o las herramientas necesarias.
  • Fricción de acceso: cuando se produce un retraso o un bloqueo en el acceso a los sistemas adecuados.
  • Fricción cognitiva: cuando el exceso de herramientas y la complejidad operativa para actividades sin valor añadido provocan una sobrecarga de información. 

 

Aquí encontrarás más información sobre la mala experiencia de los desarrolladores y su impacto en el ciclo de vida del desarrollo de software (SDLC).

 

Aunque las fuentes de fricción varían, todas pueden caracterizarse de la misma manera: requieren tiempo y energía, pero no crean valor para el usuario final. Por ejemplo, los equipos de producto pueden encontrarse a veces dando soporte a la infraestructura o construyendo y configurando canalizaciones/entornos CI/CD - aunque estas cosas son necesarias, no contribuyen al valor para el cliente. Demasiadas actividades que no aportan valor crean demasiados cambios de contexto, lo que aumenta la carga cognitiva general del desarrollador. Esto reduce la capacidad de los desarrolladores para lograr el flujo y maximizar la entrega de valor.

 

La plataforma de ingeniería reduce la fricción ocultando la complejidad que no es esencial para el valor empresarial

Para minimizar esto, los equipos de desarrollo de software necesitan una plataforma de ingeniería sólida que oculte la complejidad y ofrezca funciones de autoservicio para que los desarrolladores puedan centrarse simplemente en crear funciones orientadas al cliente. Veamos qué aspecto tiene esa plataforma.

 

¿Qué es una plataforma de ingeniería?

 

En general, las plataformas son bases tecnológicas que aceleran la capacidad de una empresa para ofrecer valor al cliente. Una plataforma de ingeniería hace lo mismo para sus equipos de desarrollo de software, que son, de hecho, sus clientes. Una buena plataforma de ingeniería consta de tres componentes básicos: un centro de infraestructura de entrega, un centro de servicios y un centro de conocimientos. La plataforma debe estar respaldada por una gobernanza ligera y un portal de experiencia del desarrollador sin fricciones.

Componentes de una plataforma de ingeniería

A developer experience portal provides a single point with self-service capabilities for product teams leading to elevated developer experience. 

 

El centro de la infraestructura de entrega (DI) proporciona a los equipos de producto "rutas doradas" automatizadas y de autoservicio que van del desarrollo a la producción con controles de calidad y seguridad incorporados. El centro incluye herramientas multiplataforma comunes, como la configuración de integración continua y capacidades de observación y supervisión. También acelera la creación de productos y entornos de infraestructura de orden superior utilizando Infrastructure-As-Code (IaC) sobre los servicios en nube existentes.

 

El centro de servicios ofrece una capacidad bajo demanda para publicar y descubrir API y eventos junto con documentación y kits de desarrollo de software (SDK). Ayuda a los equipos de producto a reutilizar y componer activos digitales, lo que limita las dependencias y acelera la entrega.

 

El centro de conocimiento rompe los silos organizativos al facilitar la publicación de documentación de proyectos, tutoriales a nivel orgánico, guías, recetas para la incorporación/desincorporación, arquitectura, valores predeterminados sensibles e información y políticas de seguridad y conformidad. La búsqueda unificada también ayuda a los desarrolladores a descubrir soluciones más rápidamente. Con la documentación y las automatizaciones adecuadas, hemos visto cómo los tiempos de incorporación se reducían de meses/semanas a días.

 

La gobernanza automatizada, con capacidad de observación de la plataforma de ingeniería, proporciona cuadros de mando en tiempo real y perspectivas de las métricas operativas relacionadas con la entrega de software y los sistemas de producción, como las cuatro métricas clave de DORA (4KM), la disponibilidad y el coste de la nube, junto con la supervisión y el seguimiento continuos de las métricas y los requisitos de cumplimiento. Gartner lo divide en dos categorías: la primera es la plataforma de inteligencia de ingeniería y la segunda es la plataforma de gestión del flujo de valor de ingeniería. 

 

Un portal de la experiencia del desarrollador proporciona un punto único con capacidades de autoservicio para los equipos de producto, lo que conduce a una mejor experiencia del desarrollador.

 

Backstage de Spotify, como portal para desarrolladores

 

Spotify ha desarrollado una plataforma de código abierto para crear portales para desarrolladores llamada Backstage. Aunque ofrece funciones básicas listas para usar, las organizaciones tienen que adaptarla a sus necesidades. Hemos utilizado Backstage para crear un portal para TELUS llamado Simplify, que mejora la experiencia de los desarrolladores para sus 8.000 ingenieros. Más información aquí.

 

Plataformas de ingeniería en acción

 

NEO por Thoughtworks

 

En Thoughtworks, hemos creado nuestra propia plataforma de ingeniería llamada NEO para permitir un desarrollo eficaz del software. NEO ofrece múltiples funciones de autoservicio y herramientas de desarrollo para eliminar fricciones y agilizar los procesos. Al mantener al desarrollador y su viaje de desarrollo de productos en el centro, NEO les ayuda a centrarse en lo más importante: desarrollar software para ofrecer valor empresarial rápidamente.

Resultados de la plataforma NEO de Thoughtworks

Introducción a una plataforma de ingeniería

 

Nuestra experiencia nos ha enseñado que construir plataformas de ingeniería como un producto es la clave del éxito. Hemos identificado cuatro principios que son fundamentales para este éxito:

 

  1. Entregar valor a través del enfoque en el cliente (es decir, los desarrolladores en este caso)
  2. Ser incremental - construir un MVP y seguir los principios de entrega continua
  3. Facilitar el uso de la plataforma y reducir las fricciones para su adopción.
  4. Definir medidas claras de éxito, como mejorar en DORA 4KM.

 

Además de estos cuatro principios, el equipo responsable de crear la plataforma debe ser responsable de:

 

  • Estrategia: el equipo debe esbozar la pila tecnológica, las prácticas de ingeniería, los procedimientos operativos estándar y la infraestructura básica para el desarrollo, desde la ideación hasta la puesta en marcha.
  • Herramientas: el equipo debe crear plantillas y planos de arquitectura. Deben desarrollar marcos para la automatización de aplicaciones e infraestructuras en diferentes cargas de trabajo. Esto garantizará un camino pavimentado hacia la producción con valores predeterminados razonables.
  • Adopción: los equipos de ingeniería deben poder adoptar prácticas estandarizadas y aprovechar las plantillas mediante programas de emparejamiento, intercambio de conocimientos y desarrollo de capacidades.
  • Métricas: es esencial que el equipo mida las métricas de entrega y cree cuadros de mando y visualizaciones para la supervisión y las alertas.

Crear equipos de ingeniería de plataformas con 4 responsabilidades clave

Una buena plataforma de ingeniería eliminará las tareas repetitivas y sin valor añadido de la lista de un desarrollador, permitiéndole centrar su energía, habilidades y esfuerzo en ofrecer valor al cliente. También fomentará la reutilización de activos digitales; esto no sólo ahorrará tiempo y elevará la experiencia del desarrollador, sino que también puede reducir los costes medioambientales. 

 

A largo plazo, facilitará la incorporación/desincorporación de miembros del equipo, minimizando las pérdidas de traducción. También será el hogar de una documentación clara, que evitará las conjeturas y reducirá la deuda técnica.

Aviso legal: Las declaraciones y opiniones expresadas en este artículo son las del autor/a o autores y no reflejan necesariamente las posiciones de Thoughtworks.

Sé excelente con eficacia de ingeniería