alejandro5042 / azdo-userscripts

A collection of userscripts to improve the Azure DevOps UI
https://alejandro5042.github.io/azdo-userscripts/
MIT License
40 stars 23 forks source link

Ability to provide feedback on AzDO wiki pages #41

Open jattasNI opened 4 years ago

jattasNI commented 4 years ago

Is your feature request related to a problem? Please describe.

We want a frictionless way for users of the wiki to provide feedback to authors when a page is helpful or unhelpful.

Describe the solution you'd like

  1. "thumbs up" and "thumbs down" buttons added to every page. We may add various "down" buttons for different complaints (content missing, content incorrect, etc). We may also add an optional free text field to describe the feedback in more detail.
  2. votes are recorded by adding/modifying a wiki attachment.
  3. stats about recent votes are displayed on each page alongside existing page view stats. The stats are also available if we want to write tools to harvest and display them in other formats (spreadsheet, dashboard, etc).

Describe alternatives you've considered

  1. sending users to a separate page to provide feedback (for example a short survey). This adds a tiny bit more friction than the proposed approach so we're worried it would result in less feedback being submitted.
  2. storing feedback in other ways besides a wiki attachment.
    • we could store votes as a markdown comment within the content of each page. That seems like it would get in the way when users are editing the page contents.
    • it would be nice to use a properties API like we use for pull request code of the day ideas but I don't see a similar API for wiki pages
    • we could send the votes to a separate server but that would make the user script more tied to NI's infrastructure and would require managing that server

Additional context

There is a similar idea on the AzDO developer community but it doesn't look very popular.

This is similar to the feedback feature on MSDN

Screen Shot 2019-12-16 at 12 20 29 PM
welcome[bot] commented 4 years ago

Thanks for opening your first issue here! Please refer to our support and troubleshooting docs.

jattasNI commented 4 years ago

Some context for you @alejandro5042: this idea is coming out of our docs working group. I plan to start trying to build it over the next few weeks but want to get it on your radar to see if you like the proposed direction.

dixonjoel commented 4 years ago

I would like some way to reset votes (for an Owner / Admin of a page only?). For example, if a page gets 10 downvotes and then the author fixes it based on the feedback, the page stats will still indicate it is a not useful or bad page whereas now it may be greatly improved. If viewers see bad stats they may not trust the information on the page.

alejandro5042 commented 4 years ago

@jattasNI Thank you for proposing this feature. Seems useful!

Q: Who looks at this data, when do we look at it, and what will we do with it?

I think Wiki attachments post a Git commit to the Wiki, which seems a bit heavyweight for a simple vote; but I can be convinced. Alternatively, I wonder if we can post the vote directly to Google Forms / Microsoft Forms. Then we can benefit from having that info in a spreadsheet, get free visualizations, make Power BI reports really easily, etc. No extra code to get the data out!

@dixonjoel Would we want to show the rating on the page? If not, then we need a reset button a little less. I would also imagine we would report data on a sliding window; e.g. average rating in last 2 weeks. Or ratings since last major modification (10% of page changed).


FYI: I have been on vacation since Thanksgiving and will be back after New Years :) I appreciate your patience on my reply! I'd love to help you design this as you go along.

jattasNI commented 4 years ago

Q: Who looks at this data, when do we look at it, and what will we do with it? I can see two use cases:

  1. Content authors (and the docs working group) use it along with page view data to prioritize pages to improve. This use case would benefit from more powerful analytics that spreadsheets enable, as long as the data is accessible to all.
  2. Readers use it to help judge the trustworthiness of a page they're looking at. This use case would be best presented right on the page.

I think 1 is more important than 2 but it would be nice to have both eventually. I agree that only use case 2 requires a feature to reset votes or filter votes by date.

I think Wiki attachments post a Git commit to the Wiki, which seems a bit heavyweight for a simple vote; but I can be convinced. Alternatively, I wonder if we can post the vote directly to Google Forms / Microsoft Forms.

I'm open to any approach. Here are the pros and cons that I see

  1. Wiki attachment

    • Pros:
      • data is co-located with content, meaning fewer credentials/services/APIs to manage
    • Cons:
      • we'd have to write our own analysis and visualization. For stats like "recent votes" the analysis would likely have to be run client-side, which could be slow.
      • we'd have to come up with a file format, maintain it, and figure out how to build features like "reset votes" on top of it
      • git commit for every vote (I'm not sure how bad this is...I'm guessing there will be more page edits than votes so this might not add much cost)
  2. Microsoft Forms/Excel

    • Note: I couldn't find an API to submit a form but I think we can write to an excel sheet.
    • Pros:
      • visualization is easy
      • resetting votes is easy (manually delete rows in the spreadsheet)
      • filtering by recent votes is easy (add a computed column to tally it, query that column to present on wiki page)
    • Cons:
      • possibly more work to set up (APIs look more complex than attachment API)
      • adds dependency on external service which makes it less re-usable by other consumers of the userscript
  3. Google Forms/Sheets

    • Pros:
      • quick googling revealed more example code for Google Sheets than Excel
    • Cons:
      • NI preferred policy is to keep data in Office ecosystem

FYI: I have been on vacation since Thanksgiving and will be back after New Years :) I appreciate your patience on my reply! I'd love to help you design this as you go along.

The only progress I made before vacation was posting this and familiarizing myself with the userscript codebase. My goal is to have a proposal to present to our docs working group next week. I think we can get most of the way in this thread but I'll set up a meeting if needed.