Requirements Beyond MVP: Dynamic User Group Creation, Usage, Refresh, and Management
Long-term User Group Strategy
Use Cases
See User Group Use Cases for a more extensive and specific list of user grouping use cases based on product discovery. I’ve included below the groups and use cases that will be fulfilled by this Post-MVP delivery:
As a course delivery team member, I want to be able to segment the users in my course based on their characteristics, their course engagement, and/or their course performance, so that I can…
Easily compile and download a list of learners in my course that meet certain criteria for analysis and usage off-platform.
View course enrollment, engagement, and performance data for learners in my course that meet certain criteria to better inform decisions I make about my course and/or the intervention tactics I may use.
Communicate with a subset of learners in my course to compel them to reengage with course material or to encourage them to keep up the good work.
Note: This delivery will allow some course delivery teams to be able to communicate with learners by providing a CSV file with the email addresses of the users in the user group they’ve created. Reaching out to learners within a user group will still be a manual process until we are able to fully integrate user group creation with communication tools (such as email and notifications) on the platform in a future release.
Product Requirements
Epic 1: Dynamic User Group Creation
As a course delivery team user, I can create a dynamic group of users at the “course” scope based on user behavior and/or characteristics…, so that I can (see Utilizing User Groups to see how users want to be able to utilize the user groups they’ve created)
Dynamic User Groups
By defining a group of users with active enrollments in the course using any of the following criteria (limit of 3 criteria per user group for the initial dynamic user grouping release). In the future, we may need to allow users to combine criteria using OR, but for this MVP, we’ll allow the user to combine up to 3 criteria using only AND):
Available to all instances:
Current enrollment mode
User can select one or more enrollment modes
Current course grade
Equals
Equals or is greater than
Is greater than
Equals or is less than
Is less than
Enrollment date (Most recent enrollment date)
Is
Is on or before
Is before
Is on or after
Is after
Course Staff Role
User can multi-select course staff roles to create a group
User language (we need to decide which field this comes from)
User domain name
Engagement with one selected assignment
User can select one or more assignment statuses
Completed
Started
Not Started
Most recent attempt on one selected problem
User can select one or more outcome
Not attempted
Partially Correct
Correct
Incorrect
Has earned a certificate for the course ← Requires research as to whether or not we can use this as user grouping criteria
Only available to instances using Aspects:
Days since last engaged with course:
Never
N days
Equals
Less than or equal to
Less than
More than or equal to
More than
Any number of days
Watched one selected video
Problem response (limited to CAPA problems)
User can multi-select problem response
Survey XBlock Response
Note: The Survey XBlock will often have multiple questions within one Survey XBlock. By default, the survey tool contains 3 separate question slots to which users can add or remove questions (Manage Survey Tool — Latest documentation)
User can multi-select response to a survey question within the Survey XBlock
Epic 3: Utilizing Dynamic User Groups
New Requirement
As a course delivery team user, I can create a dynamic group of users at the “course” scope by (see User Group Creation to see what groups a user wants to be able to create), so that…
Technically-inclined instance operators can add their own grouping criteria/criteria is pluggable
Maintain Existing Functionality with New Dynamic User Groups
As a course delivery team user, I can create a dynamic group of users at the “course” scope, so that I can use dynamic groups the same way I can currently use static groups on the platform:
Download a CSV file of user group members that has the following columns:
Name
Username
Email address
Filter the Aspects User Group Dashboard (currently called the At-Risk Learner Dashboard) by a user group that has been created for the course
Epic 2: Dynamic User Group Refresh and Management
New Requirement
As a course delivery team member, I want dynamic user groups to refresh on the following cadences based on the criteria used to create the group.
Grouping criteria | Default automatic refresh cadence |
|---|---|
Event-driven refresh cadence: The user group will be refreshed when/just before it is utilized. For example, if a course delivery team member sends a notification to a group of users in their course with X current enrollment mode, the user group would refresh and then the notification would be sent. Cached daily refresh cadence: The user group will be cached daily. | |
Current enrollment mode | Event-driven |
Current course grade | Event-driven |
Enrollment date (Most recent enrollment date) | Event-driven |
Course staff role | Event-driven |
User language | Event-driven |
User domain name | Event-driven |
Engagement with one selected assignment | Event-driven |
Most recent attempt on one selected problem | Event-driven |
Has earned a certificate for the course | Event-driven |
Days since last engaged with course | Cached daily |
Watched one selected video | Cached daily |
Problem response (limited to CAPA problems) | Cached daily |
Survey XBlock | Cached daily |
Maintain Existing Functionality with New Dynamic User Groups
In addition to user group creation requirements and requirements for how users need to be able to utilize user groups, there are a few ways in which users need to be able to manage the user groups they’ve created. All of the following management strategies will be available after the Static User Grouping MVP is delivered:
As a course delivery team member, I want to name the user group I created, so that I have an easy way of identifying each of the groups I’ve created at a glance.
Character limit: 50 characters
User group names must be unique (at the course-level)
As a course delivery team member, I want the ability to edit the name of a user group, so that I can adjust previously created groups to better fit my needs.
As a course delivery team member, I want the ability to edit the criteria I used to create a user group, so that I can adjust previously created groups to better fit my needs.
As a course delivery team member, I want the ability to disable a user group, so that I can stop automatic refreshing of dynamic groups and stop any interventions associated with the group for user groups I am currently not using.
As a course delivery team member, I want the ability to re-enable a disabled user group, so that I can so that I can resume automatic refreshing of dynamic groups and resume any interventions associated with the group for user groups I would like to resume using.
As an instance administrator, I want to be able to access group membership changes information via the tracking logs, so that this information can be accessed if there are questions about why learner(s) were removed from/added to a user group.
As a course delivery team member, I want to view the following metadata for a user group, so that I am able to identify each user group and easily understand the group’s characteristics such as how the group was created, when it was last refreshed, and how big the user group is at a glance.
User group name
Grouping criteria
Number of users in group
Date last modified