No Jitter is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Slack Modernizes Desktop Client

As virally adopted products ease their way from departmental to enterprise use, communications departments often struggle with the scalability of the base technology. Such has been the case with the popular team collaboration app, Slack -- and hence one of the reasons behind the company’s decision, announced today, to rebuild the desktop client so it runs more efficiently and is more responsive and reliable.
Since its founding, Slack has been on a mission to make people more productive by giving them ready access to the people, conversations, information, and applications that help them do their jobs. “All of that should just work, and the software itself should fade into the background … and let the work be the focus of your day,” said Jaime DeLanghe, a product director at Slack, in a No Jitter briefing.
Slack, however, made a couple of assumptions in applying that guiding principle to its initial client that now, a half-dozen years later, are causing some grief. For one, it figured that most teams would be relatively small… maybe a few hundred people, at most, DeLanghe said. And second, it thought people would be involved in just one team at a time.
Turns out, she continued, some of its largest enterprise clients have teams populated not by a few hundred but tens of thousands of employees, who may be involved in multiple teams at once – a reality that gave birth to Slack’s Enterprise Grid introduction in May 2017. What’s more, people are using multiple instances of Slack within a single client so that they can connect not only with their internal colleagues but like-minded professionals elsewhere or even friends and family.
“The way people are using not just Slack but software in general is pretty different today than it was five years ago,” said DeLanghe, noting the high volume of applications in use by enterprises today. It’s highly undesirable to have any single application take up too much memory or require too much compute power, “so we want to make Slack get out of the way from a computational perspective so you can run everything else,” she added.
Toward that end, Slack has rearchitected its desktop client and will be rolling out the new version over the next couple of weeks, DeLanghe said.
Slack engineers described the rationale for rebuilding, as opposed to just freshening up, in a blog post. They wrote:
“Somewhat predictably, a few internal cracks were starting to show in the desktop client's foundation. Additionally, the technology landscape had shifted away from the tools we chose in late 2012 (jQuery, Signals, and direct DOM manipulation) and toward a paradigm of composable interfaces and clean application abstractions. Despite our best efforts to keep things snappy, it became clear that some fundamental changes would be required to evolve the desktop app and prepare it for the next wave of product development.”
The product team decided to keep the existing codebase while developing a modern section that would future-proof the application and incrementally replace the old code. In other words, Slack has been gradually releasing its modernized client code bit by bit, first with the emoji picker released more than two years ago, then the channel sidebar, message pane, and so on. “Had we waited until the entirety of Slack was rewritten before releasing it, our users would have had a worse day-to-day experience with emoji, messages, channel lists, search, and countless other features before we could release a ’big bang‘ replacement,” the engineers wrote.
Slack UI
The engineers had a few rules in rearchitecting the client: 1) All components of the user interface had to be built with React, 2) All data access had to assume a data model that was “lazily loaded and incomplete,” and 3) All code had to be “’multi-workspace aware,’” a requirement fulfilled via Redux, which containerizes state for JavaScript apps. I’ll leave the technical details at that, but you can find more details here.
While results may vary depending on an enterprise’s deployment, Slack touts the following improvements that come with the modernized client:
  • Launches 33% faster than traditional client
  • Joins incoming calls 10 times faster
  • Uses 50% less memory than previously
In modernizing the client, Slack is showing that it’s “really leaning in” and continuing to invest in product development, DeLanghe said. However, she did not have a dollar figure to place on this modernization project.