python-discord / meta

Issue tracker for suggestions and other questions relating to our community
https://pythondiscord.com
31 stars 5 forks source link

The State of Help Channels #183

Closed rustyxlol closed 2 years ago

rustyxlol commented 2 years ago

The State of Help Channels

I've been lurking around in off-topic and couldn't help but notice that sometimes the channels would move up and down, this was enough to grab my attention and check some of them out.

Over the course of few days, I've noticed a few problems regarding the help channels and decided to write about them along with a suggestion or two.

Problems and Suggested Solutions

Problem 1: People are not encouraged to help.

Our brain is wired in a way that it releases dopamine whenever we experience something rewarding.
Normal - high levels of dopamine make you repeat those activities which made you feel 'rewarded'.

How would we simulate this 'rewarding system' for our helpers though?

Suggestion: A point-based system with milestone roles

Quite a simple suggestion yet one that would encourage a lot of people to partake in helping others.

A point-based system within the help channels wherein the helper can be given a point by the helpee by simply typing @HelperName thanks or @HelperName ⭐

Dummy Scenario:

Helpee: Thank you so much for the help @Helper
Bot: @Helper Wohooo, you've received one point! You're now at 68 points.

Now the helping doesn't stop there, the system can be extended to truly reward the Helpers by providing them a role, similar to the Helper role we have now, whenever they reach a certain threshold of points. Or there could be multiple roles based on certain thresholds.
100 points - Helper I
200 points - Helper II...

TLDR: Helpers get points when they're thanked, which unlocks Helper roles.


Problem 2: People don't know what they're getting themselves into

Relevant Issue: python-discord/bot#2029

O hey there, look it's an 🍎 apple. I hope the query in this channel helps me keep my sanity.
Helpers have to click on every occupied channel in order to find a query that they can help with. Sometimes, that might be 0.

Suggestion: A tag system

As suggested in the issue, it would be extremely beneficial if the channel names could denote topic names. #help-flask-1 for example, is far more generous to the helpers than #help-avocado.
Implementation suggestion: Before the bot throws the user into an occupied help channel, provide a prompt suggesting a topic for tagging.

Dummy Scenario:

in available-help-channels
Helpee: I'm trying to get the first value in this nested dictionary
Bot: Hi @Helpee, please pick a topic from below:
(provides a dropdown with a bunch of generalized topics)
Bot: Channel claimed by @Helpee

TLDR: Helpers can see what the query is about before jumping into a channel.


Problem 3: Non-existent general help channels

