Escrito por: Rodrigo Sampaio
Revisão: Thiago Zagui Giacomini, Rodrigo Maximo, Eduardo Roder, Tamara Campos


O Nubank cresceu muito nos últimos anos. De cartão de crédito e uma conta no banco, começamos também a oferecer investimentos, seguro, empréstimos, mercado, uma plataforma de pagamento e muito mais. Buscando apoiar esse crescimento contínuo, nós desenvolvemos um framework de interface orientada pelo servidor para aumentar a eficiência das equipes de produtos. 

O Que é Interface Orientada pelo Servidor?

Interface orientada pelo servidor é uma forma de construir a interface de um aplicativo a partir do backend. Normalmente, o aplicativo instalado em um dispositivo móvel determina a interface, obtendo de um servidor apenas os dados exibidos. Portanto, quaisquer alterações na apresentação da interface, seja um novo recurso ou produto, um novo design ou até mesmo manutenção essencial, requer o lançamento de um novo aplicativo para que seus usuários o atualizem para a versão mais recente e vejam as mudanças. Isso pode levar de uma a duas semanas, pois depende da aprovação da loja de aplicativos. 

Usando a interface orientada pelo servidor, é possível atualizar ou corrigir a interface de forma fácil e imediata no ambiente de produção sempre que necessário. Além de obter os dados mostrados na interface, o aplicativo também receberá informações para construí-la, exibi-la e sobre como reagir às interações do usuário. 

Conheça nossas oportunidades

Testes A/B e desenvolvimento

Esse framework oferece ainda a opção de controlar a implantação de novos recursos. Dessa forma, não é necessário implantar um recurso para todos os clientes simultaneamente. Isso facilita a criação e execução de testes A/B. 

Quando os recursos de um aplicativo são desenvolvidos no modo de lançamento tradicional, as alterações levam semanas para serem amplamente implementadas até que todos os clientes atualizem seus aplicativos, a menos que tais mudanças tenham sido concebidas com grande antecedência. O mais comum é que algumas modificações sejam consideradas, mas o design e arranjo completo requer uma profunda capacidade de antecipação do processo.

Os recursos da interface orientada pelo servidor são completamente personalizáveis, permitindo que decisões do produto sejam tomadas no mesmo dia. 

Isso é particularmente útil para escopos com um alto grau de incerteza, onde a rápida iteração é fundamental para entender o produto, ou quando em um produto consolidado, são necessários experimentos para aumentar a conversão.

Vantagens do framework de interface orientada pelo servidor

Para resumir e listar mais vantagens, o framework de interface orientada pelo servidor: 

  • permite correções rápidas e imediatas no ambiente de produção;
  • oferece o controle sobre a implantação aos clientes;
  • facilita a criação e execução de testes A/B;
  • potencializa as decisões do produto;
  • reduz o tamanho do aplicativo;
  • evita vazamentos de novos recursos;
  • possibilita a criação de componentes comuns de interface orientada pelo servidor.

Instruções dos Blocos de Construção

A plataforma Backend Driven Content (BDC) é o nome do nosso framework de interface orientada pelo servidor no Nubank. Nós costumamos dizer que a BDC funciona como um manual de Lego para o aplicativo do Nu. Ela explica como usar os “blocos de construção” disponíveis para construir a interface para o usuário final. Assim, ao trabalhar com a BDC, nossos desenvolvedores basicamente escrevem esses “manuais de Lego”.

Como o Nubank usa Flutter no desenvolvimento para dispositivos móveis, os blocos de construção da BDC usam componentes de Flutter internamente, que são integrados à linguagem de desenvolvimento usada por todo o Nubank, a Clojure. Temos uma equipe dedicada de engenheiros que desenvolve e mantém a plataforma da BDC. No momento, os engenheiros da Backend Driven Content oferecem uma plataforma completa para as equipes de produtos:

  • serviços que suportam a plataforma;
  • ferramentas que ajudam os desenvolvedores;
  • otimizações constantes de desempenho e confiabilidade no backend;
  • suporte para equipes que adotam o framework.

