Recently, the Spotify Mobile Engineering Team elaborated on their experience with a recent platform migration. Working on an initiative under the Mobile Engineering Strategy program, the team migrated their Android and iOS codebases to build with Bazel, Google’s open-source build system.
Mariana Ardoino and Raul Herbster from the Spotify Mobile Engineering team pondered on the learnings from migration in a blog post. The migration effort impacted more than 100 squads across Spotify. Acknowledging that migrations of varying size and complexity will be "the norm" in the future, the team set the context by highlighting the need to define the scope of migration.
Often when the extent of migration is unknown, it makes sense to focus on values and understand the goals of the migration. The team recommends starting small with proof of concepts (POCs) and validating it with stakeholders instead of identifying all possible scenarios at the start. It is also helpful to understand the needs of stakeholders with this migration by collaborating with them in these early phases.
When there is a large number of squads impacted, and the progress is slow, extensive infrastructure and architecture changes may seem impossible. Such scenarios call for a greater level of stakeholder engagement. Being in contact with stakeholders via Slack/email groups, and sharing the progress through newsletter and workplace posts may re-highlight the importance of migration. Looking for automation possibilities may help during the migrations. Reserving time for research spikes is also a good option to try, which can include swarming with teams to work on the migration.
As a side, emphasizing the aspect of collaboration in the context of Agile / DevOps transformations, Nigel Kersten, CTO at Puppet said,
Fundamentally the problem is that all of these transformations have a massive people-interaction component, and the bigger and older you are as an organization, the more difficult it is to change how people interact, and the higher up the chain you have to go to create organizational change.
The Spotify Mobile Engineering team mentioned that competing priorities are a "fact of life" for any platform team involved in migrations. Whether a migration involves adopting new technology or reducing the tech debt, the motivation level of the team may get affected due to slow progress on migration. The team recommends evaluating the progress of migration continuously, motivating the team by showing the positive impact of migration, and tweaking the approaches to achieve specific goals of migration.
Finally, discussing the aspect of accountability, the Spotify Mobile Engineering team advises not to expect internal/external alignment on driving change over the course of time. Using dashboards, maintaining a migration timeline, and using data or trend graphs may help visualize the progress and highlight required adjustments.