Nor do I think this is as simple as “you can simply exit the program.” If the company or team has certain expectations on communication that won’t work if you do it without consulting with your team. A lot of people are not in this sort of position where they can take an action like that and not be ostracized.
Imagine ignoring calls or emails from your boss for a day or two when it’s clear that boss expects responses in a specific time? Exiting Slack can have the same effect at a lot of companies.
I simply think more companies need to take the time to discuss how tools will be used and for what purposes so everyone is on the same page. We have always published an etiquette guide that is open for debate/change. But most places I’ve worked use Slack and most places simply don’t discuss how it’s used so everyone has different expectations. And being the one person trying to fix this problem in a team can make you feel crazy.
Many of these decisions you refer to are not made by the individual employee, but by the team lead, PM, or the executives, who are not always very connected to how those decisions affect developer happiness. So getting control of your personal digital life often has no bearing once you enter the workplace with an entirely different set of expectations.
Slack being a public company worries me even more, because there is now an even greater drive for them to make ever-increasing revenue/profits, which usually means keeping people on Slack and active within the client and increasing daily active user / engagement metrics. In many ways there isn't great alignment between a company being productive and Slack's financials; Slack is incentivized to boost revenue even more now, likely at the expense of end-user productivity.
On the broader level, I definitely think the larger the company and the larger influence it has, the more scrutiny it needs. People who are in charge need to recognize the externalities of what they are making, and the potential negative side effects they can have. I have been somewhat encouraged at least in that this conversation seems to be happening lately.
I would think they would care more about adoption of the service across more kinds of companies.
Then slack makes no difference then, you might as well blame emails or the phone company.
On my team almost everything goes into the main team chat; however, every message is tagged with the person it's aimed at and any team-wide communication is tagged @here. Any sub-conversation about that top-level message happens in the message thread.
With this method, you are only notified if you are tagged in a message or if a message is tagged @here. Outside of that I will check slack about once per hour and can see all top-level issues at a glance that either my team or a specific person has been notified of. If I am interested in whatever the issue is I can dive into the thread and get more information about the issue or contribute my 0.02.
I see many here suggesting other software, at the end of the day that's all it is, software. The productivity drain/boost comes down to how everyone decides to use that software. If you get 100 emails a day with the subject "IMPORTANT: READ IMMEDIATELY", email suddenly becomes just as annoying and as much of a time-suck as Slack, this applies to all communication methods.
Using @here in a channel is the equivalent of standing on your desk and shouting at everyone around you. So what happens is, like you, everyone starts muting it.
And then you just have people shouting into the void.
It all boils down to how people use the communications channel. I see @here multiple times a week but do not feel like it is a big distraction. At worst it can create a few minutes of distraction from my current workflow and if I'm truly in the middle of a thought process I ignore the message for a little bit or unless a 2nd notification hits.
Never @ someone unless you want their immediate attention?
Just because you have instant messages doesn't mean you have to respond instantly. Disable notifications and checking every few hours is plenty enough. If a person can't work because of a pending question, it usually means they don't have their work organised sufficiently.
This is an overly harsh assumption. There are plenty of compelling real-world examples of organized, effective people being blocked by some small but urgent thing that's not their fault and requires a few minutes of attention from someone else.
If a dev just started on my project but the DB credentials I gave him aren't working (or whatever), that's on me. If my boss's boss jogs over to our office area asking who here knows Thing_X the best, I'm going to deign to remove my noise-cancelling headphones and accept the deep-work disruption.
The key thing is being clear what communication and team culture you want to establish. I'm not just a grumpy guy that ignores messages or avoid helping others. It is something that has been discussed and agreed upon in the company and is expected to be respected by anyone no matter where the person is in the hierarchy.
Or never start to use it in the first place.
The fundamental problem with Slack is that its interactions are not structure in the right way to be useful in non-real-time. An email thread has two critical pieces of structure that Slack threads lack: a subject line, and a beginning. With email, it's easy to tell where a particular discussion started, and which messages have to do with that discussion. On Slack, these things are all intertwingled. In order to find the beginning of a discussion you have to scan everything in the channel. That is what makes Slack a distraction. It's much harder (like virtually impossible) to filter content by topic after the fact.
As anyone who's followed a giant email chain, I think that slack is at-least a little bit easier to follow. Albeit I'm working in a company that is just now trying to start to emphasize stories/tickets/chat over email for everything, with tons of pushback.
Gone are the days of email everything, tons of people are CC'd, email chains are 30-50 responses in. It's absolutely unmanageable. Oh and if you drop chat, let's start logging alerts to email, or bugs to email. It's useless.
Personally I'll use chat for anything relatively quick or unimportant in the grand scheme of things. I'll use email for when it's not something that requires a response right away but generally is also unimportant to the company projects and doesn't involve a ton of collaboration. Anything bigger than that goes in a system that's suitable for tracking projects or complicated topics.
I don't think there's a one size fits all solution for communication.
I've convinced everyone at two companies so far (50 and 20 people) to never reply directly in a channel, and always use threads:
I usually start by proposing an idea to a small group of people - e.g. my team or people at the company I think might like the idea. Only after a few people say they like the idea and start using threads, propose the idea to more people and say "look, a few of us are using threads and it works".
This a million times
Bonus points, you don't annoy other people in the office with your impromptu meeting next to someone that has nothing to do with it
I've found being in Slack is a great way to feel less isolated, and conversations that might not otherwise happen happen. I also am in very small channels, usually no more than 5 people. This may contribute to why I like it. I can't imagine being in a 50-100 person Slack with everyone messaging everyone. Especially if I'm expected to keep up. The low population count makes it so that I rarely miss anything.
It's a tool. Use the tool, don't let the tool use you.
What about scheduled DnD for days off? Ability to /ignore annoying bots? Two basic features which should've been added long ago.
That is very vague. Sounds like you have an axe to grind with your management.
What about scheduled DnD for days off? Ability to /ignore annoying bots? Two basic features which should've been added long ago.
Good feature idea. Have you submitted them?
As for as DnD scheduling for PTO, they have custom which I use on my last day. Works perfectly for me.
As for /ignore for bots, sounds like the people controlling your Slack need a suggestion or two.
No, you can't, and that is the problem. If your entire team primarily uses Slack to communicate, you are forced to constantly check it or you are not being a team player.
You talk about searching the history but to me the search tools are so weak that I figure only the recent slack messages have relevance -- instead slack is as transient as a text message. Mail at least can be searched as a corpus.
I like Slack, and having a group communication tool has only increased my productivity.
How? - Having a place to easily search for issues others have had in the past. Sure, you can search emails or ask the same questions, but it's nice to search and find answers from other peoples conversations. - Integration for production alerting, customer feedback, and deployment pipelines. Instead of manually digging through several different web UIs or using a bunch of different CLIs, I can just take a look at the corresponding channel. - Notifications _can be_ non-distracting. Being the correct channels, snoozing alerts, or just exiting slack when you need the deep focus headspace, is easy.
I specifically don't want to be called/texted/interrupted in person unless it's something severely important. 90% of the time its not. I would much rather ignore a slack notification than answer a meaningless phonecall, or politely tell someone to bug off in person.
I will say, the "always on" culture is hard to face when Slack/group messaging is a companies main point of communication. Luckily, I've only ever been in places where its been understood that you are only expected to be responsive during your work day.
But, I think the negative effects of the cost of distraction by slack are overblown. There are endless ways to be distracted these days, and Slack is not the worst thing out there. You can always just exit the program.