denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
Denise ([staff profile] denise) wrote in [site community profile] dw_suggestions2011-04-10 08:13 am
Entry tags:

[site community profile] dw_suggestions: A User's Guide

[site community profile] dw_suggestions: A User's Guide

So, you want to learn more about the [site community profile] dw_suggestions process! This entry will be made the "sticky entry" in the [site community profile] dw_suggestions community (replacing the existing one, which was starting to show its age) to serve as an introduction to the Suggestions process, Dreamwidth development, and just what the heck people should be keeping in mind while they're discussing things here.

Let us begin our magical mystery tour.



Overview



The purpose of [site community profile] dw_suggestions is threefold:

1. Give users a single designated place to make suggestions for the site's improvement.

2. Set up a regular, well-defined process for taking user suggestions and migrating them into Bugzilla, our bug-tracking database (which functions as, essentially, a developer to-do list), as well as making it clear what stage of the process each suggestion is in, so people don't feel like their suggestions are disappearing into the ether.

3. Let other people read and discuss the suggestions being made, work out the implications of a change before it gets coded, suggest improvements on the suggestions, spot potential pitfalls, point out things that the suggester might not have thought of that could be a problem, and generally "stress-test" and spec the suggestion so that the developer who implements it can do so in a way that's a) most agreeable to the most number of people and b) doesn't negatively affect someone who's using the site in a way we never dreamed of.


Making a Suggestion



There is no direct posting to [site community profile] dw_suggestions -- the community is moderated precisely to prevent that. Users make suggestions by visiting the Suggestions Generator. Filling out this form will auto-format the posted suggestion so they all appear alike, and it will enforce a basic level of detail for the suggestion. (In other words, it won't let people submit a suggestion where required fields aren't filled out.)

When you hit "submit" on the Suggestions Generator, two posts are generated. One is the post you all will see in [site community profile] dw_suggestions, containing the suggestion itself, plus the opinion poll you see on the bottom of every entry. (Side note: the fact that we use those opinion polls in [site community profile] dw_suggestions is directly responsible for the fact that free users are allowed to post polls in a paid community. Previously, if a community was paid, the maintainer was the only one who could post polls in it as a free user.) This entry goes into the moderation queue for the community.

At that time, a "hidden" post is also made to the community. It's posted with Admins Only security, by the account [personal profile] suggestions_bot. This entry contains nothing but a pre-formatted link that, when clicked, will post the entire suggestion verbatim to Bugzilla, thus making it ridiculously easy to transfer an accepted suggestion into Bugzilla. (I know myself. If I did not make the process ridiculously easy, it would never get done. Even though it is ridiculously easy I still put it off, because it's tedious.)

On a semi-regular basis -- I aim for at least once a week, but don't always hit it -- I go through the moderation queue and handle the suggestions.


What Belongs in [site community profile] dw_suggestions



Anything you think of that would enhance your use of the site, we want to hear about it. No matter how minor or major you think your suggestion is, we want to hear about it. Anything that, in your opinion, would make Dreamwidth better belongs in [site community profile] dw_suggestions.

Internally, we do distinguish between "bug report" and "suggestion". Bug reports -- which go to Support -- are for "this thing is not working as designed". Suggestions, in addition to being for "this thing should be added", are also for "this thing is working as designed, but I think as-designed is stupid and should be changed". If you are absolutely sure that what you're submitting is a bug -- that something is actually broken -- you can bypass [site community profile] dw_suggestions entirely and go straight to support. But don't ever feel like you have to -- we will take bug reports to [site community profile] dw_suggestions too, because it's not your job to know about our internal processes and it's not your job to know whether something is working as designed or not.

(Another good shorthand test: Support is for "I am getting an error message when I try to do this thing". Suggestions is for "I think the error message I get when I try to do this thing is unclear and should be changed".)


The Moderation Queue



The [site community profile] dw_suggestions moderation queue is the first line of filtering for suggestions.

