3x3: Speeding Up Mobile Releases

Drew Hannay
9 min readadvanced
--
View Original

Overview

The article discusses LinkedIn's approach to speeding up mobile releases through a strategy called '3x3', which aims for three releases per day with a maximum of three hours from code commit to member availability. It outlines the challenges faced with traditional release processes and the implementation of automation and testing strategies to enhance efficiency.

What You'll Learn

1

How to implement a continuous integration pipeline for mobile applications

2

Why setting aggressive release goals can improve development speed

3

How to utilize feature flags for safer deployments

Prerequisites & Requirements

  • Understanding of continuous integration and mobile application development
  • Familiarity with automated testing tools like Espresso and KIF(optional)

Key Questions Answered

What is the 3x3 strategy for mobile releases?
The 3x3 strategy involves releasing three times per day, ensuring that no more than three hours pass between code commits and availability to members. This approach aims to eliminate manual testing bottlenecks and allow for rapid iteration based on user feedback.
How does LinkedIn automate its mobile release process?
LinkedIn automates its mobile release process through a complete pipeline that includes static analysis, code style checks, unit tests, and UI tests across multiple device versions. This ensures builds are certified as 'known good' and ready for internal testing within a three-hour window.
What challenges did LinkedIn face with its previous release process?
Previously, LinkedIn's release process involved monthly releases with manual regression testing that could delay feature delivery. This setup made it difficult to iterate quickly on member feedback and required extensive planning from product managers and marketing partners.
How does LinkedIn handle localization testing in its release process?
LinkedIn collaborates with its localization team to identify common internationalization bugs and implements static analysis checks to prevent them. They also utilize layout tests to ensure UI elements render correctly across different languages and character sets.

Key Statistics & Figures

Number of engineers involved in Project Voyager
250
Over 250 engineers contributed to the development of the new LinkedIn mobile application, Project Voyager.
Previous release frequency
once per month
Prior to implementing the 3x3 strategy, LinkedIn released its mobile app once a month.
Release cadence goal
three times per day
The 3x3 strategy aims to achieve three releases per day.
Maximum time from commit to release
three hours
The goal is to ensure no more than three hours pass between code commits and availability to members.

Technologies & Tools

Platform
Google Play
Used for automating the release process for Android applications.
Platform
Enterprise Builds
Custom setup for alpha testing on iOS applications.
Testing
Espresso
A tool used for running UI tests on Android applications.
Testing
Kif
A utility for running UI tests on iOS applications.

Key Actionable Insights

1
Implementing a rapid release cycle can significantly enhance responsiveness to user feedback.
By adopting the 3x3 strategy, teams can deploy updates more frequently, allowing for quicker adjustments based on user interactions and feedback.
2
Utilizing feature flags can mitigate the risks associated with deploying new features.
Feature flags allow developers to enable or disable features without requiring a full app release, which helps in identifying issues without impacting all users.
3
Investing in automated testing tools is crucial for maintaining release quality.
Automation reduces the reliance on manual testing, which can be time-consuming and prone to errors, thereby supporting faster release cycles.

Common Pitfalls

1
Flaky tests can undermine confidence in the testing suite.
When tests fail intermittently, engineers may begin to ignore valid failures, assuming they are just due to flaky tests. This can lead to real bugs being overlooked and requires ongoing efforts to improve test stability.

Related Concepts

Continuous Integration
Automated Testing
Feature Flags
Localization Testing