BMW

image001.png

Scaling customer-centric product development at BMW Group with Flutter

Goal

For many years, BMW’s mobile app team focused primarily on the iOS version of their vehicle companion app – the BMW & MINI Connected apps. However, in 2018, they realized that the feature and design discrepancies between their iOS and Android offerings had grown too large. They needed to find a way to ensure, that the apps offered the same functionality to all consumers, regardless of mobile OS, BMW and MINI brand, without significantly increasing costs, or slowing feature development velocity. Next to the complexity of bringing iOS and Android together, the BMW Group must manage even more complexity on the product side. Because of different regulations and local requirements, the BMW Group’s mobile apps exist in a wide range of different variants in more than 45 countries.

In addressing the problem, the team had two goals. From a business perspective, they wanted to be able to regularly release their products across all brands, platforms, and regions simultaneously, with the same feature capabilities based on customer feedback and business objectives. And to do that, they wanted to create a platform that was developer-friendly, developer-scalable, and performant, providing safe experimentation and continuous deployment.

Why Flutter?

As it was out of question to double up the iOS development teams for Android, thereby doubling costs and effort, a cross platform solution was evaluated. A small task force evaluated several cross-platform frameworks, including Flutter. Initially, the team was concerned that Flutter was not yet mature enough for the scale at which BMW needed to operate, so they designed several proofs-of-concept with each of the other frameworks. However, all the other platforms fell apart when the team decided against web-based content for a better user experience.

Their Solution

In October 2019, a selected group of BMW engineers met in Munich to discuss how to move forward with Flutter. They soon came to realize that no longer being constrained by a specific platform would allow them to adopt a more flexible, domain-based organizational structure where one team might focus on connection status and communication abstraction, while a few teams worked on the core platform side of the app, and several more teams were free to focus on new and innovative features for the end user. Flutter got the green light, and the teams began to rewrite all the app variants for the different platforms, countries, and brands — but this time, with a single codebase.

“The new app platform is built on three pillars: user friendliness, safety and reliability. It provides a consistently designed set of functions spanning all brands based on feedback and our customers’ usage behavior.”

Dr. Nicolai Kraemer, Vice President Offboard Platform BMW Group

Results

Less than a year after getting started, the My BMW App was launched in July 2020 and has established itself in 47 countries on five continents as a universal interface providing the user a seamless experience between mobile phone, vehicle, and the digital world. The My BMW App provides both a direct interface between the driver and their vehicle, and a communication channel with BMW dealers and the BMW brand.

The BMW Group mobile developers have established a platform, internally called “Mobile 2.0 Platform”, that allows for automated builds of every single brand, market and OS, automated test, and deployment to mobile world and backends. This means that each day several builds are triggered and with every app build 96 variants are automatically built, tested, and deployed. As of October 2021, more than 10,000 versions of every app variant have been built. The ability to build and design once allowed the team to move much more quickly. But the quick turnaround wasn’t all that excited the team about the move to Flutter. They no longer had to worry about managing multiple codebases, which effectively solved the problem of feature disparity.

All BMW and MINI customers would now enjoy a single experience, regardless of the platform they used to access the app — which also improved user feedback, especially for the historically underserved Android app. All in all, the team was able to move faster, maintain consistency, and delight users by making the switch to Flutter.