Page MenuHomePhabricator

Investigation of QS in-page questions capabilities
Closed, ResolvedPublicSpike

Description

This task represents the work with conducting an analysis to learn what type of in-page questions can be presented and recorded when using Quick Surveys

What we know so far
-A single answer question can be displayed and recorded (yes/no question)

Open Questions

  • Can it display and record multiple questions?
    • ✅ Yes, The EXTERNAL survey mode can display and record multiple questions.
    • No, The INTERNAL/INLINE survey mode only supports a single question/answer scenario.
    • ℹ We could possibly create a new client VIEW that supports a parent/child question/answer object structure. Currently questions are generated in a loop, we tap into this action an add a parent question with child answers. We also need to explore the implications of this change. This would require new UI/UX insights.
  • Can it display and record a free text question?
    • ✅ Yes, The EXTERNAL survey mode can display and record free text questions -> assuming the chosen provider application supports this feature.
    • ✅ Yes, The INTERNAL/INLINE survey mode can display and record free text questions.
  • Can it support conditional questions (e.g. Question A yes/no IF answer is yes display Question B)
    • ✅ Yes, The EXTERNAL survey mode can support conditional questioning -> assuming the chosen provider application supports this feature.
    • No, The INTERNAL/INLINE survey does not yet support this feature.
      • ℹ We could consider creating a new client side VIEW that supports conditional rendering. We also need to explore the implications of this change. This would require new UI/UX insights.
    • ℹ Joaquin also pointed out the following: Right now QS sends an event where the data recorded is the survey name + survey answer(s). The backend is a simple key value store, and the value field has already been stretched by adding multi-answer responses and free form text by having the values appended together with a separator which is kind of brittle. Adding multiple questions could be done by changing what the key stores, instead of survey name it could have survey name + question key, but there would be no assurances on the backend about the integrity of the data, since the storage is so ad-hoc. The data could present answers to a survey where certain questions don't have a value, or other inconsistencies. And the analysis of it will require trickier and trickier queries splitting the field value many times per survey (for each question) and increasing the complexity of the queries substantially.

Event Timeline

I added information to this spreadsheet https://docs.google.com/spreadsheets/d/1CKS3UlKsb4nSCAXKFbVMx2bJpddIbUgxgqfF8-kMJvo/edit#gid=0 which answers some questions and gives more details about QuickSurveys which can be a good starting point.

I think there is another very important factor to consider if we were to add multiple questions and conditional questions besides what Essex listed, which would be the backend storage situation.

Right now QS sends an event where the data recorded is the survey name + survey answer(s).

The backend is a simple key value store, and the value field has already been stretched by adding multi-answer responses and free form text by having the values appended together with a separator which is kind of brittle.

Adding multiple questions could be done by changing what the key stores, instead of survey name it could have survey name + question key, but there would be no assurances on the backend about the integrity of the data, since the storage is so ad-hoc. The data could present answers to a survey where certain questions don't have a value, or other inconsistencies. And the analysis of it will require trickier and trickier queries splitting the field value many times per survey (for each question) and increasing the complexity of the queries substantially.

All this complexity and complications is why the external surveys were created, so that after simple surveys you would upgrade to something that is a survey provider and we don't end up building a new limesurvey on mediawiki.

@eigyan I'm not sure if you want to incorporate any of this info to the summary in the description, your call.

Consider it reviewed with my +1, feel free to move to product signoff after you decide 👍

eigyan updated the task description. (Show Details)
eigyan updated the task description. (Show Details)
Madalina added a project: WMF-Safety-Survey.

Looks like we got what we were looking for, marking this as solved