BMW
Escalando o desenvolvimento de produtos centrado no cliente no BMW Group com o Flutter
Objetivo
Por muitos anos, a equipe de apps móveis da BMW concentrou-se principalmente na versão iOS de seu app complementar para veículos – os apps BMW & MINI Connected. No entanto, em 2018, eles perceberam que as discrepâncias de recursos e design entre suas ofertas para iOS e Android haviam crescido demais. Precisavam encontrar uma forma de garantir que os apps oferecessem a mesma funcionalidade a todos os consumidores, independentemente do sistema operacional móvel e da marca BMW ou MINI, sem aumentar significativamente os custos nem reduzir a velocidade de desenvolvimento de recursos. Além da complexidade de unir iOS e Android, o BMW Group precisa lidar com uma complexidade ainda maior do lado do produto. Por causa de diferentes regulamentações e requisitos locais, os apps móveis do BMW Group existem em uma ampla variedade de versões diferentes em mais de 45 países.
Ao abordar o problema, a equipe tinha dois objetivos. Do ponto de vista de negócios, queriam poder lançar regularmente seus produtos em todas as marcas, plataformas e regiões simultaneamente, com os mesmos recursos, com base no feedback dos clientes e nos objetivos de negócio. E, para isso, queriam criar uma plataforma amigável para desenvolvedores, escalável e de alto desempenho, que permitisse experimentação segura e implantação contínua.
Por que Flutter?
Como estava fora de questão duplicar as equipes de desenvolvimento iOS para o Android, dobrando assim os custos e o esforço, uma solução multiplataforma foi avaliada. Uma pequena força-tarefa avaliou vários frameworks multiplataforma, incluindo o Flutter. Inicialmente, a equipe estava preocupada que o Flutter ainda não fosse maduro o suficiente para a escala em que a BMW precisava operar, então projetaram várias provas de conceito com cada um dos outros frameworks. No entanto, todas as outras plataformas se desfizeram quando a equipe decidiu não usar conteúdo baseado em web para oferecer uma melhor experiência ao usuário.

A solução deles
Em outubro de 2019, um grupo seleto de engenheiros da BMW se reuniu em Munique para discutir como avançar com o Flutter. Logo perceberam que não estar mais limitados a uma plataforma específica permitiria adotar uma estrutura organizacional mais flexível e baseada em domínios, em que uma equipe poderia focar no status da conexão e na abstração da comunicação, enquanto algumas equipes trabalhavam no núcleo da plataforma do app, e várias outras ficavam livres para se concentrar em recursos novos e inovadores para o usuário final. O Flutter recebeu sinal 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 apps é construída sobre três pilares: facilidade de uso, segurança e confiabilidade. Ela oferece um conjunto de funções projetado de forma consistente, abrangendo todas as marcas, com base no feedback e no comportamento de uso dos 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 de cinco continentes como uma interface universal que oferece ao usuário uma experiência integrada entre o celular, o veículo e o mundo digital. O My BMW App oferece tanto uma interface direta entre o motorista e seu veículo quanto um canal de comunicação com as concessionárias e a marca BMW.
Os desenvolvedores móveis do BMW Group criaram 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 para o mundo móvel e os backends. Isso significa que, a cada dia, várias builds são acionadas e, a cada build do app, 96 variantes são automaticamente construídas, testadas e implantadas. Até outubro de 2021, mais de 10.000 versões de cada variante do app já haviam sido construídas. A capacidade de construir e projetar uma única vez permitiu que a equipe avançasse muito mais rápido. Mas a agilidade não foi tudo o que entusiasmou a equipe com a mudança para o Flutter. Eles não precisavam mais se preocupar em gerenciar múltiplas bases de código, o que efetivamente resolveu o problema da disparidade de recursos.
Todos os clientes BMW e MINI agora desfrutariam de uma experiência única, independentemente da plataforma usada para acessar o app — o que também melhorou o feedback dos usuários, especialmente do app Android, historicamente menos atendido. No geral, a equipe conseguiu avançar mais rápido, manter a consistência e encantar os usuários ao migrar para o Flutter.