Support/ForumRedesignPRD

DRAFT
The content of this page is a work in progress intended for review.

Please help improve the draft!

Ask questions or make suggestions in the discussion
or add your suggestions directly to this page.


Problems with current system

  • Users have a hard time finding others with the same problem so they start lots of redundant threads
  • Users don't realize their problem is different so they hijack other open threads.
  • In a given thread, the only thing that lets other users sort through the possible solutions is if the original poster comes back and marks a post.
  • Solutions are intermingled with more info from the people with problems or people saying "me too"
  • Users don't realize that the other contributors are also users and it doesn't build a community.
  • Contributors don't have easy tools to prioritize which threads need responses or good workflow.
  • We don't identify the original poster unless they log in or return via email
    • Email generally isn't good.
  • We don't group threads in any way
  • Lacks a way for a user to get back to their stuff

Priorities

  • P1 = Must be implemented before launch
  • P2 = Should be implemented before launch, or top priority after launch
  • P3 = Significant benefit for users/contributors, but not needed for launch
  • P4 = Nice to have, but not a significant benefit

Ideas:

  • Look at Get Satisfaction or Stack overflow -- those are systems designed to answer user questions with a community.
  • We want to motivate users to "me too" if their question matches -- we can do that by allowing people to up-vote. Up-voted threads get more attention so if they want a thread started by someone else to get an answer, they should upvote (P1)
  • We want to motivate users to start a new thread when their question doesn't match -- we do this by downplaying comments on the original post. We gear the UI towards followup questions (top section) and possible solutions (bottom section) with no obvious space for adding your question to the mix. (P1)
  • We want to make it easier to find a matching thread if the current one isn't good -- using tags and a "see these related threads" feature. (P1)
  • We want to provide an obvious space to ask followup questions from contributors and keep that distinct from possible solutions (P1)
  • We want to let everyone grade solutions (vote up). What may work for one user (even the OP) may not work for someone else, but feedback from every user with the problem is useful in deciding which solutions are best. (P1)
  • When a solution exists, make sure the user can see right away without having to scroll. (P2)
  • Comments on solutions will allows people to refine steps etc. (P3)
  • We want to track who the OP is with cookies as well as by using keyed links in emails. (P1)
    • Generally make emails better with things like rich text. (P2)
  • We want to let people Tweet or Facebook status solutions they liked with links as a way of giving the helper more recognition and re-enforcing that this is a community effort. (P4)
  • We should add a way to flag threads for other "expert" contributors -- but find a way to make sure that's not abused. (P3)
  • We can improve contributor workflow by letting they see custom "dashboard" views: Top issues (P1), top unanswered issues (P1), threads that they're active in (P2), threads other people have flagged for them (P3), new issues (P2) -- as well as custom views like certain tags (P3) or OSes or Firefox versions (P3).
  • We need to keep metadata accessible and easy to query so we can do things like "top issue by OS" or "top tag by version" (P1)
  • Store data per contributor (for future Karma stuff) (P1)
  • If a user arrives from an article, the OP should display that article URL.
    • P3 if easily possible.
  • Email notification system (P1)
  • Guided AAQ form (P1)
  • Rich text (links, list, bolding etc) editing for posting solutions (P1)
  • Ability to upload screenshots (P1)
  • Ability to browse questions for not-logged in users (not just a dashboard) (P1)
  • Ability to edit and delete your post. (P1)
  • Moderator controls -- delete, edit other people's solutions (P1)
  • Report solutions as needing moderation (P1)
  • Canned strings for solutions/followup questions. (P3)

