Slack Tracy Stampfli Jan 12, 2022

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

Critical Insight

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.

The stabilization phase was just the beginning: modularization and modernization brought even bigger architectural changes to both platforms.

About This Article

Problem

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.

Solution

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.

Impact

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.