Claro que vou começar com uma piada de tia (até mesmo porque eu estou no meu local de fala, sou realmente uma tia):

Não, o texto não é uma homenagem para a minha melhor amiga.

BFF es una señal para back-end para front-endTermino criado en 2015 por Phil Calçado, y es un padrão para API que permite equipar a iterarem recursos más rápidamente y terem controlar sobre el backend, sin afectar el frontend y también generar experiencias específicas de acuerdo con cada persona usuária de un producto determinado.

Tentarei, com o mi olhar de product designer, em uma analogia, traduzir o que isso significa e quais são as sus principais vantagens.

Já que estamos falando da fila do pão, nada mejor que una padaria para ilustrar isso.

Dentro de la padaria, no backend Está todo lo que os clientes quieren y necesitan consumir. Porém, dependem de alguém para preparar y entregar para ellos.

Sendo asim, o desenvolvedor backend seria o padeiromi os serviços seriam os pães, cafés, sucos, quitutesetc.

Todo esto está en una zona de padaria donde los clientes no tienen acceso.

Ja o Interfaz é a area onde esses clientes têm acesso.

Nessa área eles conseguem escolher onde sentar, podem consultar o cardápio de produtos y decidir o querem beber e comer.

O desenvolvedor Interfaz na padaria é o garçom: ele anota os pedidos, repassa para o padeiro e depois entrega o pedido certo para cada cliente.

Até aí todo muito fácil de entender, ¿verdad?

No backend Hay una gama grande de productos:

El padeiro podía montar kits padrões de café da manhã, con pão na chapa, café preto, ensalada de frutas y una fatia de bolo, por ejemplo, y entregar los kits directamente para el jardín.

Uma padaria assim até funcionaria, claro. Ela resolveria o problema de muitas pessoas todas as manhãs. Mas algunas personas no gostam de bolo, e outras preferem o café com leite, fora que a longo prazo as pessoas que gostam do kit poderia cansar de comer as mesmas coisas todos os dias, e é bem provável que deixariam de frecuentar essa padaria.

¿E onde entra o BFF nessa história?

Para generar más valor para estos clientes, y consecuentemente rentabilizar más a padaria, entra o tal do BFF: ¡O BFF nessa padaria é o balcão!

É nesse balcão que o garçom entrega o pedido de cada cliente anotado:

El padeiro recibe el pedido, monta una bandeja personalizada de cada uno, y disponibiliza novamente no balcão, para que el garçom retire y entregue para quem fez o pedido.

El BFF funciona como un filtro de todos los productos existentes detrás del balcón y permite la personalización de cada pedido.

Voltando então para nuestros dos amados productos digitales, como BFF pensamos en UX (experiencia de usuario) y DX (experiencia de desarrollador), y por estas ventajas son muchas:

Imagine una tela de catastro, onde é preciso apenas o correo electrónico del usuario. El frontend cuenta con una API integrada que permite todos los campos (nome, CPF, RG, nome da mãe, telefone, CEP, demais campos de endereço, etc.) para luego mostrar algo de entrada de correo electrónico en la tela. El JSON es grande. Através del backend, o BFF hace un filtro y entrega para el frente en algún momento necesariodeixando todo bem mais leve.

Otras ventajas: piense ahora en el inicio de una aplicación, onde temos diversos puntos finales para consultar, como perfil del usuario, notificaciones, métrica principal, atalhos diversos, publicidad, paquetes. Así que aquí hay un ejemplo de menos de 6 puntos finales. Seriam então 6 requisições feitas pelo frontend para gerar esa tela. No seria tan rápido, ¿no? Como BFF, el backend podría optimizar ese proceso y disponibilizarlo a través de todo lo que debe ser expuesto en la tela en un único punto final, y así. En la fachada frontal solo hay 1 solicitud. Ou ainda poderia dividir los puntos finales en grupos para chamadas que façam sentido para essa Home. La ventaja de dividir en grupos, es en el caso de que BFF falhe, no fique a Home inteira fora do ar, pero apenas o grupo da falha.

Só até aqui já falamos de algumas vantagens que resultam numa Mejor rendimiento del producto.

Pensando en ellos experiencia del usuario, BFF también permite un contenido dinámico y personalizado en la interfaz. Y a mejor parte, es que seguimos usando el backend para hacer esto, sin depender de las actualizaciones en App Store y Play Store, pudiendo así actualizarnos esse conteúdo constantemente.

Para conseguir estas ventajas, podemos utilizar o Beagleherramienta de código abierto del Zup (enlaces al final del texto).

El Beagle es un facilitador de BFF y está disponible para Android, iOS y Web y nos permite alterar una interfaz y todos los flujos a través del backend, porque su arquitectura está estructurada en UI controlada por servidor.

Muito bom, não é mesmo? En una única versión en la loja, conseguimos ter um aplicativo diferente a cada día, de la manera que quisermos, y con esto podemos validar hipótesis y mitigar riesgos con base en dados. Sabemos que eles não mentem.

Y ya que estamos falando em explorar el poder del backend en la creación de interfaces y pruebas en la producción, trago esse tópico que no necesariamente necesita ser no BFF, pero que está vinculado al back: criar as funcionalidades do produto com bandera de función, o famoso alternar.

Essa possibilidade de ligar ou desligar alguna funcionalidade, fluxo ou até mesmo algum produto dentro de una plataforma, ajuda também, asim como o Beagle, a realizar algunas pruebas en producción. Mas não só isso. Como alternar, puedes desactivar una funcionalidad que está en el manual, o con algún problema que causa inestabilidad, por ejemplo. En muchos casos, es mejor para una persona usuaria no ver determinada funcionalidad que cair en una tela de error y se frustrar, ¿concorda?

Mitigar riesgos de valor y usabilidad vai além de pesquisas e testes com protótipos, e experimentos em produção podem ir além de testes A/B.

mi para probar rápido, validar rápido, errar rápido y aprender rápidoe com isso gerar valor e entregar una mejor experiencia (e personalizada) para su usuario de forma rápida, use el combo da alegria para cualquier profesional de producto: BFF + Beagle + Feature flag.

O Charles, otro producto de código abierto de Zup, potencializa todo esto con despliegues en círculos, pero deixo esse assunto para otro momento. Y explorando esas opciones en el producto onde atuo, já tive vários aprendizados interessantes, e recomendo.

Pensou em personalización, pensou em BFF.

E fala a verdade, você nunca imaginou que um balcão podria hacer tanta diferencia na sua vida, no su producto y na vida de su cliente, não é mesmo?