Modelo de Madurez de Ingeniería de Plataforma

Introducción

El Platforms White Paper inicial de la CNCF describe qué son las plataformas internas para computación en la nube y los valores que prometen entregar a las empresas. Pero para alcanzar esos valores, una organización debe reflejar y perseguir deliberadamente resultados y prácticas que tienen impacto en ellas, teniendo presente que toda organización depende de una plataforma interna elaborada para sí misma, aún si esa plataforma no fuera más que documentación sobre cómo utilizar servicios de terceras partes. Este modelo de madurez provee un marco de trabajo para esa reflexión y para identificar oportunidades de mejora en cualquier organización.

¿Qué es la Ingeniería de Plataforma?

Inspirados en la promesa de cooperación interdisciplinaria de DevOps, las Plataformas y la Ingeniería de Plataforma, han emergido en las empresas como una forma implícita de cooperación. Las plataformas organizan y presentan capacidades comunes, marcos y experiencias. En el contexto de este grupo de trabajo y publicaciones relacionadas, el foco está puesto en plataformas que facilitan y aceleran el trabajo de usuarios internos tales como equipos de producto y aplicaciones.

Ingeniería de Plataforma es la práctica de planificar y proveer esas plataformas de cómputo a desarrolladores y usuarios y abarca a todas las partes de las plataformas y sus capacidades: personas, procesos, políticas y tecnologías; como así también los resultados de negocio deseados que los impulsan.

Por favor, lea primero el CNCF Platforms White Paper para un contexto más completo.

Cómo usar este modelo

A medida que la Ingeniería de Plataforma ha ido ganando importancia durante los últimos años, algunos patrones se han vuelto evidentes. Al organizar estos patrones y observaciones en un modelo de madurez progresivo, intentamos orientar a los equipos de plataforma hacia los desafíos que pueden presentarse y las oportunidades que deben perseguir. Cada aspecto se describe en base a una continuidad de características de diferentes equipos y organizaciones en cada nivel, dentro de ese aspecto. Esperamos que los lectores se reconozcan a sí mismos dentro del modelo e identifiquen oportunidades en los niveles adyacentes.

Como nota, cada nivel adicional de madurez, va acompañado de mayores requerimientos presupuestarios y dedicación de tiempo de las personas. Por lo tanto, alcanzar el nivel más alto no debería ser una meta en sí misma. Cada nivel describe cualidades que deberían aparecer en esa etapa. Los lectores deben considerar si su organización y contexto actual se beneficiarían de esas cualidades, en base a la inversión requerida.

Manténgase presente que cada aspecto está pensado para ser evaluado y evolucionado de manera independiente. Sin embargo, como en cualquier sistema técnico social, estas características son complejas e interrelacionadas. Por ello, podría ocurrir que para mejorar en un aspecto determinado, también se deba alcanzar un nivel mínimo en otro aspecto.

También es importante reconocer que las implementaciones de plataformas varían de una organización a otra. Asegúrese de evaluar el estado actual integral de la transformación nativa de la nube de su grupo. Un recurso fenomenal de apoyo para esta evaluación es el Cloud Native Maturity Model.

Por último, este modelo alienta a que las organizaciones maduren su disciplina de Ingeniería de Plataforma y sus plataformas resultantes mediante una planificiación intencional. Tal planificación y disciplina son requerimientos en sí mismos para el desarrollo de plataformas maduras y su evolución continua.

En general, tenga presente que al mapear su organización dentro de un modelo, captura el estado actual para permitir la iteración y mejora progresiva. Martin Fowler bien lo dice: “El verdadero resultado de una evaluación de modelo de madurez no es en qué nivel uno se encuentra, sino la lista de cosas en las que se debe trabajar para mejorar. Su nivel actual es tan solo un estadío intermedio de trabajo para poder determinar esa lista de conocimientos que se deben adquirir a continuación.”. En ese sentido, procure ubicarse dentro del modelo y luego identifique oportunidades en los niveles adyacentes.

El contexto detrás de este trabajo

Es valioso entender el contexto en el cual se ha escrito un documento. Las siguientes secciones establecen un contexto detrás del modelo, así como algunas expectativas para usted, el lector.

Audiencia objetivo