When someone fills out the Suggestions Generator, their post goes into the moderation queue. I will then go through the queue (as previously mentioned, nowhere near as often as I should) and evaluate the suggestions.

Things will be rejected out of the queue for several reasons:

* It already exists, and the suggester just didn't know about it.
* It's already been suggested, or already put into Bugzilla without going through suggestions.
* It has been suggested before and rejected, and I don't think that the new suggestion differs enough from the first one to warrant re-discussion.
* The suggestion is something that we will never implement, because it goes strongly against our vision for Dreamwidth.

In each case, I'll write an explanatory message about why the suggestion is being rejected. (Which is another reason why I procrastinate on the suggestions queue -- writing the reject messages is hard!)

I'd say probably about 60% of suggestions make it out of the queue and are posted to the community. Of the other 40%, most are rejected due to being duplicates of something we already have in Bugzilla or something that has already been rejected.

If none of those criteria apply, the suggestion is posted. (Even if I dislike it! The only time I'll reject something outright is if it really doesn't fit with our vision for DW. For instance, if someone submitted a suggestion to run advertising on DW in order to help pay our bills, I'd reject that. But if someone submitted a suggestion that I don't personally like, but doesn't go strongly against our vision or our ideals, I'll still let it through.)


The Discussion Phase



Once a suggestion has been posted, it's discussion time!

For suggesters:

If you were the one to make the suggestion, sometimes discussion can be a little overwhelming -- who are all these people, and why are they arguing about my idea?

"All these people" are other Dreamwidth users just like you, who follow [site community profile] dw_suggestions and provide their input on each proposed change. It's important for us to have as many viewpoints as possible in the discussion, because everyone uses the site a little differently.

Here are some things to keep in mind as your suggestion is discussed:

* The poll at the bottom of each suggestion and the discussion about the suggestion's merits are not the final word. We rely on both of them to help us have more information about what people think, but ultimately, the decision is ours, and we make it based on our vision for DW. (In other words, [site community profile] dw_suggestions isn't a democracy -- it's a benevolent dictatorship that accepts input.)

* The people commenting to your suggestion aren't representatives of Dreamwidth. (Unless, of course, they have the swirly-spiral-hugging-a-userhead icon that indicates DW staff.) Everybody who comments is another user, providing their input on the suggestion. So, just because the first few people who comment don't like your suggestion, that doesn't mean that Dreamwidth staff don't like your suggestion!

* You don't need to respond to every comment. Obviously, if someone brings up an objection to your suggestion that you don't think applies, or if you think they've misunderstood you, it's okay to reply to them and clarify. But in general, you should let your suggestion stand by itself, and not spend too much time arguing its merits with the people who comment. Remember, the people who are commenting aren't the people who decide whether or not the suggestion will be accepted -- they're just giving their opinions.

* You shouldn't try posting in your journal or in your communities asking people to come and vote for your suggestion if it looks like the voting or the discussion isn't favorable. This kind of "vote canvassing" doesn't have any effect -- remember, we only use the polls and the comments as a guide. I've rejected suggestions where the votes were 90% favorable because one person had a very good argument why something shouldn't be added, and I've accepted suggestions where the votes were 90% unfavorable because one person had a very good argument why something should be added! If discussion and voting is unfavorable, try understanding why people are objecting, and post a (top-level) comment to address some of the common objections.

* You can edit your suggestion after you post it, but any edits will not make it into the version that's posted to Bugzilla. So, it's better to leave a comment with your revised suggestions -- the developer who goes to implement it is more likely to see a comment than an edit to the entry itself. (The Bugzilla item does have a link to the original suggestion and the discussion.)


For commenters:

When you're voting and discussing a particular suggestion, keep a few things in mind:

