As the age-old Slack vs Zulip battle continues, I have spent a great deal of time thinking about the implications of using the two platforms. I will attempt to lay out why I think that regardless of the platform, we need a 10,000 message limit.
Note: This is not intended to be a Zulip vs Slack discussion. Each has its merits and I am personally flexible and would/do use either/or.
Why have a limit:
One potential issue I see with a closed workspace that allows for unlimited message history is that while all of the knowledge and discussion exists, it’s behind a closed door.
A new or potential community member cannot see what is on said chat app without creating an account, learning to use it, and then searching for what they are looking for. This is undoubtedly a barrier.
The more problematic part is that knowing the message will be saved results in folks not feeling the pressure to move a particular conversation onto Discourse or GitHub when appropriate. This furthers the siloing of information and hurts the community as a whole.
What can be done to promote a more open community:
Remove helpdesk channels. I may be extreme in this context but we have two viable alternatives: Discourse for short and less formal questions and Stack Overflow for formal/well-written questions. While having your question answered in a helpdesk helps you, it does not help the next person who has the same question. Like it or not, every other large programming community has a massive presence on Stack Overflow and other sites. If we want to grow and help the future Julia programmers, we need to remove the helpdesks. (The help desk channel on Slack also eats up much of the 10,000 message limit)
Whichever chat you use, keep a 10,000 message limit. This will allow for communication between folks but not take away from the free flow of information that is vital to our community.
Keep as much as possible open. We are all in the open-source community and in the spirit of open-source, we should be trying to keep as much of the conversation, development, and planning in an open forum where anyone can see and partake.
That’s an interesting perspective that I don’t think I’ve seen articulated in this way. A few potential counterpoints:
The pressure to move things to Discourse/GitHub might not be large enough for people to actually do it, leading to loss of information
Many things are just not really amenable to moving onto a Discourse/GitHub type format - I’m especially thinking about longish, interesting discussions in say #autodiff or #statistics with many contributors
The 10,000 message limit doesn’t seem to solve the issue of many SO-style being answered on the “siloed” communication platform (i.e. removing #helpdesk and an overall message limit are orthogonal questions)
10,000 seems to be a slightly arbitrary (Slack induced) number, as @Mason has pointed out many times with growth in the Julia community we’ll get to a point where 10,000 message limits mean that messages might disappear in a matter of a day or two - so even if one were to go for this model one would have to think about whether 10,000 is an appropriate limit.
FWIW I personally think that something like the model that might be coming to Zulip where one has self-destroying messages in some streams/channels but persistent messages in others can strike a good balance.
I think that would lead to a very unfriendly experience for new users. Imagine someone wants to ask a quick simple and possible ill-formed question and they’ve discovered the JuliaLang Slack instance and gone to the trouble of creating an account. They ask on Slack and instead of getting an answer, they get told that they need to go create a StackOverflow account and figure out how to pose a question there that won’t get downvoted by the notoriously unfriendly mods who don’t think their question meets the standards of StackOverflow. It’s entirely possible—likely even—that most people with simple Julia questions that would most effectively get cleared up in chat form would never get their questions answered.
We have a greeting bot for new users and we could layout that other than basic questions like “Where do I go to install Julia”, the questions should be asked on SO or Discourse. IMO, it’s all about tone and making it polite + positive + inclusive.
I don’t propose we don’t answer their questions (I love helping new community members), simply that we don’t promote the use of Slack for questions and instead push the use of other platforms.
If new users keep coming back with the same questions to Slack’s Helpdesk, we have no way of knowing other than human intuition. That person may not even end up trying to get on Slack in the example you gave above if their question was already answered by a previous user in the same position who posted to Discourse/SO.
Most still have a large presence in various (un-)official real-time chats, like IRC or Matrix channels, project-specific Slack workspaces etc. I wouldn’t be surprised if removing the helpdesk channels had the effect that people would ask their question on other, smaller, community platforms where the chance that the next person with the same question sees it is even smaller.
I emphatically disagree with this. My experience has been that chat apps like Slack and Zulip are much better than Discourse and Stack Overflow when the help needed is more personal, and problem is not well specified or even understood. The cognitive barrier to posting a naive question in a #helpdesk channel is much lower than Discourse or Stack Overflow.
That said, many questions that appear on #helpdesk channels could be cleaned up and posted to StackOverflow or Discourse once they’re resolved and better understood. With unlimited message history and a topics model, we can even link back to the original conversation for those needing more context.
I’d be in favour of thinking of ways to make this crossposting process easier (this is a lot easier to do after the fact on Zulip, due to topics). The main things that make me less likely to do it right now is that I find Discourse’s search tools are quite poor (so I worry the effort is wasted) and I’m not a fan of the culture on Stack Overflow.
I think imposing a 10,000 message limit is both arbitrary and antagonistic towards users. @dilumaluthge and I have spoken to the Zulip admins about enabling an experimental feature which would cause messages to be deleted after a set amount of time in specific channels (probably #gripes and #random, but that is undecided so far). I would not support any push to apply that to the #helpdesk.
I recognize the friendliness of the helpdesk channel and see very supportive people, but on the other hand I see a certain amount of unanswered questions and most of the time I have the feeling that those questions would be answered sooner than later on SO. This happened to me once or twice so I might be biased…
The first impression of someone new to Julia, posting in a slack channel and getting no feedback at all isn’t a good one. It might be helpful to skim through the last couple of days on the helpdesk and count the lost souls not getting any answer in order to see if this is actually a problem (or not).
Maybe there are just times where no answers can be expected and maybe this can be cushioned by having a bot with an autoreply after a couple of minutes inactivity suggesting to post on SO?
Update:
I’ve gone through the last week and I guess there are roughly 3 questions per day not answered, which is actually quite good. I still think that a nudge towards SO would be helpful: It would reduce the effort to reincarnate answers and increase the visibility of Julias community.
My original post was not intended to suggest that the support/help on Discourse/SO is better than that of Slack/Zulip. I whole heartedly agree that It’s much easier to answer questions and troubleshoot on the fly with S/Z.
The reality is that as long as these communities offer a defector place to ask questions and get help, less questions will go on the other platforms. People are busy and don’t want to (in general) have to fix their issue and then write about it in SO/Discourse. It won’t happen broadly, it’s human nature.
The main things that make me less likely to do it right now is that I find Discourse’s search tools are quite poor (so I worry the effort is wasted) and I’m not a fan of the culture on Stack Overflow.
I hear you on those criticisms, but in the end, we need to work with that we have. As I mentioned already, there’s no doubt that S/Z works for those in the community but they don’t help those outside of those communities nor future members (with respect to the sharing of knowledge). We also have the opportunity to make the SO culture what we want. There’s 1,000’s of folks in the Julia community thus we can leverage our numbers to sufficiently make the community on the “Julia” tag a positive, inclusive, and friendly one. Discourse is also indexed by Google and other search engines so despite the in-site search not being up to par, it is still searchable on the web.
Yeah, there is always that chance, though by my assessment, the chance right now of someone fixing their issue just by loading up the slack helpdesk and not asking a question is close to zero, Zulip may be better since it has the topics in Helpdesk split by feeds.
Most still have a large presence in various (un-)official real-time chats, like IRC or Matrix channels, project-specific Slack workspaces etc.
I don’t propose we remove Slack or Zulip, rather that the “Official” place to ask a question is not on the two platforms and rather is Discourse/SO. I would gander that each of the other programming language communities went through some sort of similar transition once the community got sufficiently large and mature. It’s our turn
I agree with @Mason, and I’ll add some specific points.
10000 messages per platform is not an appropriate way to limit conversation, if you take as a given you want to do that. As the community grows, there will be more and more smaller groups dealing with very specific topics, and there will be more people overall. In addition, keeping up with discussion requires you to know when that limit will run out, and that is not possible as it is not a stable number. An appropriate way to limit conversation would be a time limit (so anyone wanting to keep up with conversation would know how often to check in).
In general, actively making a user experience worse to force users to choose something else is also inappropriate. You need to look at why users choose helpdesk in the first place, especially given that Stack Overflow is a well-known purpose-built platform for getting your questions answered. Here are some reasons a user might choose helpdesk even if they are aware of the other options:
They are slightly embarrassed to ask the question, and they don’t want their lack of knowledge to be displayed and searchable forever. You may want to turn questions and answers into a reference, but they may not want themselves to be included in that way.
They may feel intimidated by the formal nature of the other platforms. They may not feel they can adequately express their issues and need a conversation platform to develop it, so they don’t have enough to create a proper question up front.
They may feel intimidated by Stack Overflow specifically. It has a poor reputation, and in some cases questions are closed for being of poor quality but we want to allow questions of poor quality! Having a Julia Stack Exchange subdomain could mitigate this.
Not all chat platforms require people to make an account before viewing history. Gitter, for example, is searchable through Google.
I don’t propose we remove Slack or Zulip, rather that the “Official” place to ask a question is not on the two platforms and rather is Discourse/SO. I would gander that each of the other programming language communities went through some sort of similar transition once the community got sufficiently large and mature.
This is appropriate! Rust started with the rust-beginners IRC and now recommends Discourse first, while mentioning the Discord. However, the chat platforms were not made worse during this transition, they were improved. Discord has better history and better search than the default web-based IRC client they use to recommend, and allows more channel and user management.
I have been following Julia since 2015 and seriously using it since 2017, but I only joined Slack on the first day of JuliaCon 2019 to follow events. I also don’t have an SO account, so my main resource was/is Discourse. I launch Slack everyday, but I still rely on Discourse for more help with the usual guidance: “see if your question has been asked/answered before starting a new topic”, something that is harder to do with chats. I definitely would prefer Discourse being the default/suggested method for getting help, which is what the Julia community page page seems to suggest, while reserving the chats for “quick, informal questions”.
Like Logan, I am also skeptical that people will take the time to ask a question on Slack, and then again on Discourse AND have all the Slack/Zulip responders then go to Discourse to re-answer the question. So I do not think that is the correct model either, unless the bot idea would actually work.
Also, I do not really think a 10,000 message limit or removing #helpdesk would incentivize people to use Discourse. Questions would probably just get asked in #general or the relevant channel. Again, as a “regular” user (for what that’s worth), I think just pointing new users to Discourse first would might be enough.
The key stats here are the number of unique daily visitors to Slack/Zulip versus Discourse (not counting Julia-related SO posts since that data may not be available). Again, from my personal experience, as a new user I felt much more comfortable searching Discourse and never thought about Slack at all. A formal/informal survey of users would be informative here.
I like the idea of time-based deletion. Count me in on that.
I don’t disagree that these are valid concerns, just that they only take into account the individual and not the larger community. As I already mentioned, my opinion is that this probalemneeds to be appraoched in the context of the larger community’s grwoth and well being. That person who is shy or intimidated may not even need to post their question if we have a proper system setup. We also have all of the power to make the experience on Discourse and SO (less so on SO but we still have the power of our community) welcoming and specifically on Discourse, we are able to chat back and forth to make sure the idea is developed.
The 10,000 limit will not due the job since folks using #helpdesk are concerned about their question betting answered not necessarily the longevity and access to that info. I also disagree that folks would just post in general every time. We can use the Slack Welcome Bot, pinned messages, and channel topic/description to point folks with Questions to SO/Discourse. This would not stop they from posting in general (we wouldn’t want to) but it just might. We can always answer their question if they do post in general and then refer them to SO/Discourse for the future.
As a relatively novice Julia user and a moderately heavy stack exchange user, I wanted to just share my experience/perspective:
For better/worse stack overflow is highly indexed in google, so whenever I google something stack overflow (SO) tends to come up higher than discourse. And of course slack/zulip is invisible to google.
I tend to feel a higher barrier to posting a question to a slack/internal messaging system than to discourse/stackoverflow/github issues. If I post to slack, I feel like I have to sit around watching to see if I get a response. If I post to SO or discourse, the asynchronous nature means I feel ok if I go do something else and check in the next day. This is just me. Different people feel comfortable with asking for help in different ways.
I think SO is amazing, but there have been issues with it recently (with handling of moderators and poor communication of policy changes). It is a for-profit company that benefits from user-created content. So depending on SO as the historical archive of help seems problematic.