Cada lector trae un contexto único y tomará aprendizajes únicos de este modelo. A continuación se describen algunos roles que tenemos en mente, así como sus posibles motivaciones para relacionarse con el modelo:

  • CTOs, VPs, y Directores de Tecnología: Líderes que buscan trazar un camino hacia la transformación digital y una mayor productividad en el desarrollo
  • Gerentes de Ingeniería: Grupos e individuos que buscan empoderar a sus ingenieros, para que provean valor con menor sobrecarga y mayor eficiencia
  • Arquitectos empresariales: Individuos que navegan por el escenario tecnológico moderno, en busca de una perspectiva de valor orientada a dar soluciones a problemas tecnológicos
  • Ingenieros de Plataforma y Gerentes de Producto de Plataforma: Equipos y personas que buscan construir la mejor experiencia posible para quienes construyen y utilizan las plataformas
  • Fabricantes de productos y quienes mantienen proyectos: Organizaciones e ingenieros que desean diseñar herramientas y dar mensajes que permitan que los usuarios tengan éxito con las plataformas y sus capacidades
  • Desarrolladores de aplicaciones y productos: Usuarios de plataforma que buscan comprender con mayor detalle qué podrían esperar de una plataforma interna

Comprendiendo los niveles

Este modelo no está concebido para clasificar en forma determinante a una organización o plataforma con un “Nivel 1” o “Nivel 4.” Cada aspecto debe considerarse de manera independiente de las otras; las características de cada nivel representan una continuidad dentro de ese aspecto, pero no están necesariamente acopladas a otros aspectos del mismo nivel. Más aún, muchas organizaciones verán características de más de un nivel, que aplicarán a sus equipos y trabajos. Esto se debe a que ningún nivel es inherentemente bueno o malo, sino solo contextual a los objetivos del equipo.

Las etiquetas de cada nivel pretenden reflejar el impacto de la Ingeniería de Plataforma en su organización. A medida que reconozca a su organización en un nivel determinado, obtendrá una visión de las oportunidades que siguen en los siguientes niveles. Los niveles más bajos comprenden soluciones más tácticas, mientras que los más altos son más estratégicas.

Esto genera un potencial proceso para el desarrollo y madurez de las plataformas, similar al desarrollo de otro producto digital: primero, reconocer un problema y la necesidad de una nueva solución, luego desarrollar productos mínimamente viables como soluciones hipotéticas, en tercer lugar iterar para mejorar la solución y asegurar que satisface a los clientes y finalmente escalar y optimizar el producto para resolver el problema para muchos equipos y usuarios.

De forma similar al CNCF Cloud Native Maturity Model, este modelo resalta que solo se pueden lograr resultados de negocio exitosos mediante el balance entre personas, procesos y políticas en conjunto con la tecnología. Notablemente, este modelo introduce aspectos que con frecuencia no competen a un único equipo sino que requiere de la cooperación entre varias áreas de ingeniería y, con bastante frecuencia, de toda la organización.

Pero no parece encajar

¡Eso está perfecto! Todas las organizaciones y grupos tienen dinámicas y parámetros específicos.

Hay que tener presente que el objetivo de este paper no es el de prescribir una fórmula rígida, sino dar un marco de trabajo que pueda aplicar a sus circunstancias. Puede que no todas las palabras le sean relevantes, pero esperamos que el contenido lo inspire a una introspección sobre el trayecto de su propia plataforma, tomando lo que tenga sentido y dejando de lado el resto.

El objetivo de este modelo es proveer una herramienta que provea una guía a los practicantes de Ingeniería de Plataforma y otros sujetos interesados en sus recorridos. El diseño e implementación de plataformas no es una ciencia exacta sino que depende de las necesidades de un proyecto individual, una organizacion y un tiempo y lugar particular.

Tabla del modelo

Aspect
ProvisionalOperativoEscalableOptimizable
Inversión¿Cómo se asigna personal y presupuesto a las capacidades de la plataforma?Voluntario o transitorioEquipo dedicadoComo productoEcosistema facultado
Adopción¿Por qué y cómo los usuarios descubren y usan las plataformas internas y sus capacidades?ErráticaEmpuje extrínsecoTracción intrínsecaParticipatoria
Interfaces¿Cómo interactúan los usuarios con la platforma y cómo consumen sus capacidades?Procesos peronalizadosHerramientas estándarSoluciones de autoservicioServicios integrados
Operaciones¿Cómo se planifican, priorizan, desarrollan y mantienen las plataformas y sus capacidades?A demandaResgistro centralHabilitación centralServicios gestionados
Medición¿Cómo es el proceso para obtener e incorporar retroalimentación y aprendizaje?Ad hocRecopilación consistenteIdeasCuantitativo y cualitativo

Detalle del modelo



Conclusión

Las plataformas y quienes las mantienen, proveen los fundamentos para el desarrollo ágil de productos digitales. Proveen un conjunto consistente de capacidades que habilitan el desarrollo y entrega de software eficiente. Este modelo de madurez provee un mapa para su viaje hacia Ingeniería de Plataforma.

NOTA: en caso de considerarlo necesario, puede consultar la versión más reciente de este documento en Inglés