How Big Technical Changes Happen at Slack

Most new things in technology turn out to be fads: patterns of talking and doing that come and go without leaving a permanent mark. Microkernels; EPIC architectures like IA-64; object request brokers; and 1990s’-style neural nets are gone, and will not return. Sorry for the deep throwbacks; only time proves which things are fads, so for uncontroversial…

Overview

The article discusses the strategic approach Slack employs to differentiate between technological fads and revolutions, detailing the phases of technology adoption within the company. It outlines the importance of exploration, expansion, and migration in adopting new technologies effectively.

What You'll Learn

1

How to identify technological fads versus revolutions

2

When to adopt new technologies based on the adoption curve

3

How to effectively communicate and persuade teams to adopt new systems

4

Why early exploration is crucial for technology adoption

Key Questions Answered

How does Slack differentiate between fads and revolutions in technology?
Slack differentiates between fads and revolutions by investing in exploring new technologies while being ruthless in terminating unproductive experiments early. This approach allows them to focus on technologies that provide long-term advantages, ensuring they adopt innovations at the right time.
What are the phases of technology adoption at Slack?
The phases of technology adoption at Slack include Exploration, where engineers experiment with new technologies; Expansion, where they persuade others to adopt these technologies; and Migration, where the organization transitions to the new system fully, addressing any remaining holdouts.
What challenges do engineers face during the expansion phase?
During the expansion phase, engineers must communicate and persuade other teams to adopt new technologies, which can be challenging. This phase often requires significant technical work and user research to demonstrate the value of the new system compared to existing practices.
What expectations does Slack have for its engineers regarding technology adoption?
Slack expects its engineers to explore new technologies, be reasonable customers of other teams' technologies, break dependencies on unsuitable technologies, and maintain a customer-centric attitude towards teams adopting new systems. This ensures a collaborative and effective adoption process.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Frontend
React
Used for building Slack's desktop UI, leveraging its virtual DOM and unidirectional data flow.
Backend
Hack
Used for migrating from PHP, introducing types to improve code quality.
Database
Vitess
Utilized for horizontal scaling of MySQL as part of Slack's data sharding strategy.
Library
Libslack
A cross-platform C++ client library that was ultimately discontinued due to technical incompatibilities.

Key Actionable Insights

1
Engineers should actively explore new technologies without formal approval processes to foster innovation.
This approach allows for organic experimentation and can lead to significant improvements in workflows, as engineers can quickly test and validate new ideas.
2
Effective communication and persuasion are crucial during the expansion phase of technology adoption.
By understanding the needs and concerns of other teams, engineers can tailor their messaging to highlight the benefits of new technologies, increasing the likelihood of adoption.
3
Recognizing the different phases of technology adoption can help teams manage expectations and strategies effectively.
Understanding that early exploration will be slower and that self-propelled adoption takes time can help teams remain patient and focused on long-term goals.

Common Pitfalls

1
One common pitfall is underestimating the challenges of persuading other teams to adopt new technologies.
This often leads to frustration and can stall the adoption process. Engineers should prepare for resistance and focus on demonstrating clear value to ease the transition.