Why so many ways to get help?

DVC is one of the few developer products that has multiple channels of support and I have to ask “why Discord”? Maybe I’ve been stuck in a corner of the developer tool community and just don’t appreciate slack/discord outside of tightly organized teams.

I can understand having a forum and the github issues, but why discourse? Why support a support channel that can’t be searched without logging in? A support channel that doesn’t promote focused discussions on a single topic?

I blame Dan Moore for inciting me to ask these questions. Let me know if you don’t think his argument applies to the DVC developer community.


I am not sure about the origin of discuss, maybe @shcheklein or @dmitry can provide some context. As to discord - well chat is a great first line - it does not put as much responsibility on the person asking, like for example creating an issue might do. It provides a way to ask for help without clogging the git issues history with every failed dvc config and let’s us, developers resolve the small problems faster (many times both parties are online so we can talk and clarify any lacking info in place). Also its much easier to notice chat pings than to refresh new issues tab :slight_smile:

I would like to also address some points that Dan Moore is making.

The first thing that I see is that in his blog he is addressing “Discord/Slack vs forum” - I think that one can use multiple channels at once, as we are trying to do. That might mean that some knowledge is dispersed between different channels, and it is indeed the problem, though there is a way to handle that which I hope to make clear when addressing different points.

Problem #1: the memory hole
Great answers to a generic problem usually are not left in a chat. When there is some bug or feature that is more complicated than a few messages exchange, it will end up in GitHub as a discussion, bugfix, or feature request.

Problem #2: Google can’t see inside chats
Same here, GH issues are easily searchable, from google too.

Problem #3: synchronous communication is synchronous
So lack of immediate response is problematic, and there are cases when we lose some messages when there is a particularly “hot” week. In the case of chat we try to maintain the conversation character in a way that will be welcoming so that users don’t have a problem with writing “hey, did anyone have time to look at this?”. It seems to be working.

Problem #4: less capable moderation tools
Definitely true, trolls and spambots are a problem in case of discord. So far it hasn’t been that severe. Also so far we have been managing to ban the most problematic spammers/trolls (kudos to @0x2b3bfa0 who is the fastest responder in those cases).

Problem #5: you’re missing out on long tail content
Again, converting “bigger” problems to GitHub issues. In these cases “hybrid” approach particularly shine, because:

  1. user gets an immediate response, sometimes workaround for hers/his problem
  2. Underlying issues are often not what a particular user is facing, the developer can research it and guide the user, leading to creating a generic issue that will help more people
  3. Created issue will contain a distilled summary of the problem, without whole investigation and discussion between developer and user. It is usually still available because we have a policy of posting discord chat links in issues.

Problem #6: questions can be flippant
Chat helps us to not have those “flippant” conversations in GH, which would make searching more problematic.

In async discussions, because they are async , more context is typically provided by the questioner.

I would not agree with that statement, but this is my personal impression.

Thank you so much for your thoughtful responses. I am happy to see that DVC is supported using multiple channels compared to some open source projects that are supported by only instant messaging based systems.

I am hopeful that discussions started on discourse are moved to another system as appropriate. As a counter example, I know that I have had to open Github issues for misreadings of the project documentation. On the other hand, you cannot have enough examples of how to and how not to use a system!