This task is for engineering the first minimal version of the feature, which is mocked up as Variation A here See design details on T206372: Personalized first day: design survey experience.
Here are requirements for the feature, which may change over time. They are split into "Variation A", which refer to things that we need before even deploying the first version (six week range), "Subsequent version", which are things we will need in a subsequent version (two month range), and "Long term", which are things we'll need if this feature really takes off and spreads to more wikis (one year range). Even though those second two sections are not needed for Variation A, they are listed here for completeness and so that engineers can make decisions that keep paths open for the future.
Variation A
- After the user successfully creates their account from Special:CreateAccount, they should be directed to a Special page containing the survey.
- After completing the survey, they should see a Special page that thanks them for their response, and then they should be redirected back to their "return-to" page from before account creation.
- If they skip the survey, they should not get the page that thanks them and they should be redirected back to their "return-to" page from before account creation.
- After that page, they should be redirected back to their "return-to" page from before account creation.
- This should not happen for auto-created accounts from other wikis.
- Anonymous users should not be able to access the survey.
- The survey should include the user's username in its header.
- The survey should have two button that allows the user either skip completing the form or to submit it.
- If the user clicks the skip option, nothing they entered into the form will be saved.
- If the user clicks to submit, whatever they have entered in the form will be saved, whether or not they have completed the whole form.
- The form is available on desktop and mobile web (existing Minerva skin for Special pages).
- The form should be able to hold questions with these types of responses:
- Single-select question (drop-down or radio button group) – e.g., "What is the main reason you are creating an account?"
- Multi-select with typeahead – e.g., "What topics are you interested in editing?"
- Open-ended – e.g., "Do you have any questions about editing right now?"
- Text-input – e.g., user's email address
- Checkbox – e.g., "Check here to be contacted by a mentor."
- The overlay should have space for a header and for arbitrary text and links.
- For the question about "topics interested in editing", the user should be able to select from a set of options or type in their own. When typing, they should be able to select from a separate set of options.
- PM and Designer will want to be able to swap out new questions and response options on short notice, even after the feature is in production, as well as turn the feature off entirely. Being able to do this with SWAT deploys would be sufficiently fast, but waiting for the weekly train would not. In the farther future, we may want to allow communities to configure these elements, but we don't need to allow that yet.
- We will need to be able to split new account creations into different variants for experimentation. For instance, some new accounts should get the full overlay, some with fewer questions, and some with no overlay.
- When we are testing this feature, we will want it to be easy to "turn it on" for certain people in Test Wiki. For instance, someone testing might want to create many new accounts in a row to test out the form, but wouldn't want every person creating a new account in Test Wiki to get the form.
- Data should be stored in such a way that our team's data analyst can easily access it in real time, as responses come it.
- Data should include whether a user skipped the form, along with the count of how many times they have skipped/submitted, and a timestamp of the most recent submission.
- Future user experiences can be governed by it, such as a redirect to a different page, or a popup with help content.
- This version should work for both Javascript and non-Javascript users.
Subsequent version – see task T207717: Personalized first day: build Variation C
- Deployed as an overlay on top of the account creator's original context.
- Discloses one question at a time, with progress indicator.
- Data should be stored in such a way that future user experiences can be governed by it, such as a redirect to a different page, or a popup with help content.
Long term
- We will want the content of the form to be easily translatable by community members so they can adapt it to their own languages.
- Community members should be able to add, subtract, and reconfigure questions from the form, with the ability to choose from a standard set.
- Users that dismiss the questions should have a way to go back and fill them out later.