* You should evaluate a suggestion based only on its own merits -- how much you want to see the suggested change being made -- and not in comparison to other suggestions. (In other words, don't say something like "I like this, but I want this thing from last week way more, so I'm going to vote 'no' on everything else until that other thing gets implemented.")

* Your default setting for every suggestion should be "this should be implemented", and should only change to "this shouldn't be implemented" if you have compelling reasons why making the change would make your use of Dreamwidth, or Dreamwidth as a whole, worse off. (In other words, "I would never use this, but it doesn't hurt me in the least and I can just ignore it" should be a "this should be implemented" vote.)

* Approach each discussion from the point of view of: what would benefit Dreamwidth, as a whole, the most? If a particular suggestion would make things worse for you, but you think it would benefit DW as a whole, it's perfectly legitimate to say that the suggestion shouldn't be implemented, but if you can think of a way to implement the suggestion that wouldn't make things worse for you, it'd be wonderful to mention that in the comments.

* Always remember that the person making the suggestion is trying to make Dreamwidth better too, even if you disagree on how to do it. Approach every conversation from the standpoint of respect and courtesy.

* "[other site] has this feature!" is neither an argument for nor an argument against a suggestion! Evaluate each suggestion based on whether or not it would improve Dreamwidth, not based on what other sites do or don't do.

* If you're in a discussion and feel like the other person just doesn't get it, it's okay to just stop arguing. (In fact, it's a good idea to.) Remember, you're not trying to convince the person you're arguing with: you're trying to convince me. Make your point once or twice, then move on.

