Platform Engineering
El concepto de platform engineering propone la arquitectura digital pensada como plataforma para que la tecnología esté disponible en modo self-service y automatizada.
Las plataformas digitales proponen los guidelines de arquitectura deseables para una organización, concentra los esfuerzos de soporte y propone métricas para evaluar el desempeño. Así, se constituyen en la pieza clave en la que confluyen todos los equipos de desarrollo, donde se crean todas las soluciones de negocios y donde se piensa el valor agregado que cada tecnología puede aportar a la organización.
Sus beneficios son múltiples. En primer lugar, impulsan el time to market, un factor crítico en un contexto cambiante e incierto, en el que la capacidad de responder rápidamente hace la diferencia. En efecto, las plataformas digitales ayudan a la aceleración en el uso de tecnologías, ya que permite desarrollar POCs, MVPs y demás de forma veloz, con el foco puesto en que el caso de uso entre en producción. En el caso de las tecnologías emergentes, permite escalarlas más fácilmente en la organización, ya que las habilita para todos los desarrolladores.
Además, disminuyen la curva de aprendizaje y adopción y maximizan la experiencia de los desarrolladores, algo muy importante en estos tiempos de alta rotación y de escasez de talento.
Por otra parte, platform engineering incorpora prácticas SRE (site reliability engineering) que incluyen temas como observabilidad, telemetría, AIOps, chaos enginering o la habilidad de selfhealing de las soluciones. Esto es vital: los equipos de ingeniería de plataforma gobiernan el correcto uso de las tecnologías en producción de la compañía. Estas prácticas hacen que las soluciones sean seguras, escalables, confiables, resilientes y eficientes en costos.
Plataforma digital paso a paso
El primer paso es identificar los dominios aplicativos (por ejemplo, los canales) que podrían requerir estos planteamientos, sea por su alto volumen de desarrolladores o por la necesidad imperiosa de continuos delivery / continuous deployment (CI/CD). Surge el debate de a quién le corresponde pagar este equipo: el CIO y el CTO deben habilitar el presupuesto como algo estructural de TI y no depender de las peticiones de las otras áreas si quieren estar preparados para ponerse delante de la necesidad del negocio.
Se recomienda pensar en pequeño al principio: habilitar un DevOps más automatizado o un portal de provisión para gestión de entornos efímeros. Si se aporta valor desde el primer minuto, será más sencillo pasar a conceptos más avanzados como fomentar el catálogo de componentes empaquetados (PBCs) gestionados desde un IDP (Internal Developer Portal) o propiciar la composabilidad para facilitar y acelerar el ensamblado de soluciones.
Aparecerán fricciones en los equipos (ingeniería, arquitectura, infraestructura, DevOps) en torno a quién será el product owner de esta novedad. Pero lo importante es el “cómo”: que el responsable aplique los nuevos paradigmas y rompa con el status quo. Platform engineering impulsa a su vez un enfoque ZeroOps aplicado al ciclo de vida del desarrollo del software que exige cambios organizativos que podrían generar resistencias. Por eso es importante avanzar en simultáneo con programas de gestión del cambio.
En pocas palabras, platform engineering persigue el propósito de liberar a los desarrolladores de las complejidades tecnológicas y darles el poder para que se concentren en entregar valor agregado.