When I read the “Things which are okay to post” section in the Welcome to Elm Discourse! post, I half-expected these to be in their own categories - an assumption based on my past experience with other Discourse forums.
announcements of things people are working on
beginners requesting help, though they should be directed to the Slack channel or reddit for further questions.
openly exploring ideas for API design, language features, without expecting others to take action as a result
discussing pain points using specific code examples and a goal of identifying the right way to proceed right now
Note that Discourse also supports tagging. Users can “watch” and mute both tags and categories.
My general understanding of good practices around categories is:
Fewer is generally better, or at least, don’t over-categorize
Build them around different audiences; a category tend to be its own mini community
So I can see different categories for beginners, language design, and language usage being a thing.
I have been thinking about this idea of “intentional communities” for my next talk. One idea from that is “intentional posting” which works like this:
You enter the goal of your post (e.g. Learn, Help, Seek Clarification, Self-Expression, etc.) This unlocks the ability to write a body.
Fill in the body with content restrictions based on your goal. If you said the goal is “Learn” you must have a question mark. If you said self-expression, you can have profanity (but only in that category).
Point is, I think the categories should be highly goal oriented. If people just want to chit-chat, they should start a meetup in real life or go to slack. So lets start with these:
We can add or remove, but I think they should all be active verbs. People should be doing something online or they should be in real life. Another word that came to mind was “Fret” but I don’t want to encourage that.
What are some other active verbs that might help guide people towards goal-oriented discussions?
I’d say coordinate covers the feedback stuff. Your specific intent is to coordinate with other folks in the community about certain changes. You have specific work you are willing to do and you are soliciting feedback on that work.
Maybe this points to a better name for Coordinate. Perhaps Request Feedback? Or Coordinate / Request Feedback? Basically, I want people to say “I have this idea. What do you think of it?” and I think a meta tag instead promotes “I think this is bad.”
I think I kinda see where you’re going with this, but I’m not super clear yet. Could you clarify something?
I feel like “I want to inform someone about Elm” is different than “I want to inform someone about this forum.” So Murphy’s package announcement has a different character than the wiki post I made about formatting code here. They’re both for informing, but I wouldn’t expect to see them together. Do you think those should be categorized differently?
Another shade of this is “get help”. But that again depends on “help with Elm or help with this software”?
Also, would you say it’s fair to say that this categorization system is more about the people’s needs than the forum software’s needs?
I don’t think “I want to inform someone about this forum.” is a very productive goal. I think unsolicited informing-people-of-your-opinions does not work well, especially online. I’d always try to turn that into a question where there’s a chance I’ll learn something new. So instead of:
Currying is a bad idea. No one does it. It is hurting your growth.
It could ideally become:
I noticed that Elm does not use C-style function calls. What are the tradeoffs of that choice?
So this would be Learn by default or Request Feedback if they have a concrete idea they want to test with folks.
I was thinking of Help in the context of my idea where responses would be categorized as well. A Help would be a valid reply to a Learn post. I think I was going for announce with the Inform category: “Check out this thing I made!” I guess folks may take it as “Please allow me to inform you about … how stupid you are!” So maybe Announce is a better name for this category. I think Share captures the idea of “I’m so excited to tell you about what I made!” but it may be a bit to vague and encourage “I’d like to share … how stupid you are!”
I think Learn covers “get help”. If I have some code I am confused about, I want to learn something such that I’m not confused anymore.
So yeah, I’m thinking of the categories as “What is the goal of OP?”
Yes, that is definitely the thesis! Certain kinds of interactions are aligned with the goals of the forum, and the forum itself can help you be oriented towards those goal as well.
Based on this elaboration, I propose these categories:
Show and Tell
The Show and Tell category takes the place of Announce because I don’t personally feel comfortable announcing things like its all official and final. I’d personally be way more inclined to do a Show and Tell of a package I am working on than an Announce of that package. I’d love to have 0.19 categorized as Show and Tell actually
Love what’s been suggested so far One random thought is that to me Show and Tell is a one-way and directive sounding term and Show and Share feels more inviting and inclusive - would this make a better category name?
It can be very frustrating when you share something with folks and all the reactions are “That’s cool, but when are you going to add X?” Rather focusing on the thing that exists and taking a moment to appreciate a bunch of work, people who have not thought about the project deeply are just telling you about all the work you didn’t release yet, as if you asked them for advice or as if you don’t know already. So I personally think it’s good to make a distinction between “Here is a thing” and “Can you give me advice on X?”
I have a personal theory that “unsolicited advice” is not such a valuable category of interaction. I think it can work coming from someone you really trust in real life, but I haven’t seen it work well online in general, possibly because the signal-to-noise ratio can be so bad that sifting through is not the fastest path to the insights.
We hope this will guide folks towards goal-oriented discussions, where we take into account what the poster want to get out of the conversation, not just what we want to say. So before posting, ask yourself:
Is my post as concise as possible?
Is it helpful?
Is it respectful of other people’s feelings and time?
Does it link to evidence to support claims about other projects or languages?
High-quality contributions often get edited down quite a bit!
You know how we have little sheets here that pop up, “welcome to Discourse” or “similar topics to your title…”? I’m curious if we could add those guidelines as sheets that would automatically pop up. If so, what would the criteria be?
Also, a meta note: this thread is getting a little long and away from @ento’s original question. We should consider forking it.