The query is so general yet specific enough that I don't know whether I should open up a new help channel or just post it in general (where I can't post the image of my output), while considering the possibility that it might not be answered in either channels :(

I don't really mind it but sometimes #python-general is bombarded with help messages containing a wall of code.
Helpers lose out when they know about it but the chat just keeps flowing.

Suggestion: Use a help channel.

Suggestion: One or two general help channels

Basically #python-general in disguise. Two help channels in lobby could redirect some of the help to those channels. These channels could have image permissions since they require help.

Dummy Scenario/TLDR:

I'm quite good at paint


Problem 4: Is the help system actually effective?

Recent study finds that about 23% of the helpees are invisible to the people.
Relevant Issue python-discord/bot#2067

Whose fault is it that their questions are not being answered? I guess it takes 1.5 to tango.

The helpee: Doesn't ask question that is properly worded, code lacks indentation, hasn't done proper research beforehand, and a lot more .

The helper: Doesn't understand what the helpee wants, or unwillingly jumps in to help which further confuses the helpee.

Suggestion: Readings

Quite a simple solution, this link can be added in the how-to-get-help channel.

For the helpees: How to be great at asking coding questions

I believe helpers would be responsible for making or breaking the helpees but I've not quite figured out where this link would fit, maybe the description of a help channel?

For the helpers: How to respond effectively, while these are not 100% program based, I believe they convey the same sentiment.

TLDR: Two links above

ShakyaMajumdar commented 2 years ago

Problem 1

Suggestion: A point-based system with milestone roles

This has been discussed a few times in the past, and the general consensus is that this comes with a few issues:

Ideas for gamifying the help system have been proposed before, but that's not something we're currently interested in. Making people rely on a points system for gratification, possibly making people pressure others to thank them, and be frustrated if they aren't thanked, are things that we're not interested in having, especially when it's not clear what the advantage of such a system would be, considering that the people who are here and want to help already do. There isn't really any incentive for us to change things like that. The people who we notice for being quality helpers are usually nominated, and further down the line offered to join staff. That seems like a much more reliable system to showcase the members who should be endorsed for being good helpers.

Problem 3

Suggestion: One or two general help channels

In what way would these be different from our normal help channels? The help channels have the advantage that there aren't multiple conversations going on simultaneously, and people are free (encouraged, too) to claim help channels even for small questions.

Problem 4

Quite a simple solution, this link can be added in the how-to-get-help channel.

We already link to "asking good questions" in three places - in #how-to-get-help, in the embed sent when a channel becomes available, and in the embed sent when a channel becomes dormant due to inactivity.

camcaswell commented 2 years ago

re: 2 Discord has strict rate limits on channel name changes. We would also have moderation concerns about allowing people to name a channel whatever they want, and then there is the issue of helpees reliably describing their question.

All that being said, we're planning on exploring the new forum channels and potentially replacing our current help channel system with them. Not only do they support naming and tags, but they let you sort the threads by tag.

rustyxlol commented 2 years ago

@ShakyaMajumdar While I understand and agree with the concerns regarding gamifying the help system, I've found it work quite well in some of the learning communities that I am in, which harbor over 10k users. There wasn't ever a sign of frustration or people feeling bad because they weren't being thanked nor have I seen anyone pressure someone into thanking them.

As for the 'general' help channels, it too was/is something that I've found work well in some of the learning communities. Quite a minor problem to be honest but I believe it helps ward off some of the traffic from python-general.

Problem 4: Must've missed that somehow, my bad.

@camcaswell That's quite nice! I wanted to suggest threads which Excel discord uses but felt like that would require an entire revamp of the help system we have right now. Haven't heard of forums but I'm excited to see how they work. Threads example for the curious: image

Thanks for taking a look✨

dawnofmidnight commented 2 years ago

@rustyxlol A forum channel is a thread only channel that looks like so (an example of the Rust Discord server, which leverages these for discussions): image I think that this addresses Point 2, because you can set descriptive names for the threads.

rustyxlol commented 2 years ago

That looks incredible! It would not only solve problem 2 but also problem 3 to an extent.

Thanks 🙌

Preocts commented 2 years ago

Re: Problem 1

Assumption: A point system encourages members to help others.

Counter: A point system only encourages members to collect points. The helping becomes a side-effect.

It seems to me that placing a point gathering into a help system is unavoidably gamifying the system. It doesn't matter the intent, you've now introduced a score board and the same way that gives someone their dopamine hit for the second, it also causes competition.

Certainly, the competition wouldn't be server wide with every active member scrambling to climb to the top. It would happen on a smaller scale that would be cyclical in popularity as new active members are cycled into the pool. What are the expectations that we, the community, need to define in turn? What changes or rules would we need to consider to handle the natural urge of gamification and competition when an arbitrary integer increments? Would it be allowed? Would it be infraction worthy?

Further, it is mentioned here that levels of helper role would be obtained. I would suggest a change to your submission that a vanity role with a yet undecided name be used here instead. The helper role is a staff role and not exclusive to providing help in the help channels.

In summary for problem 1, I am not in support of a point system, however, I am not against one that has been thoroughly discussed. A most dangerous phrase is "We've always done it this way".


Re: Problem 2

My opinion on the effectiveness on trying to filter/tag help questions can be summarized with a quote of a regular in the Python-General room when someone asks for an expert in [library_name]:

It works better here to ask your question directly. People might not volunteer as experts, and sometimes non-experts can help.

Forcing the tagging of a problem will only further limit the amount of help it gets. This suggestion is fighting a side-effect, not the root cause. Problem 4 addresses assistance to the root cause which is, in brief, the lack of understanding on what to ask or how to help.

rustyxlol commented 2 years ago

Appreciate the feedback!

Problem 1: The essence of my suggestion was that there would be nothing like a scoreboard that anyone can view, which is problematic, like you rightfully said. The dummy scenario is the only response that the bot would generate, no commands for scoreboards, at least not for the staff.

Wholeheartedly agree with a vanity role.

Problem 2 and 3 may as well be scratched if forums replace the current system :D

HassanAbouelela commented 2 years ago

Hey, thanks for this issue! It seems well thought out and I appreciate the effort.

Roles, points, or other regard systems for the help system have been suggested many times before, and like a couple people have already said, been turned down. Besides the issues mentioned, it also decreases the quality of help when people are just doing it for a reward, that’s human nature at this scale. To quote a very wise person, myself:

Helping just to earn points would lead to spoon feeding, and rushed answers for short questions. Longer questions would be ignored because it's less points/time

I’m not entirely convinced that there is a problem here being solved by such a system either. I spend a lot of time in the help channels, and from what i see most channels do get help, provided the person asking the question generally follows the things mentioned in the getting help guide. Those that don’t won’t be helped by this system for the reason above; you’d be potentially commiting an unknown amount of time to a question which will net you the same amount of points as another question which you can answer in a couple seconds.

I believe 2 and 4 have already been addressed and discussed above, which just leaves 3. I know people who are dedicated and avid users of the general channels, but I don’t think that providing help in such hectic environments is good for anyone. I do watch those channels (though I don’t participate), and I don’t think the quality of help in them can reach the same quality of help in a dedicated channel, long discussions just become difficult. The help-system was designed with both long and short questions in mind, and with threads being thrown into the mix, I don’t see a reason to ever not get a help channel. (As a side note, we probably wouldn’t enable image perms for such large and prominent channels, they are targets for spam, and would make our moderators’ jobs harder).

minalike commented 2 years ago

Thanks for raising this issue and the time put forth in writing it.

Both here and in staff channels and during meetings we've touched upon the points you've raised, and I believe most were addressed in the comments on this issue.

We will at the very least trial the new forum channel for our general help channel system in the future, and if it's suitable, migrate to that model completely. It will definitely be new and different and we'll have to collect feedback and make adjustments along the way but I think we'll likely be able to make forum channels work well for us.