|
En la prehistoria —hace unos 15 años— los programadores que trabajábamos en una organización medianamente grande no veíamos una base de datos ni en pintura. Teníamos que escribir un ticket al equipo de soporte o infraestructura que, después de tres días, podían responderte que faltaba un campo o cualquier otra carallada que había que resolver antes de volver a empezar el proceso.
Y, por supuesto, no tenías ningún control sobre cuándo entraría en producción tu trabajo. Hasta existía el rol de Release Manager, gatekeepers de manual que se encargaban de planificar «ventanas de lanzamiento» y comprobar si tu código superaba los test necesarios antes de meterlo en la más próxima.
Luego llegó DevOps —o el conjunto de prácticas y herramientas para acabar con esa separación entre desarrollo y operaciones— que nos proporcionó autonomía, pero a un coste altísimo. Junto a tu código podías crear y configurar la infraestructura que necesitabas para ejecutarlo, pero a cambio te exigía conocer cómo funcionaba.
En la práctica, aunque se suponía que DevOps no era un rol específico sino una forma de trabajar, acabaron surgiendo perfiles especializados e incluso «equipos de DevOps».
Ese es el contexto en el que surge el concepto de Engineering Platform. Algunos creen que solo es el penúltimo «palabro» de moda o DevOps con una capa de marketing encima, pero en realidad, la Engineering Platform supone la productización de DevOps. No lo elimina. No lo limita. Lo encapsula y da soluciones probadas —que llamamos golden paths— a problemas recurrentes. Es, en esencia, un producto interno para desarrolladores. Una plataforma de autoservicio que abstrae infraestructura, seguridad y operaciones, y ofrece formas de hacer las cosas bien sin tener que redescubrir el sistema cada vez.
Imaginad que quieres un entorno de pruebas con una base de datos y un servicio de mensajería. Entras en tu portal de autoservicio, rellenas tres campos para definir tus necesidades y la plataforma se encarga de toda la «fontanería» por debajo.
Los desarrolladores no deciden cómo provisionar una base de datos, ni qué políticas de seguridad aplicar, ni cómo desplegar un servicio. Deciden qué necesitan. Punto.
Pero la abstracción no supone restricción. No se trata de limitar lo que pueden hacer los desarrolladores, sino de proporcionarles opciones que, por defecto, funcionan. Si necesitas salirte del camino dorado porque tienes una casuística especial, puedes; pero para el 90 % de tareas, la plataforma lo hace todo por ti.
No es «magia», sino la combinación de una capa de abstracción como Kratix, que permita definir qué recursos se ofrecen a los desarrolladores; un motor de aprovisionamiento como Crossplane o Terraform; y la guinda del pastel: un portal donde los desarrolladores pueden ver los distintos servicios, plantillas y documentación, como Backstage. Toneladas de tecnología que funcionan de forma transparente con el único objetivo de que la experiencia de desarrollo sea facile e divertente.
En este escenario es donde la IA realmente brilla. Como el entorno es estándar y predecible, el código que genera encaja a la primera. No hay fricción. Solo debemos preocuparnos de que haga lo que se supone que debe hacer.
Evidentemente, no es una solución universal. Por supuesto que una startup de tres personas que aún está validando una idea no necesita una Engineering Platform, pero cuando empiezas a tener varios equipos de desarrollo que se enfrentan a problemas similares, a lo mejor deberías planteártelo.
Por supuesto que encontrarás a más de un gurú que afirma que las Engineering Platforms no son más que la lápida de un paradigma caduco y que, en el futuro, la IA coordinará y gestionará toda nuestra lógica de negocio. Puede que tengan razón, pero si tienes que vivir y trabajar en el presente, sería tan estúpido ignorar la IA como no dedicar unos minutos a profundizar en el concepto, dejando tus sesgos a un lado.
Cuando ya se ha adoptado de forma masiva para multiplicar la productividad individual, la ventaja competitiva hoy está en optimizar el entorno colaborativo donde se utiliza la IA.
La IA acelera al programador. El entorno puede eliminar los obstáculos para que pueda desarrollar sin frenos.
|