How do you scale the development of a feature when you have many different teams interacting in the same codebase, building across Android, iOS, and web? How should your codebase evolve when your feature needs to go from a small set of one-off screens to a system that can integrate many new products rapidly and sustainably?
In this talk I’ll discuss how my team at Airbnb architected the code and developer practices for the Trip Planner feature of the Airbnb app and website. As the center of information for an Airbnb guest’s planning and on-trip experience, the Trip Planner is a collaboration between many teams and engineers. It integrates a large number of products — two tiers of homes, experiences, restaurants, places, user-entered freeform events, and more.
I’ll explain the architecture strategies we used to make the code:
- Structured and modularized so that other teams sustainably add new products
- Easy for other teams at Airbnb to integrate with, so we can move fast
- Consistent across the Android, iOS, and web codebases
Sitting somewhere on the boundary between infrastructure and product, these generalizable strategies enable the scaling of development of your codebase to many teams, many developers, and many features.