¿Cuál es el futuro de los roles del desarrollo?
Últimamente me da por pensar en cómo creo que evolucionarán los actuales roles del desarrollo con el auge de la IA, los agentes y las nuevas formas de consumir servicios, como los MCPs.
A mediados de los 2010 se puso de moda la separación de frontend y backend, para pasar a tener APIs que pudieran ser consumidas por SPAs, apps móviles e incluso otros backends. Todo pasó a ser frontends "reactivos" desarrollados con React, Vue o el framework de turno. Es cierto que estos frontends son más agradables para los usuarios, pero también más complejos. Y con el tiempo se han ido volviendo más y más complejos: gestores de estado, hooks, etc.
No solo el frontend se volvió más complejo. Liberados de la carga del monolito, los sistemas backend también empezaron a volverse más complejos, tanto en arquitectura como en componentes: monolitos desacoplados, microservicios, colas, cachés, etc. No es que antes no se necesitasen estos componentes, es que de repente se volvieron piezas indispensables para cualquier proyecto que arrancase de cero y sin apenas tráfico. El desarrollo de APIs HTTP, bien sean REST o GraphQL, se convirtió en lo más habitual.
Con la llegada de la IA todo está empezando a cambiar: el de marketing te manda informes en HTML estático generado por su agente favorito, el de data monta sus propios dashboards, y los project managers crean sus propias herramientas de gestión de proyectos en unos estupendos monolitos (para la IA es más fácil trabajar en un solo repo).
Y no es solo que alguien que jamás hubiese aceptado recibir un informe en HTML de repente se ha convertido en su mayor fan, es que además te piden desarrollar un MCP del producto principal de tu empresa para poder integrarlo en sus experimentos, o consultar los datos que necesitan.
Toda esta nueva autonomía me hace pensar que en un futuro el frontend tal y como hoy lo conocemos puede quedar obsoleto. Especialmente el de herramientas internas y de datos. El poder generar al momento vistas ad hoc efímeras y consumir APIs o MCPs es una gran ventaja para esto. No estás atado a las vistas que ha creado el responsable de producto o el de diseño, sino que puedes crear lo que necesites en cada momento, con la interactividad que quieras y desecharlo tras usarlo (o conservarlo). Y eso asumiendo que queramos ver datos de forma visual, probablemente solo queramos acceder a respuestas concretas a través de un chat de voz con nuestro agente favorito.
Si, por otra parte, hablamos de frontends más orientados a usuarios, también creo que pueden experimentar grandes cambios. Algo como Spotify se puede convertir en una app controlada íntegramente por voz, es su ecosistema ideal. La Wikipedia puede generar páginas a medida cruzando distintos artículos para unificar información y obtener todo en un único sitio. Las redes sociales serían menos molestas y dañinas si pudiéramos decidir qué queremos ver y qué queremos filtrar.
Y desde luego en materia de accesibilidad la cosa puede mejorar muchísimo en cualquiera de estos dos casos.
Del otro lado, creo que el backend irá más orientado a MCPs para facilitar el consumo de sus APIs, y que los verdaderos retos vendrán en materia de seguridad, privacidad y escalabilidad. Especialmente la seguridad va a ser un pulso constante en el desarrollo de nuevos productos. Un MCP mal construido puede ser un problema para la empresa, y un riesgo latente de exfiltración de datos privados que puede derivar en graves problemas de privacidad y pérdida de confianza en el producto. Por otra parte, manejar la escalabilidad de un sistema de estas características, con peticiones mucho más grandes que las clásicas requests que se hacían a una API REST, también van a suponer un reto. Esto convierte en obligatorio lo que hoy es opcional: idempotencia, límites de uso por agente y no por usuario, y paginación que no asuma buena fe.
Que conste que todo lo que he dicho es mi predicción, no un hecho. He intentado hacer este ejercicio siendo lo más honesto posible conmigo mismo, y si he dedicado más espacio al frontend no es por descuido: creo que el tramo usuario ↔ máquina siempre es el más cambiante y el que más impacto tiene en el usuario final; de hecho, en las últimas décadas es el que más ha cambiado o se ha ampliado. Ya no solo hablamos de webs en navegadores, sino de apps móviles, asistentes de voz, apps de televisión, para el coche, etc.
¿Acaso no son los agentes IA los nuevos dispositivos de consumo?