BMW

BMW

Escalando o desenvolvimento de produtos centrados no cliente no BMW Group com Flutter

Objetivo

Por muitos anos, a equipe de apps mobile da BMW focou principalmente na versão iOS do app companheiro de veículos – os apps BMW & MINI Connected. No entanto, em 2018, eles perceberam que as discrepâncias de recursos e design entre suas ofertas iOS e Android tinham crescido demais. Eles precisavam encontrar uma maneira de garantir que os apps oferecessem a mesma funcionalidade para todos os consumidores, independentemente do sistema operacional mobile, marca BMW e MINI, sem aumentar significativamente os custos ou desacelerar a velocidade de desenvolvimento de recursos. Além da complexidade de unir iOS e Android, o BMW Group deve gerenciar ainda mais complexidade no lado do produto. Devido a diferentes regulamentações e requisitos locais, os apps mobile do BMW Group existem em uma ampla variedade de variantes em mais de 45 países.

Ao abordar o problema, a equipe tinha dois objetivos. De uma perspectiva de negócios, eles queriam poder lançar regularmente seus produtos em todas as marcas, plataformas e regiões simultaneamente, com os mesmos recursos baseados no feedback dos clientes e objetivos de negócios. E para fazer isso, eles queriam criar uma plataforma que fosse amigável para desenvolvedores, escalável e performática, proporcionando experimentação segura e implantação contínua.

Por que Flutter?

Como estava fora de questão duplicar as equipes de desenvolvimento iOS para Android, dobrando assim custos e esforço, uma solução multiplataforma foi avaliada. Uma pequena força-tarefa avaliou vários frameworks multiplataforma, incluindo Flutter. Inicialmente, a equipe estava preocupada que Flutter ainda não fosse maduro o suficiente para a escala em que a BMW precisava operar, então eles projetaram várias provas de conceito com cada um dos outros frameworks. No entanto, todas as outras plataformas falharam quando a equipe decidiu contra conteúdo baseado em web para uma melhor experiência do usuário.

A Solução Deles

Em outubro de 2019, um grupo selecionado de engenheiros da BMW se reuniu em Munique para discutir como avançar com Flutter. Eles logo perceberam que não estar mais limitados por uma plataforma específica permitiria adotar uma estrutura organizacional mais flexível e baseada em domínios, onde uma equipe poderia se concentrar no status de conexão e abstração de comunicação, enquanto algumas equipes trabalhavam no lado da plataforma principal do app, e várias outras equipes eram livres para se concentrar em recursos novos e inovadores para o usuário final. Flutter recebeu luz verde, e as equipes começaram a reescrever todas as variantes do app para as diferentes plataformas, países e marcas — mas desta vez, com uma única base de código.

"A nova plataforma de app é construída sobre três pilares: facilidade de uso, segurança e confiabilidade. Ela fornece um conjunto de funções consistentemente projetado abrangendo todas as marcas com base no feedback e no comportamento de uso de nossos clientes."

Dr. Nicolai Kraemer, Vice-Presidente da Plataforma Offboard do BMW Group

Resultados

Menos de um ano após o início, o My BMW App foi lançado em julho de 2020 e se estabeleceu em 47 países em cinco continentes como uma interface universal fornecendo ao usuário uma experiência perfeita entre telefone celular, veículo e o mundo digital. O My BMW App fornece tanto uma interface direta entre o motorista e seu veículo, quanto um canal de comunicação com concessionárias BMW e a marca BMW.

Os desenvolvedores mobile do BMW Group estabeleceram uma plataforma, chamada internamente de "Mobile 2.0 Platform", que permite builds automatizados de cada marca, mercado e sistema operacional, testes automatizados e implantação no mundo mobile e backends. Isso significa que a cada dia vários builds são acionados e com cada build do app 96 variantes são automaticamente construídas, testadas e implantadas. Em outubro de 2021, mais de 10.000 versões de cada variante do app foram construídas. A capacidade de construir e projetar uma vez permitiu que a equipe avançasse muito mais rapidamente. Mas a rápida mudança não foi tudo que animou a equipe sobre a mudança para Flutter. Eles não precisavam mais se preocupar em gerenciar múltiplas bases de código, o que efetivamente resolveu o problema de disparidade de recursos.

Todos os clientes BMW e MINI agora desfrutariam de uma experiência única, independentemente da plataforma que usassem para acessar o app — o que também melhorou o feedback dos usuários, especialmente para o app Android historicamente mal atendido. No geral, a equipe foi capaz de avançar mais rápido, manter consistência e encantar usuários ao fazer a mudança para Flutter.