Escrito por: Rodrigo Sampaio
Revisado por: Thiago Zagui Giacomini, Rodrigo Maximo, Eduardo Roder, Tamara Campos


Nubank ha crecido mucho en los últimos años. De ser solo una tarjeta de crédito y una cuenta bancaria, comenzamos también a ofrecer inversiones, seguros, préstamos, mercado, plataforma de pagos, etc. Para respaldar este rápido crecimiento continuo, desarrollamos un marco de interfaz de usuario impulsado por servidor para permitir que los equipos de productos sean más eficientes. 

¿Qué es la Interfaz de Usuario Basada en el Servidor?

La interfaz de usuario basada en el servidor es una forma de crear una interfaz de aplicación desde el backend. Por lo general, en el desarrollo móvil, la aplicación instalada en un dispositivo define la interfaz de usuario y solo los datos mostrados se recuperan de un servidor. Por lo tanto, cada cambio en el diseño de la interfaz, como una nueva característica, un nuevo producto, un nuevo diseño o incluso un mantenimiento básico, requiere una nueva versión de la tienda de aplicaciones y los usuarios deberán actualizar la versión de su aplicación para ver esos cambios. Esto puede tardar entre una y dos semanas, ya que depende de la aprobación del editor de la tienda de aplicaciones para su lanzamiento. 

Con la interfaz de usuario basada en el servidor, cada vez que la interfaz necesite una actualización o una solución rápida, estará fácil e instantáneamente en el entorno de producción. Además de recuperar datos que se mostrarán en la interfaz de usuario, la aplicación también recibe información sobre cómo crear, mostrar la interfaz de usuario y reaccionar ante las interacciones del usuario. 

Descubre las oportunidades

Pruebas A/B y desarrollo

En realidad, este marco ofrece la opción de controlar la implementación de nuevas funciones. Por lo tanto, no es obligatorio implementar una función para todos los clientes a la vez. Facilitando así la creación y ejecución de pruebas A/B. 

Cuando las funciones de la aplicación se desarrollan en el modo de lanzamiento tradicional, los cambios tardan semanas en implementarse ampliamente hasta el punto en que todos los clientes actualizan sus aplicaciones, a menos que los cambios se hayan previsto con anticipación. La mayoría de las veces, se tienen en cuenta algunos cambios de copia, pero el diseño o posicionamiento completo requiere mucha predicción futura de la hoja de ruta.

Las funciones de la interfaz de usuario basada en el servidor son totalmente personalizables, lo que permite tomar decisiones sobre productos el mismo día. 

Esto es útil tanto para ámbitos con alta incertidumbre, donde iterar rápido es clave para entender el producto, como cuando hay un producto maduro y es necesario realizar experimentos para aumentar la conversión.

Ventajas del marco de interfaz de usuario basada en el servidor

Para resumir y enumerar más ventajas, el marco de interfaz de usuario basada en el servidor: 

  • Habilita una solución rápida e instantánea al entorno de producción;
  • Da control sobre el despliegue a los clientes;
  • Facilita la creación y ejecución de pruebas A/B;
  • Potencia las decisiones sobre productos;
  • Reduce el tamaño de la aplicación;
  • Evita filtraciones de nuevas funciones;
  • Permite la posibilidad de crear componentes comunes de interfaz de usuario basada en el servidor.

Instrucciones de bloques de construcción

La plataforma de Contenido Impulsado por Backend (BDC, por sus siglas en inglés) es el nombre de nuestro marco interno de UI basado en servidor en Nubank. Generalmente decimos que BDC funciona como un manual de Lego para la aplicación Nu. Indica cómo utilizar los bloques de construcción disponibles para construir la interfaz para el usuario final. Entonces, cuando desarrollamos con BDC, nuestros desarrolladores básicamente escriben estos “manuales de Lego”.

Como Nubank usa Flutter para el desarrollo móvil, los bloques de construcción de BDC usan componentes de Flutter bajo el capó mientras se basan en el lenguaje de desarrollo que todos los Nubank usan, Clojure. Contamos con un equipo dedicado de ingenieros que desarrollan y mantienen la plataforma BDC. Actualmente, los ingenieros de BDC ofrecen una plataforma completa para los equipos de producto:

  • Servicios que soportan la plataforma;
  • Herramientas para ayudar a los desarrolladores;
  • Optimizaciones constantes de rendimiento y confiabilidad en el backend;
  • Soporte a los equipos que adoptan el framework.

