La ingeniería de plataformas, que centraliza las mejores prácticas y los componentes para equipos de desarrollo, es más importante con las prácticas y marcos de DevSecOps que se integran más en las organizaciones. Con la ingeniería de plataformas se normalizan y estandarizan los flujos de trabajo de los desarrolladores mediante «Golden Paths» optimizados para la mayoría de sus cargas de trabajo y flexibilidad para definir excepciones para el resto.
Gartner® predice que «para 2026, el 80 % de las grandes organizaciones de ingeniería de software tendrán equipos de ingeniería de plataformas como proveedores internos de servicios, componentes y herramientas reutilizables para entregar aplicaciones, frente al 45 % en 2022» [1]. Con la ingeniería de plataformas, las organizaciones, especialmente aquellas más grandes con muchas iniciativas de ingeniería que se realizan en paralelo, adaptan principios y herramientas de DevSecOps más fácil. Este enfoque es muy importante cuando las empresas tienen presión para hacer más con menos.
Beneficios clave de la ingeniería de plataformas
Aumentar la velocidad de comercialización: la ingeniería de plataformas promete ayudar a las organizaciones a entregar software de mejor calidad de manera más rápida y rentable. Crear un equipo de ingeniería de plataformas dará sus frutos a largo plazo, ya que permitirá a las grandes organizaciones avanzar rápidamente con menos herramientas, lo que dará un gran ahorro de costos.
Reducir los riesgos de seguridad y cumplimiento: menos herramientas y flujos de trabajo más normalizados reducen los gastos generales de cumplimiento y la posible superficie de ataque de las organizaciones. Según el Informe de IBM sobre el costo de una filtración de datos, el costo promedio global de la filtración de datos en 2023 fue de $4,45 millones. Aun así, las organizaciones que gestionaron su superficie de ataque bien contuvieron las filtraciones con mayor rapidez.
Mejorar la experiencia del desarrollador: la DevEx es una prioridad cada vez mayor, ya que las empresas compiten por atraer y conservar a los mejores desarrolladores. Los equipos de ingeniería de plataformas pueden ayudar a mejorar la experiencia del desarrollador creando flujos de trabajo eficientes y automatizados o Golden Paths y eliminando algunas tareas manuales y externas de las cargas de trabajo de los desarrolladores. Esto simplifica su día a día, lo que les permite crear, probar e implementar aplicaciones de forma eficiente y centrarse en tareas con mayor impacto y más críticas para el negocio.
Prácticas recomendadas de ingeniería de plataformas
Comience con la cultura
Si la «plataforma» describe lo que debemos construir, la «ingeniería» describe cómo se debe construir. Demasiadas organizaciones se lanzan a comprar e instalar tecnología sin considerar cómo necesitarán evolucionar su cultura organizativa para que la adopción sea un éxito.
Los equipos de ingeniería de plataformas deben considerarse propietarios del producto, y los desarrolladores, sus clientes. Deben realizar una labor de descubrimiento para comprender las necesidades de los desarrolladores y luego llegar a los usuarios finales para ayudarlos a tener éxito con los recursos proporcionados. Para ello, es necesario contar con conocimientos internos de marketing, comunicación y atención al cliente, de los que a menudo carecen los equipos técnicos.
La clave es una mentalidad y cultura orientadas al producto, que permiten a los equipos de ingeniería de plataformas centrarse en crear valor para sus usuarios finales (desarrolladores) escuchando comentarios de los usuarios e iterando y mejorando continuamente su producto (la plataforma de desarrolladores). Los líderes deben crear un entorno en el que los miembros del equipo se sientan capacitados para buscar formas de ayudar a sus clientes (internos) específicos. Se centrarán en facilitar al máximo el consumo de sus servicios, probablemente a través de interfaces de autoservicio o API programables.
Centrarse en aportar valor comercial
Al poner en marcha una iniciativa de ingeniería de plataformas, las organizaciones pueden verse tentadas a buscar equipos altamente productivos y copiar lo que hacen. Desafortunadamente, se hace demasiado hincapié al principio en la estructura del equipo o en las herramientas que utiliza. Estos suelen ser los resultados de un equipo muy productivo, no la causa. En lugar de centrarse en la estructura y las herramientas de los equipos, los líderes deben centrarse en los resultados comerciales que desean obtener y, luego, identificar las herramientas y las estructuras de equipo adecuadas para alcanzar esos objetivos.
Defina el objetivo de su práctica de ingeniería de plataformas en términos de impacto comercial. Desarrollar software más rápido es genial, pero ¿por qué? ¿A qué objetivo comercial responde?
Por ejemplo, aumentar la velocidad y la agilidad es un objetivo común, pero podría haber varios objetivos comerciales detrás. La lentitud en la comercialización tiene un costo de oportunidad evidente, ya que las organizaciones deben tomar decisiones difíciles sobre qué productos priorizar. Las organizaciones que pueden actuar con mayor rapidez también están mejor preparadas para responder a la rápida evolución de los mercados. Y hay implicaciones de seguridad: las organizaciones deben saber que pueden responder de manera rápida y eficiente si ocurre un incidente de seguridad.
Las métricas comunes de productividad y eficiencia son útiles, pero los líderes deben tratar de traducir esas métricas a valores en dólares para aclarar el valor comercial. Por ejemplo, supongamos que un esfuerzo de ingeniería de plataformas reduce el tiempo que tarda un nuevo desarrollador en realizar su primer compromiso con la producción. En ese caso, la organización se ahorra un determinado porcentaje del salario del primer año de ese desarrollador y parte del salario de quienes lo rodean y le ayudan a incorporarse. Es probable que la organización también aumente la retención, lo que reducirá la necesidad de contrataciones costosas (incluida la publicidad, los reclutadores y los largos ciclos de entrevistas).
Los líderes pueden optimizar las iniciativas de ingeniería de plataformas al mantenerse enfocados en el valor comercial para impulsar los resultados correctos.
Que sea siempre medible
Es importante contar con métricas que ayuden a realizar un seguimiento del progreso del equipo de ingeniería de plataformas y a comprender cómo los desarrolladores usan (o no) los servicios prestados. Así hay una mejora continua, se identifican las áreas de éxito o la necesidad de recursos adicionales, y se ayuda con los esfuerzos internos de marketing.
Algunas métricas potenciales que considerar:
-
Tasa de adopción: ¿cuántos desarrolladores utilizan activamente la plataforma?
-
Tiempo hasta que se ofrece valor al usuario: ¿cuánto tarda un nuevo desarrollador en comenzar a entregar el código en la plataforma?
-
Participación de la comunidad: ¿qué porcentaje de componentes de la plataforma aportó la comunidad? (Por ejemplo, cuando un equipo desarrolla un nuevo trabajo de CI que podría beneficiar a otros, ¿lo comparte con el equipo de ingeniería de plataformas para que se aplique y se realice un mantenimiento de manera más amplia?).
Crear para todos
Los primeros usuarios de una plataforma de desarrolladores pueden ser los más visibles (y ruidosos) al principio del proceso. Sin embargo, recuerde que los primeros usuarios, que generalmente representan menos del 20 % de una organización, pueden tener necesidades muy diferentes a las de la mayoría de los usuarios que eventualmente aprovecharán la plataforma. Al definir los Golden Paths adecuados para su organización, asegúrese crear para la mayoría, no solo para los primeros usuarios.
Un Golden Path común en el que vale la pena invertir desde el principio es un pipeline de CI/CD integral que admita un tipo particular de carga de trabajo en un conjunto de plataformas de destino (como Kubernetes). Una vez que se admite esta carga de trabajo básica, proporciona una base sólida para las demás y la confianza de que la plataforma puede aportar valor. Defina los Golden Paths prioritarios de su organización con respecto a los resultados comerciales que permiten.
La plataforma de DevSecOps: una base para la ingeniería de plataformas
Una plataforma de DevSecOps brinda una interfaz de usuario, un almacén de datos unificado y seguridad integrada dentro del ciclo de vida de DevSecOps. Con una plataforma de DevSecOps, las organizaciones crean una base para la ingeniería de plataformas con flujos de trabajo como servicio para todo el proceso de desarrollo de software.
Estos son algunos elementos críticos de una plataforma de DevSecOps que preparan a los equipos para el éxito con la ingeniería de plataformas:
-
Planificación y colaboración: la ingeniería de plataformas no funcionará sin transparencia. Reunir a todos en la misma plataforma agiliza la comunicación y ayuda a los desarrolladores a mantenerse al tanto de la estrategia y el alcance, lo que permite planificar, crear, probar, proteger, implementar y supervisar el código de manera más eficiente.
-
CI/CD y orquestación: la orquestación se encuentra en el corazón de la ingeniería de plataformas. Una plataforma ayuda a los desarrolladores a verificar la calidad del código y llevarlo a producción. También proporciona un mecanismo de creación de plantillas para garantizar que se incorporen las prácticas recomendadas comunes y que cada cambio pase por un proceso de calidad uniforme y continuo.
-
Experiencia del desarrollador: la DevEx se trata de simplificar el día a día de los desarrolladores automatizando tareas manuales y eliminando decisiones innecesarias. Con una plataforma de DevSecOps, todo el código se encuentra en un solo lugar. Así, los desarrolladores puedan encontrar fácilmente lo que necesitan con un cambio de contexto mínimo. Además, proporcionar a los desarrolladores plantillas reutilizables y funcionalidades con tecnología de IA, como sugerencias de código y explicaciones de código, elimina los obstáculos de modo que los desarrolladores puedan incorporarse rápidamente y comenzar a crear valor de inmediato.
-
Seguridad integrada: con una plataforma de DevSecOps, el análisis de seguridad automatizado garantiza que todo el código cumpla con una política de referencia y, sobre todo, los desarrolladores tienen acceso de autoservicio a esos datos. No esperan hasta el día de la puesta en producción para descubrir que el equipo de seguridad ha encontrado una vulnerabilidad crítica.
-
Métricas y análisis: para que una iniciativa de ingeniería de plataformas tenga éxito, las organizaciones deben identificar los objetivos comerciales detrás del proyecto y poder supervisar su progreso hacia esos objetivos. Los paneles y análisis que extraen datos de todo el ciclo de desarrollo de software permiten a las organizaciones realizar un seguimiento de las métricas clave, evaluar el impacto de las mejoras de los procesos y profundizar en los obstáculos. Eso permite a los líderes identificar rápidamente las tendencias y los cuellos de botella para que puedan centrar los esfuerzos en los proyectos de riesgo.
Más información sobre cómo GitLab acelera el desarrollo de software al proporcionar a los equipos de DevSecOps un único portal de autoservicio para herramientas y flujos de trabajo, lo que reduce la carga cognitiva y hace que la entrega de software sea más escalable.
[1] Gartner, Top Strategic Technology Trends for 2024, Bart Willemsen, Gary Olliffe y Arun Chandrasekaran, 16 de octubre de 2023. GARTNER es una marca registrada y marca de servicio de Gartner, Inc. y/o sus afiliados en los Estados Unidos e internacionalmente, y se utiliza en este documento con permiso. Todos los derechos reservados.
Encuesta global de DevSecOps de 2024
Lea los resultados de la encuesta de más de 5000 profesionales de DevSecOps en todo el mundo para obtener información sobre cómo está evolucionando el comportamiento hacia la seguridad, la IA y la experiencia del desarrollador.
Leer el informe