5 Essential Lessons from Our Monorepo Journey
At Sabre, we have initiated a tech transformation by launching SABRE2, a monorepo approach designed to boost the software developer experience and productivity. As our initiative took flight, numerous development teams came on board. What did we learn on this journey? Fasten your seatbelts and find out below. ?? ??
The Genesis of Change
As a travel technology company founded in 1960, we operate with a blend of modern and vintage technologies. Functioning in a dynamic industry that demands the constant processing of monumental amounts of data, we understand the necessity for our systems to remain up-to-date and for our new software to evolve and adapt rapidly. That’s why we created SABRE2 – to ensure that, regardless of the technology, our teams can efficiently perform substantial upgrades, maintain productivity, and adhere to consistent, state-of-the-art processes and standards.
Defining SABRE2: A New Altitude for Developer Productivity
What is SABRE2?
Expansive Horizons: SABRE2's Growing Scale
Lessons Learned Along the Way of Building the SABRE2 Monorepo
领英推荐
1.???? Treat the Internal Tools as a Product
Seize the opportunity to use product development principles that have evolved and proven effective over the years! Treat internal tools with the same approach as any product, considering developers as your clients. Implement well-established product development strategies: conduct user research, develop product roadmaps, collect valuable feedback, and iterate. Do not force teams to use your solution—make it compelling enough that teams will be eager to use it. ?
2.???? Answer Your Clients' Needs... Swiftly!
Do not focus on implementing the new shiny thing or capability that every other company is adding to their internal tools. Keep in mind that you are developing a solution tailored to your clients, and it is crucial to address their specific needs. Just like that one time when we noticed a drop in the client satisfaction score metric (remember collecting feedback from point 1? That’s why it is important!). The issue was how much time each CI (continuous integration) pipeline run took. Therefore, we allocated an entire month to optimising the performance of these pipelines. Our efforts resulted in a significant reduction of the CI run time, and user satisfaction was restored right back.
3.???? Centralized Large-Scale Upgrades and Refactorings Are a Real Deal
Leveraging the monorepo approach which entails automatically running comprehensive CI pipelines for every submitted PR (Pull Request), simplifies the process of assessing potential disruptions to the project. As a result, we have successfully executed large-scale refactorings over the years. For example, our Productivity Engineering team recently migrated several hundred services from Spring Boot 2.7 to Spring Boot 3.2. The team’s acquired expertise in patterns and exceptional cases for this migration, along with the entire planning process being conducted within a single team, led to estimated labour cost savings of a couple of hundred thousand dollars. This contrasts with a scenario where each team would have performed the migration independently.
4.???? Ensure Training and Support
Adopting a new way of working can initially result in reduced productivity as teams onboarded to the monorepo learn unfamiliar technologies and standards. Accelerating this transition is crucial—comprehensive documentation, educational initiatives, support channels, and accessible expert consultations are key strategies to quickly turn a productivity dip into a productivity incline.
5.???? Commit to Stability
Avoid the temptation to overextend at the beginning. Prioritise the most critical capabilities that meet your client's needs, ensuring they are robust and reliable. This focus is essential for building trust and encouraging continued use of your solution. Simultaneously, emphasise the importance of stability and expect it from your clients. Collaborate with them to maintain consistently successful CI builds, which is crucial for unlocking the full benefits of the monorepo, such as efficient large-scale refactorings. After all, if builds of the main branch are frequently failing, how can you be sure that your refactoring efforts aren’t introducing new issues?
Reflective Thoughts as We Look Forward
As we continue to develop the SABRE2 monorepo approach at Sabre, these lessons remind us that true transformation requires not just technological change but a sustained commitment to meeting our developers' needs. Our goal is to provide robust, effective tools that empower our teams in an evolving tech landscape.