It's possible to subscribe to all comments in [site community profile] dw_suggestions, on all entries! To do this, you'll need to be a member of the community. Then, visit the profile and pick "track" in the action menu, or visit the tracking page directly. The subscription you want is "Someone comments in [site community profile] dw_suggestions, on any entry". (Caution: it's a very spammy option whenever the suggestions queue gets cleared out! You might want to set up a separate filter in your email inbox.)


After Discussion



Once every few months or so, I go through the 'bugzilla: unmigrated' tag -- suggestions that haven't had a decision made yet -- and decide whether they should be moved into Bugzilla.

If the suggestion was very well-received and has no good reasons in the discussion/comments why it shouldn't be implemented, I'll move it straight to Bugzilla, then tag the suggestion itself "bugzilla: migrated".

If the suggestion wasn't very well received, but there are good reasons in the discussion/comments why it should be implemented or I think it fits nicely into our vision for DW, I'll move it to Bugzilla, then tag the suggestion "bugzilla: migrated". (Often in this case, I will add "implementation notes" on the bug itself, discussing how to overcome the common objections to the suggestion.)

If the suggestion wasn't very well received, and has no good reasons in the discussion/comments why it should be implemented, I'll tag the suggestion "bugzilla: rejected". (I don't usually comment to the suggestion itself to explain why it was rejected; I assume by that point that it's fairly obvious.)

If the suggestion was well received, but there are good reasons in the discussion/comments why it shouldn't be implemented, I'll carefully evaluate those reasons. If I think they can be overcome with changes to the suggestion, I'll tag the suggestion "bugzilla: partially migrated", and open a Bugzilla ticket for the bits of the suggestion that I think don't manifest the problem. (Or I'll revise the suggestion until it overcomes the objections, and do the same.) If the suggestion can't be changed to overcome the issues, I'll generally tag the suggestion "bugzilla: rejected", and often leave a comment explaining my reasoning. Sometimes I'll tag the suggestion "bugzilla: deferred" and leave it for the future to see if I can come up with a way to overcome the issue.

If the suggestion is generally good, but there's a reason why we can't implement it right now -- technical limitations, financial limitations, etc -- I'll tag the suggestion "bugzilla: deferred". (I re-visit those deferred suggestions once a quarter or so to see if anything's changed yet.)

If the discussion was evenly split and I don't have a strong opinion one way or the other, or if I can't see a good way to implement the suggestion that doesn't bypass the issues brought up in the discussion, or I just genuinely and honestly can't make up my mind one way or the other, I tag the suggestion "bugzilla: deferred" and come back to it later.

If we've made changes between when the suggestion was suggested and the time I get to handling the suggestions that make the suggestion no longer apply, I'll tag the suggestion "bugzilla: suggestion superseded".

If somebody has pointed out that I missed a duplicate suggestion, I'll tag it "bugzilla: duplicate". (And then facepalm.)

If somebody has pointed out that I missed the fact that we already have that feature, I'll tag it "bugzilla: exists". (And then facepalm a lot. You'd think it wouldn't happen, but the tag has 11 uses as of this moment.)


Into Bugzilla



When I move a suggestion into Bugzilla, it will look something like this:

Bug 1577: Saved Items in Inbox

(It's okay if this looks like a big scary block of confusing bars and buttons and stuff. Bugzilla is not the most user-friendly UI in the world.)

The two things to take note of there: one, the text of the Bugzilla item (under the box to add new comments) is the text of the suggestion at time of posting. (This is because the suggestion is posted from the private, admin-only entry generated at the time the suggestion went into the queue.) Two, the tags include 'from-suggestions' -- that's how developers can find Suggestions-specific things to work on.

You can see the unassigned suggestions -- these are the ones nobody is working on. There's also open suggestions, which includes all suggestion-derived bugs that are unresolved -- both the ones that are unassigned and the ones that someone is working on.

From there, our developers look at the "unassigned" list whenever they have time to work on something. (A lot of our developers prefer to work on suggestions, and a lot of suggestions are really good for beginners, since they tend to be small fixes!)

Everything after that is part of our usual development process -- someone codes a "patch" for the bug and uploads it to Bugzilla, someone reviews the patch to make sure it works properly and doesn't break anything, it eventually gets committed to our source code repository, and some time after that (usually a few weeks) it gets pushed "live" onto the site itself.

(And then you will be able to look at it and think I suggested that! Which is totally my favorite part.)


How can I help?



If you'd like to help out with [site community profile] dw_suggestions, there are a few things you can do!

* Read suggestions and discuss them, of course! The discussion and debate in [site community profile] dw_suggestions comments is very helpful to the programmer who will implement the suggestion, and it helps me immensely if I'm "on the fence" about whether or not a particular suggestion should be implemented.

* Help to tag the posts. [site community profile] dw_suggestions has open tagging: any community member can add existing tags to an entry. (Removing tags, or creating new ones, needs a maintainer to do it.) Posts should be tagged with what the suggestion is about -- for instance, a suggestion about enhancing the Latest Things page should be tagged "site: latest things", while a suggestion about improving the registration process would be "workflow: account creation". (If there isn't a tag that suits the suggestion, just leave it and move on. I'll fix it up when I do the migration-into-Bugzilla.)



Other Reading



Some additional reading, both on the Suggestions process and on things you should keep in mind while you are reading and discussing suggestions:





And that is Everything You Ever Wanted To Know About [site community profile] dw_suggestions But Were Too Shy To Ask Or Just Kept Forgetting To Bring Up! Any further questions?
stormy: βͺ ππŽπ“πˆπ‚π„ ❫ 𝑫𝑢 𝑡𝑢𝑻 𝑻𝑨𝑲𝑬 𝑴𝒀 𝑰π‘ͺ𝑢𝑡𝑺 ⊘ (Default)

[personal profile] stormy 2011-04-10 02:56 pm (UTC)(link)
Question!

For tagging, if the suggestion is duplicate and that's pointed out in a comment linking to the first suggestion, would you like us to go ahead and tag it duplicate or do you want to hit up the actual bugzilla tags yourself and leave tagging by members to what part of the site it's in regard to.
quiara: (Default)

[personal profile] quiara 2011-04-10 03:55 pm (UTC)(link)
What if a suggestion has been brought up long ago and it appeared for a while that progress was being made, but it stalled out, disappeared or otherwise has become hopeless?

Specifically, I'm asking about the iPhone app, which asked for beta testers, but never got as far as actually going beta, and about Posterous implementation since Posterous has informed me that unless DW uses one of their common API endpoints, it's unlikely we'll see support on their end.

I know that both of these things have been brought up before, but they've also both languished for ages now and maybe a revisitation or new mention could inspire new interest in the projects?
quiara: (Default)

[personal profile] quiara 2011-04-10 05:12 pm (UTC)(link)
I didn't mean to sound impatient. It's just something I've truly wondered about. The only reason I'm concerned at all is because those things (either of which would be enough; it wouldn't have to be both) are the only things keeping me from being on DW full-time instead of the patchy network of places I find myself right now. I know that everything is balanced neatly on a shoestring sometimes - believe me, I grok that. I was just curious what the procedure was after a certain point.

I value DW. I believe in the site's mission and am often amazed by the grace exhibited by the official DW staff and the unofficial people who toss their hats into the ring.

If a non-coder like me (my degrees are all liberal arts) wanted to learn to code, where would she begin? Is there a "code zero" for the truly ignorant? If so, I'm more than willing to try. Could be fun!

Thanks for the thoughtful response.
quiara: (Default)

[personal profile] quiara 2011-04-10 05:38 pm (UTC)(link)
Thanks! I've applied for a dreamhacks installation and I'll be checking out the other links as well. I really love the mission and people of DW. It feels a bit like "old LJ," but it feels more like New Awesome. ^_^

I've had an account here for 2 years +/-. I know something of HTML and can usually find my way around CSS (usually; sometimes I'm a true doofus). I don't know any application coding languages.

I've been trying to move my content and monetary support solely to DW for a while now. I was torn before because I've been on LJ for 9+ years, but I think a lot of my circle there have begun the trek to DW, too.

Thanks for the pointers! I look forward to poking about.
musyc: Silver flute resting diagonally across sheet music (Default)

[personal profile] musyc 2011-04-11 12:41 am (UTC)(link)
Fantastic writeup, Denise. Thank you for it!
kate_nepveu: sleeping cat carved in brown wood (Default)

[personal profile] kate_nepveu 2011-08-15 03:49 pm (UTC)(link)
What's the general preference on resubmitting rejected things? I'm thinking of one that was rejected a year ago with not much discussion: http://dw-suggestions.dreamwidth.org/355791.html (11 comments, 12 votes as-is, 8 with-changes, 9 no and 9 no-opinion).
kate_nepveu: sleeping cat carved in brown wood (Default)

[personal profile] kate_nepveu 2011-08-15 04:33 pm (UTC)(link)
Ah-ha! The lack of an inline cut would explain a good deal about that discussion, thank you kindly.
bibbinut: Mother cat kissing kitten (Default)

Layout templates?

[personal profile] bibbinut 2012-01-01 04:59 pm (UTC)(link)
Was wondering about layout templates for all users to use. I admin a couple of forums at proboards and they have what's called a template for a skin. Some people aren't familiar with CSS coding.
Good idea?
The templates would be very basic and all accounts could use them to make a journal layout.
We could even have a contest here at DW to give prizes to layout designers.
Again, good idea?
Am also really liking it here.
Dreamwidth is a fun place to be! :-)
azurelunatic: Azz and best friend grabbing each other's noses.  (Default)

Re: Layout templates?

[personal profile] azurelunatic 2012-01-01 05:26 pm (UTC)(link)
[site community profile] dreamscapes is actually already set up for people to submit style layouts and color themes! I don't play with that much myself, but quite a few of my friends do. Submitters typically get Dreamwidth points when one of their submissions is accepted for the whole site.
darjeeling: (Default)

[personal profile] darjeeling 2012-10-31 02:24 pm (UTC)(link)
Just curious about what the average turn around time is for the queue from when suggestions are submitted to when they're posted? In September there were multiple posts weekly if not daily, but nothing has gone up since Oct 1st. I submitted a suggestion over a week ago but haven't heard anything back on it.

Thanks,
Li
azurelunatic: Azz and best friend grabbing each other's noses.  (Default)

[personal profile] azurelunatic 2012-10-31 05:20 pm (UTC)(link)
I'm not Denise (she mentioned in IRC this morning that she would be afk on vacation), but I may be able to assist.

All of the dates of posted suggestions are the dates that they were submitted, rather than the dates they were released from the queue.

In my experience, it has been anywhere from maybe two weeks to several weeks, depending on D's workload (as this is one thing that can't be delegated).
candystriped: (WAVE βœ₯ a surprisingly good mood)