A Backend Driven Content também está em conformidade com o Sistema de Design do Nu. Dessa forma, todas as telas ou fluxos criados com a BDC seguem corretamente os padrões do Sistema de Design do Nu. Isso garante a consistência da interface em todo o aplicativo. 

A pergunta que ouvimos com mais frequência quando apresentamos internamente a BDC para as outras equipes é: Ela infringe o regulamento das lojas de aplicativos? A resposta é não, porque todas as lojas aceitam conteúdos dinâmicos. O que nunca deve ser feito, seja no uso da interface orientada pelo servidor ou não, é levar o cliente a baixar um aplicativo que será completamente reformulado, alterando sua categoria. O que não é o caso.

O Caminho do Sucesso para a Backend Driven Content

O uso interno da BDC continua crescendo e mais equipes estão interessadas em construir novas telas e fluxos com ela. Com isso em mente, nós estamos investindo continuamente para tornar a Backend Driven Content uma ferramenta mais robusta e eficaz, capaz de suprir mais necessidades de diferentes equipes e casos de uso.  

Além da constante evolução da plataforma, a colaboração é um fator importante para o sucesso da BDC. Portanto, enquanto a equipe de engenharia da Backend Driven Content trabalha para trazer mais melhorias e desbloquear novos recursos, nós encorajamos os desenvolvedores de todo o Nubank a colaborar com a plataforma. Assim, seremos capazes de unir uma comunidade interna de desenvolvedores que divulgarão a BDC e também contribuirão com o desenvolvimento da plataforma, beneficiando toda a empresa.

Por que a documentação é importante?

Os documentos são, em geral, a primeira forma de contato com um desenvolvedor e estamos atualizando e criando constantemente artigos relevantes para a comunidade da BDC.

Por falar nisso, é importante frisar que a equipe de engenharia da BDC é responsável não só por construir e manter o framework, como também apoiar o conhecimento sobre a BDC na empresa. A equipe se tornou uma referência interna no apoio a uma plataforma por meio de ações como:

  • realização de sessões mob mensais;
  • elaboração de documentos relevantes;
  • divulgação de novos recursos e melhorias;
  • contribuição com discussões das equipes de produtos para compartilhar as funções da plataforma.

Cargo de porta-voz dos desenvolvedores

Recentemente criamos o primeiro cargo de porta-voz dos desenvolvedores no Nubank, alguém que atuará como representante para a plataforma BDC. Resumidamente, essa pessoa ajudará na compreensão dos principais problemas no lado dos desenvolvedores, engajará a comunidade e trará ideias para melhorar a experiência de desenvolvimento da BDC.

O que descobrimos até agora

A Backend Driven Content já tem quase dois anos e, desde o início, causou um grande impacto. No momento, quase 70% das novas telas e fluxos criados no Nubank usam a BDC. 43% dos aplicativos já usam a plataforma, um número que continua crescendo.

O feedback que a BDC recebe das equipes de produtos é fantástico. As vantagens destacadas normalmente são: 

  • é possível controlar a implantação para os clientes, podendo realizá-la e um ritmo desejável;
  • é fácil fazer ajustes simples em uma tela ou fluxo que já está em produção; 
  • é fácil implementar melhorias durante a produção em apenas um dia;
  • reduz o tempo de desenvolvimento.

O crescimento do framework de interface orientada pelo servidor no Nu só foi possível graças à cultura da empresa. As pessoas no Nu buscam alterar o status quo, e são muito receptivas a novas ideias, abraçar mudanças e experimentar formas diferentes de criar os produtos que nossos clientes amam. Isso ajudou não apenas a ampliar o uso da BDC, como também a solidificar um forte senso de comunidade entre os usuários da plataforma. 

Conheça nossas oportunidades