On my work desktop, I have Pidgin running. There are accounts connected to
Google (friends and family)
IRC (technical channels)
our company XMPP servers (in-house chat, primarily a workgroup channel but also side conversations with individuals)
and a Slack channel via their IRC interface, for Rands's management discussion channel
None of them are distracting, because there are no sound notifications enabled. There are no pop-up notifications. If someone mentions my handle, that channel tab highlights blue; if there's new random chat, the tab highlights red.
I assume that there is always content available, and when I have time for it I glance over and see if there's something blue. If I have more time available, I check on something red.
If I'm working from home, I log in to those accounts on my working machine at home. Same procedures.
If there's an actual alert, the phone in my pocket will start making noises - a specific noise that I don't use for anything else, in fact.
It took a while to gain trust in all that, but now that I have it, I don't have any anxiety from checking chat or email or what-have-you: of course there's going to be content, and it's not going to be an emergency, because an emergency is always signaled by noise.
This is pretty similar to my own way of managing communications.
My main concern is that this way of communicating is endangered due to mobile and walled gardens. Maybe I'm just a dinosaur.
XMPP and IRC don't seem very mobile-friendly, or at least mobile connections aren't reliable enough for them and rely on push notifications. The mobile clients (that I've tried) seem weak. Each new "innovative" communication requires yet another app I need to download and check, with communications trapped inside a proprietary client controlled by a company.
Slightly offtopic, but how do you handle the fact that Google doesn't implement offline XMPP deliveries? I mean, if someone writes to you while you are offline, the message will get lost. You can see it on Gmail inbox, sometimes...
I'm always online. At home, my desktop runs 24/7. At work, my desktop runs 24/7. My phone is in my pocket, unless it's in my hand or on the table next to my bed.
But XMPP is not an emergency contact protocol. If I miss something, oh well.
If you needed me in realtime, there's a cellphone number which will do that. For anything else, I will possibly see your message (XMPP, IRC, Slack) or I will definitely eventually see your message (email).
A really nice setup for that is: bitlbee (for xmpp) and use znc to connect to that and your IRC networks. Now you just need a mobile IRC client that supports push notifications and ZNC (in my case that's Palaver).
I recently learned about /mute, which is a godsend. It lets me keep those channels open that I'm interested in, but lets me avoid getting a little red circle in my taskbar every time a message appears in them. I keep 80% of my Slack channels muted now, with only the really important ones unmuted.
This article hits the nail on the head, but twice-a-day is extreme and not realistic for my position leading a development team. I found the mute button & fiddling with notification settings to be the middle ground. I do the same as you, turned off the red dot for all but mentions and it took away so much anxiety. I check in whenever I have time or take a break from programming. It's a nice balance.
Agreed - if everyone did that I'm not sure there would be any point in using Slack (or similar).
The team I'm on started using Slack a few months ago but use has increased significantly over the last few weeks now that a) our tech lead is remote and b) other teams have started using it. Overall I think use of Slack has been a net-positive but my productivity has definitely been [negatively] impacted as a result.
Inspired by the author I think I'll turn off notifications (except for mentions) and only check Slack as frequently as I check email (typically about once an hour).
I'm sincerely annoyed with Hipchat because it does not have a feature like this, or configurable notifications per room. We've got our main chat (which I want to monitor), and then a room for support (which I don't really care about unless I'm directly pinged). Unfortunately, I can't turn off the latter without turning off the former. Very annoying.
So, as of a month ago it's available to beta users of the non-app version. I.e., it still doesn't have per-room notification settings in an actual use case unless I downgrade down to the web client.
Perhaps it's an abrasive trait, but I really am not over-concerned about being available. That is, I check my work email once in the morning and I flip through my team's Slack channel when I'm directly pinged or after coming back from a time-out mini-break. Other communication mediums I check even less frequently.
Folks who feel compelled to be highly-available, what's the draw? Is it a nervous compulsion, a sense that you're going to miss out on something or yet something I haven't even imagined?
Here's a scenario. Someone sends you a message Tuesday morning, asking "hey what is the best way to push data into this system." You are not available, off in your fortress of solitude, so they wait for about 30 minutes to hear back from you, they don't, and they proceed with reading documentation and trying to figure something out. A day passes.
The next day, you look at their work and you exclaim "wow! this is going to be really inefficient and cause problems with other features that I know are coming!" and they say "well that's why I asked you..." and you reply "well, I'm not concerned about being AVAILABLE..."
That scenario wouldn't happen. If someone is sending me a message directly, in my present organization, we're talking Slack. Sent directly, that'll be a ping and I'll respond as soon as I notice which'll be in a few seconds. It's a disruption, sure, but if you're reaching out directly it's important. If it's _super_ important escalation to video-chat or in-person talk happens.
What I'm curious about is the regular polling model of availability. I could have been more clear.
That assumes that they know you're the person to contact. In several cases I know how to do something, but it's not totally clear to my coworkers that I do and it's appropriate to contact me. Or, more commonly -- I know someone on the team knows how to make a system work, but I don't know who. (I don't think you need to poll more frequently than every 30 minutes to make this work well enough, so you can do Pomodoro-length blocks without checking every ten seconds if someone else needs you.)
The other thing about this model is it encourages things to be personally-directed disruptions. In a healthy, non-tiny engineering organization, there are important parts of the system where multiple people understand the subtleties (to avoid SPOF) but not everyone understands the subtleties (because they don't need it). Multiple pings will bother everyone for no good reason, when only one of them needed to be bothered. But to avoid that, you have to ensure that a broadcast query will probabalistically be answered by one person who knows the answer.
This isn't a problem. A company big enough where someone doesn't know who handles what will already have a good chance of someone seeing the message. Direct pings for immediate responses, otherwise a reply within an hour or two is just fine.
Or if that really doesn't work, I'm sure the first incorrect direct ping will redirect to the right person right after, it's not like you need to annoy everyone in a massive blast. And big companies will generally have managers, assistants and others who are more flexible and can deal with this very well as general routers of communications.
Regular polling, IME, happens when you're trying to "keep abreast" of a decision making process that you are not directly involved in. Say you are the SME for data security and there is a discussion which could involve you but presently does not. You initially pay attention, but work on some other tasks in the background and poll on the discussion to see if there is anything that would affect you.
The danger happens when you start thinking that everything could affect you and you spend more time keeping up to date on what everyone else is doing rather than doing stuff yourself. Eventually the pendulum swings the other way and you stop paying attention to anything, until Something Happens and If Only You Were There, and then you start paying attention to little things, a few times, again. And the cycle repeats itself.
He said he checks messages if they're sent directly to him. That's perfectly reasonable and I'd wager everyone on this thread does exactly the same, not caring too much about chatter not specifically related to them. I assume no one here has 10 different people DMing them questions or new stuff to do.
I read his comment as he doesn't check Slack all the time unless someone mentions or DMs him. Your scenario doesn't happen in that case.
Is there really nothing else they could be working on while they wait for a response? Are they in such a rush to work on that one specific thing that they have a 30 minute timeout before deciding "ok, our scout is dead, we need to come up with some other way to get out of this cave: let's try explosives"?
What is an acceptable timeout? What if the answer is no, there is actually nothing else they could be working on? What if the problem is "hey, you forgot to add this file and the build is broken?" When is it appropriate to interrupt someone to get them to respond?
it was a contrived example for rhetorical purposes. people who use Slack regularly might recognize this as a use case for "can anyone @here help me with pushing data into #system?"
"Can anyone help me go pick up the dresser and move it into the other room? No? No one is around? Well, this has to get done right now for reasons that are still not yet clear so I guess I will just try to do it myself. ... Great, now I'm lying on the floor in agony as I pulled a muscle in my back, and I knocked over the dresser in the process. If only you were available on Slack none of this would have happened."
I have absolutely no idea what you are trying to say by that... I can only guess you are trying to claim that I only have experience dealing with "volunteer IRC teams" by my argument; but in fact I tend to spend most of my time talking with the small number of people whom I have as employees, and I spent quite a bit of time working in a consulting company.
There is something fundamentally broken about either the employee or the company if they find themselves trying to do something and it is not acceptable for them to wait until the correct resource is available. This same employee is going to do tons of dumb things as they time out on external events (support tickets, vendor fixes, financing, approval, etc.).
If you just can't see how "everyone needs to be available at all times to be interrupted from the task they have to help someone else with a task they have or that task is going to get done in some dumb way without you" is absolutely not a sign of "coworkers who are able to communicate well" then I guess I'm glad I don't work with you at your company :(.
I mean, the article is misunderstanding asynchronous but urgent communication. But it's about Slack, and my comments are geared toward learning the communication habits of a team.
If Slack is interrupting your work, then you are using Slack wrong. Period.
I'd say it's much worse than that. If I stop to walk in a marathon, I can probably expect to run faster for a little bit afterward. But I work slower after checking email. It's more like drinking a beer during a marathon.
(Taking a short walk outside during mentally difficult work does help.)
after reading your other comments in this thread, I completely agree, and maintain things the same way. I've found that by closing slack, I can get multiple orders of magnitude more work done in a day, which is crazy.
I have everything set up so that iff I am directly mentioned, or directly messaged, I'll get a ping, otherwise it won't bother me. Same with email (Everything without me & only me in the TO field gets filtered into a folder that I'm not sent push notifications for).
This way, I've found, lets me be far more productive, and I still feel that I respond to requests faster than 80% of anyone else in our company, so I don't think there's much drawback.
The thing that's so great about Slack is that it's IRC, but private, but well synchronized, with persistent state across client instances, and you have fine grained control over the notifications.
The threading mechanism the article doesn't seem to understand is Slack teams.
I can totally relate to this. We use a slack equivalent app at my workplace and most of my days are spent trying to make sure I didn't miss an important conversation or a critical issue that I could have helped debug, instead of focusing my time and energy on the task at hand.
It does however help make the remote employees feel more in sync with the rest of the team, because now you're not missing out on the important discussions that would have happened in-person in the past, and you also have a chance to get to know your employees a little more personally. I guess it depends on the company culture to some extent but we seem to have moved all our water cooler discussions to this app.
Yep, exactly. I used to think Slack was the best thing since sliced bread, and now I keep pushing back to async communications like email to get my concentration and productivity back.
There's nothing about slack that makes it inherently more syncronous than email, as long as you switch off all its dumb notifications to make it work like IRC.
It feels, and this might just be my opinion, that Slack inherently has different response speed expectations than email (or other async comm methods) due to it being a chat client.
I still think Slack is the greatest thing since sliced bread, but I agree with you. If I need to send something non-time-sensitive to a specific person I will still go to email or another channel (1:1 meeting, Basecamp message, Trello card, ticket, etc) rather than sending an @mention.
If it's not specific to an individual, then I think dropping random things in channels works reasonably well asynchronously as it lets everyone decide when they have time to read the given channel, and of course it shows up in search for later reference. Slack stretches the boundaries of real-time communication quite a bit through clever design choices, but that's still its fundamental nature.
Which equivalent app? If you are also using email at your workplace, then your workplace might be missing out on the most important features that make people want to pay for Slack.
Well said, even it it touches only on the distraction aspect of chat apps. Reposting a comment I made recently:
"""
web chat is often (ab)used in a way that makes it the equivalent of global variables for communication: if offers the path of least resistance for sharing information (state) at the cost of making this information harder to retrieve, search, structure, associate, leverage in the future. Or to try another metaphor, it's the equivalent of dumping data on flat free-text files instead of a relational database.
Web chat does away with two (at least) properties I have come to appreciate in written communication: being asynchronous and contextual. Although modern web chat systems typically work even when you're offline by sending notifications, they're primarily a realtime system. There is the implicit or explicit expectation that a chat message (especially a direct one) should be answered asap, unlike an email or a tracker comment. As for context, there is little to none. In more than one company I've seen chat effectively replace the dedicated bug/ticket tracker system, with people polluting one or more channels with intermixed discussions that would be better off as comments on the ticket at hand. It's a mess for anything other than transient, throwaway stuff you wouldn't mind purging after a few hours or days.
Looking forward for a "web chat considered harmful" blog post if there hasn't been one already.
Regardless of how you do things, you're going to need to find a way to manage distraction. Personally I'm an engineer turned CTO who used to spend 95% of my time writing code, and now spends 75% of my time on management and "soft" tasks, so I can directly relate to both sides of PG's famous Maker's vs Manager's Schedule.
Every employee is going to need different amounts of space to do their job, both due to the role and also because of personality. While Slack can destroy focus, it actually has less potential to distract you then the people in your office (whether that be colleagues, co-working space people, or roommates/family at home). In all cases there need to be boundaries and reasonable expectations, and there is no way to set those without some dialogue and empathy happening.
Now, full disclosure, my team is distributed between SF and London with a long tail of employees spread in a dozen other countries, so something like Slack is essential to fill in for certain face-to-face communications. But even setting distributed teams aside, Slack has some of the best notification controls in the comm tools space. The granularity of the notifications and the configuration options to show/hide/notify different channels and groups give you an amount of control which no other tool I've seen affords. You definitely have to dig into the Advanced and Channel Prefs in order to really dial this in. I also use the Mentions tab, and use of Stars on Channels, People and Messages to augment its async capabilities while still staying remarkably available to help where I'm needed.
Of course this is far from a silver bullet and non-trivial to set up, but going back to email would be unthinkable at this stage. I have pretty sophisticated methods of avoiding distraction in email too, but it is infinitely augmented by telling my team: "if the sky is falling DM me on Slack". That way anyone on my team can get ahold of me at any time, and I don't have to worry about a bomb in my email inbox. The problem with email is that literally anyone in the world can email you at any time, and everyone uses email in their own way, so there is no space to come to a common understanding of how to use email. The only way to win at email is to define on your own terms how you will use it to make yourself the most productive and not letting others' expectations drive your relationship to email. One of the reasons Slack is able to "replace" email is because it gives a team a private space to set up their own social norms that is isolated from strangers and other companies who really shouldn't have a say in your priorities and time management.
We use Hipchat at work and I have it set to only notify me if I'm mentioned (including @all and @here) or if someone directly messages me. My email doesn't notify me when a new message comes in so I check that every so often when I feel I need to rather than when I get interrupted by it.
No way. I don't know how our remote working team would live without slack. It adds back the in-office style communication you have in the real workplace and (more importantly) gives us a sense of culture that is sorely lacking in a remote working environment. It's an essential tool - it's IRC with the missing bits like search, website preview, file uploads and more. We've become heavily reliant on it and even spin up consulting companies on our slack with access to specific channels and that works well too.
If you want to avoid distraction, just avoid distraction by unplugging. Turn off your phone, turn off slack notifications, lock your office door, hit the Adderall, etc. (Joking about the adderall)
Manager vs maker schedule issue.
Slack is a tool - with quiet some configuration regarding this.
Has nothing really to do with slack.
You get the same issues when interrupting people in person.
Or actually calling them on their mobile.
My compromise is to turn off notifications for most group chats and rooms. I still probably check chat every 15 minutes, but I choose when to check instead of a notification breaking my train of thought.
I'm a big fan of using chat to see if someone is available to talk before going over to their desk and interrupting, but if you only check it twice a day there's no advantage to using it over email.
I would really like to see an auto-reply feature similar to email out-of-office. Something you can set like "Back in 20 mins", "Coding until 4, PM if urgent only". Would mute the notifications maintaining your productivity, and your peers would still be in the loop instead of being ignored. Does anyone know if this can be done with a bot?
Good conclusion with a terrible reactionary-sounding title.
I'll add that whoever invented pop-up notifications for the desktop should be dragged away screaming and pleading, only to be silenced by a gunshot in the distance.
I assume that there is always content available, and when I have time for it I glance over and see if there's something blue. If I have more time available, I check on something red.
If I'm working from home, I log in to those accounts on my working machine at home. Same procedures.
If there's an actual alert, the phone in my pocket will start making noises - a specific noise that I don't use for anything else, in fact.
It took a while to gain trust in all that, but now that I have it, I don't have any anxiety from checking chat or email or what-have-you: of course there's going to be content, and it's not going to be an emergency, because an emergency is always signaled by noise.