Additional ideas by David (need categorization, motivation, and priority) -- comments added by Cww:

  • Language auto detection (http://code.google.com/apis/ajaxlanguage/)
    • When someone posts in a non-English language, an automatic notification could appear notifying the user that he/she will have a greater chance of getting a response if he/she posts in English -- can't we point instead to the appropriate local forum if we know it?
    • Cool idea! (P3)
    • Ability for contributors to see only questions asked in their own language (P3)
    • Auto-translation of non-mother-tongue questions? E.g. if a contributor speaks English and Swedish, and a forum question is asked in French, auto-translate that French question on the fly and allow the contributor to answer in English or Swedish and auto-translate back to French again. Obviously notify contributor of the process and warn about degradation of language.
      • P3 -- I really want the en forums working and develop a good workflow and figure out bugs before we sell this to locales. However, we SHOULD make sure that the system is expandable in this direction (P1).
  • In the AAQ form, ask for the computer skill level on a scale of 1-x. This can then be used to segment our users ("what's the most common problem for new users of Firefox?") and allow contributors to focus on the type of questions they are most interested in (beginner/advanced).
    • A good idea but as it adds another layer to the workflow, P3.
  • Look at how Aardvark solved the "Was this helpful?" questions for some inspiration; they provide three responses: Yes; Kind of, but not for me; and No. This sends a clear message to users: a post can be helpful even if it's not solving the problem for yourself. (Added this because of our recent discussion where Cheng didn't want an ability to downvote an answer because people will misuse it and think it's a No if the answer doesn't solve the problem. In this case, "Kind of, but not for me" would be the response in those situations.)
    • (P1?) I actually didn't want a downvote because people will whine about perfectly good solutions if it's not the kind of answer they're looking for like "use this extension instead" if they want that feature baked into Firefox or "talk to X third party" I'm not sure how this addresses that but I think it's a good idea anyway. -- P1 because it refines an existing P1.
  • Aardvark also allows commenting on answers, which is another thing we discussed. They present each answer on the same page, and then the comments under each answer. For really long discussions under a particular answer, we could use clever overflow with an expander to load the full discussion in its own page.
    • (P3 -- I think all commenting on solutions should be P3 since the system will function without it and we can judge the need after it is running)
  • Send an e-mail notification immediately when posting a question to thank the user for using the forum and inform about the fact that we're community-based to set the right expectations.
    • (P1)
  • Send an e-mail reminder to the OP after x days of no response after an answer was provided in the posted thread, to encourage the user to confirm whether the problem was solved or not.
    • (P2)
  • Automatically close threads with answers that haven't received a confirmation from the OP after y days. (This is going to be necessary if we want to scale forum support and ensure that contributors focus on the active threads with or without responses.)
    • Alternately: Digg's way of doing this, "this thread has X upvotes in the past 2 weeks" if it ends up having zero, it's going to naturally fall off the radar.
  • Automatically send an e-mail notification after 2-3 days of no answers to give the user a heads up that no one has yet responded to the thread. Inform the user that he/she might have a better chance of getting a response if he/she provides more detailed information.
    • Give the user an opportunity to provide more information about the problem. When this info is provided, the thread should be bumped up as if it was newly created and as such more easily discoverable by the community.
    • I like the motivation behind this idea -- help people get better answers by having them provide more info -- but I think an alternate way of having the same effect that feels less spammy is a combo of two things:
      • 1) Give bonus karma for fixing unanswered threads (This was proposed during the design lunch and is kinda cool)
      • 2) For threads that need more info, suggest that a contributor ask followup questions if they can't provide a solution (you get karma for that too!). Maybe even have some "built-in" followup questions so it's easy for a contributor to get the kind of followup needed specifically for the question.

Features by priority (question view)