(same person)

[personal profile] candystriped 2012-11-01 01:42 am (UTC)(link)
Thanks for the reply!
darjeeling: (Default)

[personal profile] darjeeling 2012-11-02 03:43 am (UTC)(link)
I see, sorry for coming across as impatient. :(
darjeeling: Tutu | Princess Tutu ([ ANIM ] colour a rainbow in the clouds)

[personal profile] darjeeling 2012-11-02 11:47 am (UTC)(link)
Okay, have a great vacation!
halfshellvenus: (Default)

[personal profile] halfshellvenus 2012-11-29 09:14 pm (UTC)(link)
Sorry-- can't seem to message the mod or reply elsewhere.

So, my suggestion about adult warnings that just got bounced... when you mentioned the "viewing adult content" setting, I'd always assumed that was how to handle the under-18s trying to read MY journal!

Would it be possible to modify the blurb next to that box, so that it's clear which "direction" you're setting the content-level for?

Thanks!
icelightning: XXY male bettafish, started off looking girlish (Default)

[personal profile] icelightning 2013-04-24 01:14 am (UTC)(link)
I just tried to submit a suggestion, but I got the following error:

[Error: Can't call method "eventtime_mysql" on an undefined value at /home/dw/production/ext/dw-nonfree/htdocs/site/suggest.bml line 116. ]

Also, if it did work, please ignore the first post and go for the second one! I made it better. My apologies.
icelightning: XXY male bettafish, started off looking girlish (Default)

[personal profile] icelightning 2013-04-24 02:03 am (UTC)(link)
I submitted twice because I changed accounts, then changed back and reloaded the page, and thought the changing caused mine to fail. Second failure made it obvious that wasn't it.

Good luck with the fix.
aedifica: Me looking down at laptop (off screen).  Short hair. (Default)

[personal profile] aedifica 2013-06-06 10:43 pm (UTC)(link)
I understand about not voting "this suggestion shouldn't be implemented" unless one thinks it would hurt the site as a whole, but why would you prefer one's default vote be "should be implemented" rather than "I have no opinion"?
aedifica: Me looking down at laptop (off screen).  Short hair. (Default)

[personal profile] aedifica 2013-06-07 02:05 am (UTC)(link)
That makes sense--thanks for the explanation!
caput_mortuum: (Default)

[personal profile] caput_mortuum 2014-01-12 01:15 am (UTC)(link)
How long should I expect a suggestion to remain in the moderation queue? Or if it's rejected, will I get some sort of notif?
caput_mortuum: (Default)

[personal profile] caput_mortuum 2014-01-12 11:13 am (UTC)(link)
Thanks! Sorry, I didn't check to see that you were moderating everything. /o\
quartzpebble: (Default)

[personal profile] quartzpebble 2014-04-24 03:54 am (UTC)(link)
This post should be updated at some point to reflect the github workflow! Please let me know if I can help.
posner: (Default)

[personal profile] posner 2014-10-29 11:08 pm (UTC)(link)
If something doesn't get through the moderation stage, are suggesters informed if that? I saw the messages above saying yes, but is that only if it fits one of the rejection criteria?

Thanks
Audrey
posner: (Default)

[personal profile] posner 2014-10-30 08:46 am (UTC)(link)
Thanks, Denise.
posner: (Default)

[personal profile] posner 2014-10-30 07:23 pm (UTC)(link)
No worries :) It can't be easy managing everyone's ideas, especially if it's something that could have a knock on effect or would require a lot of looking into.