Personally, I'm kind of tired of using Slack. I think it is disruptive and hostile to doing deep, focused work.
I'm curious what other developers think about Slack at work. Is it something that disrupts you? Are there features of it that make the disruption worth it?
Historically, I've also been very frustrated with the lack of search features in Slack. The Open Source project I help maintain uses Slack for communication and it isn't good for having technical conversations because you can't search it like a forum.
I've felt a desire to move back to something more asynchronous (not quite email), but something that isn't hostile to the way programmers work. Do you agree or disagree?
Top comments (37)
I've experimented with the "do not disturb" mode which has worked well. But I also occasionally work from home and when you do that you also have the desire to be always available.
One thing I enjoy doing is starting my day really early and working on stuff before even opening Slack or email. That way you can easily get 2-3 hours of uninterrupted work accomplished.
By the end of that chunk of work you may also have pending questions for your co-workers so may be a good time to open Slack and start chatting to hash things out.
Do you find that you're not able to block off 2-3 hours if you don't get up early?
I feel like the need for immediate feedback is a big problem with the way people use Slack, if you could just not be expected to respond within 20 minutes it would be easier to block that time off.
To be honest I start my day early most days even at the office so I usually do have a good chunk of time for dedicated work to start my day.
There are some days where I don't write any code at all but it's not always due to Slack. It's usually meetings, planning, troubleshooting, brainstorming with teammates.
Have you actually been told you need to respond within 20 minutes or is that just the general feeling you have?
If you are really blocked you could just try closing Slack for an hour and do some work. If someone really needs to get in touch with you they'd come find you :)
Haha, no one has told me that, but Slack is engineered to make people feel an urgency to respond.
I feel like it takes an organizational change to get teams to fight the urge to treat Slack like an instant distraction machine, so it'd be nice if the tool itself fought that pattern. However, I think it's built to encourage that pattern ☹️
Another idea that might work depending on your team and work environment is bringing it up at the next team meeting and see if you could agree to set aside a certain time of the day where you can all take a "slack break" or just not be obliged to respond immediately.
For example "No Slack before 930am and after 1pm" or something like that?
Sounds like you guys have a corporate culture problem. In general, chat tools should be seen to be inherently asynchronous – though typically less delay-oriented than email. Which is to say, while tools like Slack can be used for interactive conversation, if you're not actively participating in an existing conversation, there shouldn't be an expectations that you'll simply drop everything just to reply. If someone needs you, you should have an established urgency-escalation path (e.g. Slack direct message or @-mention, SMS, phone-call). Also, people should take your Slack-status seriously (if I've marked myself away – especially if I've snoozed notifications – "take the hint").
I like slack but I keep mine on silent and I am prone to hyper focusing so I don't notice when I get notifications until I need to use slack. That being said my team is small and we only really use it for short logistical things, so there's never really a whole lot happening on it. I think it makes communicating with the remote people on the team easier though, and having a place where I can go to find things people have said. I use it pretty asynchronously though, and I never expect people to reply immediately it's more like a group email with organized sub spaces
Do you have trouble with finding old conversations or do you have another space for recording decisions made in Slack?
Important decisions definitely end up in jira either as tickets or part of our documentation. Normally when something like that comes up we make a plan in slack to record it somewhere, either assign someone to make a ticket or send a more formal email if it involves people outside our team. I use the search feature too, it's not amazing but it works for searching by words I remember and it's similar to searching emails
I have to say though, one of my favorite things about slack is honestly the ability to slack myself things I need to remember or articles I want to read at work the next day
That's exactly the kind of thing I'm interested in, I feel like developers NEED asynchronous communication to be the default. Otherwise, it's so hard to make time to get deep into a problem.
Starting with more of an abstract comment, but I find the mantra of "developers require focused work more than other professions" to be incredibly unproductive and disrespectful to colleagues in other disciplines. To argue that development is the only profession that requires deep, focused work implies something incredibly negative about other professions. It doesn't matter whether your career is writing code, writing blog posts, completing financial audits, or any other number of things. If your profession requires mental effort then it requires deep focus and, in your eyes, asynchronous communication.
Having said that, I'd argue that - despite its default notification settings, which are designed to get the maximum engagement out of users, thanks to Slack's origins as a VC-backed company that needed to show growth - Slack is an asynchronous communication tool. You can entirely mute channels, DMs, or the whole darn app. You can actively prevent coworkers from interrupting your thought process. If you want you can disable
@channelnotifications, disable push notifications on your device, as well as leave Do Not Disturb on 24 hours a day, and you'll be able to functionally use Slack the way you'd use email. In fact, it's how most people in my office have their accounts set up. In my mind, Slack is great in that it allows you to choose your level of engagement, and if you'd like that level to be "none" then that's your prerogative.
Searchability is a fair argument, though I personally feel that "starring" and "pinning" messages, combined with the new search interface rolled out earlier this year, I no longer struggle to find messages like I used to. Slack search used to be problematic, but I haven't felt that pain in a while.
I agree, if I am working in a project, and my coworker is exchanging data about the project in a chat (Slack, or our embeded ERP chat, or whatever...), I ask him to put it in the BitBucket issue, or in our Task manager.
I hate having to search for something related to the task I am working in inside of a chat. Chats can be purged, they can be quickly a hell to look at, slow search and duplicated data makes it even more difficult to trim the good information, ...
Also better if somebody else is taking the lead on a specific task. Instead of dumping a chat history, he/she have everything in the appropriate task/issue.
I've also noticed forcing people (including me) to put questions/suggestions/remarks in the task/issue make people go straight to the point, and avoid unnecessary remarks since it will be peer reviewed by others.
I think that accountability thing is key. Tons of stuff gets lost in Slack threads and DMs that should be recorded somewhere in an easily searchable format.
People talk about Slack like it is a better, more modern version of email. I think that is really wrong - it's more like a modern version of the water cooler. You have little choice over who can overhear your conversation, it immediately lets you know when you have a notification, and it constantly pulls your attention between channels.
It's pretty nightmarish, in my opinion. That being said, I think there are a lot of ways to make Slack work a lot better and fit with your style of working. I'd highly recommend reading How I Slack by Rands.
Lately at work, we've been trying out buddy rotations for "communication triage". Basically, one dev is working in "deep focus" mode, where they don't have to worry about incoming communication. The buddy dev then handles communication for that time and they swap after a bit. It's worked pretty well so far! I'll probably do a write up on it soon!
That's a super creative approach! Good idea.
Personally, I don't think Slack is unique in being disruptive — it's just another communication channel. Our org also tends to use it as a replacement for the in-person meeting, the "hey do you..." doorway conversations, and "OMFG teh sver is on fir!"
I don't know if this helps you, but after I was forcibly made manager-ish, I instituted something I call "Office Hours." During office hours, I'm available for anything: Phone calls, Slack, meetings, water cooler chats, drive-bys, whatever.
I confine my work during this time to smaller tasks, manager stuff, organizing my project tasks, code review, planning, meetings, etc. All stuff I can handle in 15-30 minute blocks.
The rest of the time is spent developing. I go completely radio silent: Door closed or I leave the office, email client off, slack off, phone on vibrate, headphones to drown out door knocks and drive-bys.
Like @neilonsoftware , I'll respond to my phone if the message is meaningful — I've had issues with terrifyingly goofy interruptions ( "Look at my awesome coffee cup!", "I wrote this
forloop. Can you explain it to me right now?"), — but otherwise I'm fairly ruthless with this time.
Response to it has been pretty good, though I have to re-train Execs on a regular basis.
YMMV, but I hope it helps.
I like using Slack, but in every job I've worked in (as a developer and outside of development) I've put it on mute. I try to make it clear to my colleagues that I won't always have an instant answer for them and it's never been an issue in any team I've worked in.
All I find myself really missing out on is the general group chat and while all the cat gifs are nice, I'd rather spend my days more productively.
Slack is what you make of it.
When we were a small organization, it was a great tool. As our organization's grown - and added people with different work- and conversational-styles (and, perhaps more-crucially, people with differing ideas of netiquette), it's become less helpful. I've pretty much de-subscribed from any channels I don't absolutely need to be a member of. The ones that I don't need to actively monitor, I mute (that way people can still pull me into a conversation by @-mentioning me).
A lot more useful in this dialed-back configuration.
Thanks for you thoughts. I didn't mean to say other disciplines don't need focus, but I really feel that pain as a developer.
I think that's an interesting approach, but I feel like the people building the product are opposed to using it the way you've described.
I interpreted developers NEED asynchronous communication to be the default to be an exclusive statement, but I now see that I added some personal context, I apologize for putting words in your mouth.
I think that's completely fair, but I don't much care if they disagree with my notification setup :) Twitter probably doesn't like that I have notifications entirely disabled, but I'm not letting that stop me either.
It's probably only exclusive in that this is a developer-centric site. In the small, remote fishing village where I do stuff, we use the term Maker (as in Maker vs. Manager) to describe those of us who need focus — artists, designers, developers, writers, etc.
I agree with this response. The problem here isn't the tool. There are two issues I see.
First and foremost, you need to set clear boundaries. Complaining to us helps you vent. Making a clear and structured argument to your manager could actually improve your life.
I told my manager "Hey, when my meetings are spread through the day, I can't focus long enough to do difficult projects."
He's a great manager, so he told me to block off my calendar for a large block and he moved all of my required meetings to the late afternoon. Solved.
Second, don't assume the way you develop is the only way. I need large block of time, but I also work best in collaboration. I'm capable of writing code in isolation, but the stuff I write in collaboration is better by far.
So we do tech design workshops with two to three devs. We discuss and design on the whiteboard. We use slack to communicate timely things that are higher priority than email (focus changes, new meetings, readiness of PRS, blocker bugs).
We also use it to share links. If you favorite the link, it's quite easy to search. Then you let it go when it's no longer important.
I find slack to be a key part of that ecosystem.
I think it's exactly as disruptive as any other messaging system.
I think if you're working on an open source project, then it follows that you probably support open source software, or better yet free software, and you could switch to using a free alternative to Slack, of which there are plenty. You could tweak them to be less "hostile", too.
I think the problem isn't the software, I think it's people (it's always people, isn't it?)
Personally I don't have a problem with these things because I don't look at them very often. I check my email when I reach a natural break or if I need to look something specific up - and in that case I don't pay attention to the unread count and open anything I don't need to at that instant.
Same with Slack, or IRC or whatever.
Slack can be good for technical conversations, and the fact that it is asynchronous really but sometimes it comes across as synchronous is a strength rather than a weakness. I'll get a reply eventually, when it's convenient for the other parties. That might be straight away, it might not. And that's ok.
I don't use the search very often because anything I need to know I tend to copy to a more appropriate place - code snippets go in a snippet manager or whatever, I update READMEs with instructions, that sort of thing.
Slack is a valuable tool, but it needs to be managed as it absolutely does hinder deep work. I’m working to implement “quiet hours” at my firm where everyone turns slack off on a set interval each day to focus on deep work. I feel immediate relief when I turn Slack off, it’s glorious.
My phone number's in my Slack profile. That said:
I stay logged in to Slack, though, and simply make use of its more useful features to govern my interruptability (muting channels, wholly pausing notifications for set periods of time, etc.) There's a lot you can do with Slack to preserve/enhance its usefulness while reducing its annoyance-capability. It's a really good idea to read Slack's documentation.
I agree that Slack is disruptive. It does have features to make it more asynchronous but actually using them and getting the team as a whole to use them so your culture of communication isn't instant takes some real discipline. It's great to see comments with ways to solve this problem!
That is super brave of you to offer your personal phone number up for work access!
GV (and similar services) are great for retaining control of your phone number. Set your default answer policy to "straight to voicemail" (optionally enabling call-screening), then dump known callers into different groups that you can make rules for (e.g., co-workers can call me any time M-F from 0700-1800 but go straight to voicemail outside that daily; friends can reach me daily from 0600-2300; family has no restrictions).