Stabilize, Modularize, Modernize: Scaling Slack's Mobile Codebases
Article Summary
Tracy Stampfli and Bryan Stern reveal how Slack's mobile teams tackled crippling tech debt that was actively slowing product roadmaps. Their solution? A bold 6-month stabilization sprint that transformed both iOS and Android codebases.
By 2020, Slack's mobile apps were drowning in tech debt from years of rapid growth. Monolithic codebases, stalled migrations, and inconsistent patterns meant features took too long to ship. Rather than rewrite from scratch, the teams launched Project Duplo: a three-phase initiative to stabilize, modularize, and modernize their mobile infrastructure while continuing to ship features.
Key Takeaways
- iOS eliminated 80,000 lines of Objective-C (15% of codebase) in six months
- Android split monolithic API interfaces and standardized on repository pattern
- Automated scripts tracked migration progress via dashboards, not just Jira burndowns
- Rejected full rewrite and cross-platform code sharing to minimize risk
- Individual contributors led the initiative with executive buy-in through data-backed proposals
Slack's mobile teams successfully completed their stabilization phase on schedule, eliminating critical tech debt and proving that ambitious refactors can succeed without full rewrites.
About This Article
Slack's mobile codebases had inconsistent architectural patterns. iOS didn't have universal MVVM+C adoption and lacked clear responsibility guidelines. Android's MVP architecture was incomplete with critical components still unmigrated. This confusion made feature development harder.
Slack created Project Duplo with three coordinated phases across platforms. They built automated scripts to track deprecated patterns and migrations through dashboards instead of just using Jira burndowns. This gave them real data to make better decisions about where to spend resources.
iOS finished its Swift migration and adopted the internal data and networking libraries across the board. Android standardized on the repository pattern and broke up its monolithic interfaces. Both platforms saw developers become more productive and found it easier to onboard new team members within six months.