El contenido impulsado por backend también cumple con el sistema de diseño de Nu. Por lo tanto, cada pantalla o flujo creado con BDC sigue correctamente los patrones y estándares del sistema de diseño de Nu. Esto garantiza la coherencia de la interfaz de usuario en toda la aplicación. 

La pregunta más común que escuchamos cuando abogamos internamente por la adopción de BDC ante otros equipos es: ¿Viola las reglas de las tiendas de aplicaciones? La respuesta es no 一 porque todas las tiendas de aplicaciones aceptan contenido dinámico. Lo que no puedes hacer, ya sea que utilices interfaz de usuario controlada por servidor o no, es engañar a los clientes para que descarguen una aplicación que se convertirá en una completamente diferente, cambiando su categoría de producto. Y ese no es el caso.

Ruta de Éxito del Contenido Impulsado por el Backend

Los casos de uso interno de BDC siguen creciendo y con el tiempo tenemos más equipos interesados en crear nuevas pantallas y flujos usándolo. Para seguir ese camino, invertimos continuamente para hacer que el contenido impulsado por backend sea más sólido y eficiente para cumplir con más requisitos de diferentes equipos y casos de uso.  

Además de la continua evolución de la plataforma, la colaboración es una clave importante para el éxito de BDC. Entonces, mientras el equipo de ingenieros de BDC trabaja para aportar mejoras y desbloquear nuevas funciones, alentamos a los desarrolladores de Nubank a colaborar con la plataforma BDC. De esta manera logramos reunir una comunidad interna de desarrolladores que corren la voz sobre BDC y también contribuyen al desarrollo de la plataforma BDC, de la que se beneficiará toda la empresa.

¿Por qué es importante la documentación?

Los documentos suelen ser el primer punto de contacto con un desarrollador y constantemente actualizamos y creamos artículos útiles para la comunidad de BDC.

En ese sentido, es importante señalar que el equipo de ingeniería de BDC es responsable no solo de crear y mantener el marco, sino también de respaldar el aprendizaje de BDC en toda la empresa. El equipo se ha convertido en un referente interno de apoyo a una plataforma mediante acciones como:

  • Realizar sesiones mensuales;
  • Redactar documentos útiles;
  • Comunicar nuevas características y mejoras;
  • Contribuir a las discusiones de los equipos de productos para compartir las capacidades de la plataforma.

Rol de defensor del desarrollador

Recientemente creamos el primer rol de defensor del desarrollador en Nubank para ser portavoz interno de la plataforma BDC. En resumen, esta persona nos ayuda a comprender los principales puntos débiles del lado de los desarrolladores, involucrar a la comunidad y brindar ideas para mejorar la experiencia de desarrollo de BDC.

Lo que hemos aprendido hasta ahora

El contenido impulsado por backend tiene casi dos años y, desde el primer MVP, ha logrado mucho. Actualmente, casi el 70% de las nuevas pantallas y flujos construidos en Nubank utilizan BDC. El 43% de la aplicación ya la usa y estas cifras siguen creciendo.

Los comentarios que recibe BDC de los equipos de productos son fantásticos. Comúnmente destacan las siguientes ventajas: 

  • Es posible controlar el despliegue para los clientes, pudiendo realizarlo al ritmo deseado;
  • Fácil de realizar ajustes menores en una pantalla o un flujo que ya está en producción; 
  • Rápido para implementar mejoras en la producción en tan solo un día;
  • Desarrollo que ahorra tiempo.

El crecimiento del marco de interfaz de usuario basada en el servidor en Nu fue finalmente posible gracias a la cultura de la empresa. La gente de Nu está motivada a cambiar el status quo, siendo muy receptiva a nuevas ideas, aceptando cambios y experimentando diferentes formas de crear productos amados por nuestros clientes. Esto ayudó no solo a crecer el uso de BDC, sino también a crear un fuerte sentido de comunidad entre los usuarios de la plataforma BDC. 

Descubre las oportunidades