P1 Needs to have for launch:

  • Somewhere to say "me too" for users and make the counts visible. -- This will motivate users with the same problem to vote up since that will get that thread answered faster
    • Votes should be for "votes in the most recent X days" and not all-time.
  • Make it easy to start a new question if the current one doesn't match or find the one that does. Something like a related questions feature with a link to start a new one.
  • Have an area for asking followup questions -- this is a key part of the troubleshooting process that we can't leave out
  • Have an area for posting solutions (and keep those two separate)
  • Let people vote up solutions. -- We decided on three options "Yes this helped solve my problem" "Yes, this was helpful but didn't actually solve my problem" "No, this wasn't helpful". We're only going to display the SUM of the first two but moderators will be able to see each stat so we can quickly ID bad solutions etc.
  • Solutions should be displayed in order of vote.
  • The solution that the OP marked as solving his problem should get a special notification (Yahoo answers has a "This solution chosen by the asker and "top solution chosen by the community")
  • Use cookies to track the original poster in addition to special links in emails. That way if someone bookmarks a page, he can still act on it as the OP without having to check his email.
  • Thread metadata (OS, tags, plug-ins, parsed about:troubleshooting if possible (raw if not)) and stats (votes, total solution votes) should be easy to get at from the DB.
  • Data per contributor (number of upvotes of each type, number of followup questions asked, number of solutions proposed) should be stored in a way that can be tracked over time. (For future Karma system use... but displaying this stuff is not in this scope)
  • Make sure this is easily expandible for many languages (localizable strings, tracking the language of posts)
  • Email notification system so you can be notified whenever there's activity in threads you're in or threads you're me-too'd on (with different text for both) (P1)
    • Also send an email after you post a new question with "thank you for posting" and setting the right expectations (community forum etc).
    • Send email a few days after the first solution is posted to remind them to come back and rate the solution.
  • Guided AAQ form -- we have that now, shouldn't lose it
  • Should be able to add links, formatting, lists etc to solutions and if it needs markup to have a toolbar for it.
  • Ability to upload (and view and moderate) screenshots
  • Ability to edit and delete your post -- if other people have acted on your post (vote up, posted solutions) you should be given a warning.
  • Moderator controls -- delete, edit other people's solutions as well as editing question titles and details
  • Some way to report things (threads, followup questions, solutions) as needing moderation
  • Up for debate: Comments on solutions. We'd like to get feedback from the community to see if this is important and how important.

P2: We should have these in the initial launch but they can slip to "top priorities after launch" if resources are limiting.

  • Top-of-page Notification of whether a thread has a solution
  • Rich text formatted emails

P3: Major features/functionality that we'd like to implement but can wait for future releases

  • Flag threads for specific contributors
  • Canned strings for common followup questions or solution steps
  • Language autodetection and warn users that they'd get better help if posting in English
  • Full functionality in different locales (contributors can find questions in their language, people can choose a language when posting, possible autotranslate)
  • Ask about computer skill level (novice to expert) and indicate this somehow so users and contributors can talk on the right level.
  • Send askers an email after Y days if their question is unanswered apologizing that it hasn't gotten attention and suggesting that they provide more details and update their question.

P4: Minor features/functionality for future releases

  • Social network integration. If someone votes that "yes this solved my problem" give them the ability to tweet it

Usecases

A user with a common issue

  1. Searches for threads
  2. Finds one that matches his problem
  3. Sees that there are 3 solutions
  4. Tries the best one. It doesn't help
  5. Tries the next one. It helps but with a small caveat.
  6. Upvotes that solution so that the next user knows and adds a comment about the caveat.
  7. Tweets this solution so his friends knows how helpful JoeContributor is.

A user with an unsolved common issue

  1. Searches and finds a thread
  2. Sees no solution
  3. Clicks "I have this problem too" and adds his email address so that it'll be more likely that someone notices this problem and so he'll be notified when there's a solution posted
  4. A follow up question is posted and an email is sent: JoeContrib asked you a follow up question about "Firefox is having problems with the kittens"
  5. User replies to this email with an answer OR clicks on the link and fills out the form. (We should give both options) --- This is going to be somewhat of a problem because if we have rich text email, it's going to be super hard to parse out their reply from all the extra rich text junk. (We don't want to post an email signature with personally identifiable data for example)
  6. A solution is posted. An email is sent notifying the user of the solution. It asks the user to give feedback by clicking a link if it solved the problem (like we do now). This gives them the option to provide feedback as well as the social networking UI.

A user with an uncommon issue

  1. Searches and finds a similar thread
  2. Wants to post to it saying "I have this BUT it's not quite the same" -- but there's no place to do this.
  3. Checks the related threads with no success (there's a strong incentive to do this because of the above)
  4. Starts a new thread with the detailed Ask-a-question form.

Contributors who want to help others

  1. Starts the day, checks the to see if any threads are flagged for him.
  2. Then checks the "threads with me" view to see if any "thankyous" were posted or if any comments were left on his solutions or replies were made to his followup questions -- flags a few threads for one of his fellow contributors because he's stuck.
  3. Looks for threads tagged "Facebook" because that's what he's good at answering.
  4. Looks at the top issues by vote to make the biggest impact and earn the most karma

Contributors who want to do something lighter

  1. Has a dashboard of untagged threads
  2. It shows suggested tags but he reads the question and selects better tags and removes bad ones

Metrics gathering

  1. We can track top tags as well as look at the top 20-30 issues by vote to get a really good picture of what the top questions are. Votes provide numeric data.
  2. It's really easy to segment the data -- by version, by OS, etc.


Neil Lee's ideas: Support:UX_Ideas_2009

Cheng Wang's ideas for threadview: