Behavior Replication Proposal

Behavior Replication Proposal

This proposal involves building a new user grouping system that internally replicates the behavior of legacy mechanisms (such as cohorts, teams, or enrollment track groups), but without maintaining a direct synchronization with them. Instead of integrating with the existing systems, the new system is designed independently, incorporating the necessary logic, possibly based on the current one, to reproduce the existing functionalities within its domain. This would eventually allow the legacy mechanisms to be phased out once all necessary functionalities are implemented.

image-20250529-154845.png
Behavior Replication

Phase 1: Adding the New Model (MVP)

This phase is planned to be completed during the Ulmo Release.

Objective

Implement the foundational user grouping system at the course level to allow course delivery teams to create, view, and manage static user groups. This MVP provides the minimal functionality needed to start grouping users manually, without replacing or affecting the legacy grouping mechanisms (Cohorts, Teams, Enrollment Tracks).

This phase includes only the creation and management of static user groups defined explicitly by username or email. No dynamic or criteria-based grouping is supported yet. More details in the https://docs.google.com/document/d/1P8_6yDgtap4GHJQp-88mUaW9rXQ9TXebHYSlxO4WjM4/edit?tab=t.0

Specific Actions

1. Data Model, Core Logic, and Static Group Management

  • Implement the initial data models: UserGrouping, Membership, etc.

  • Include metadata for each group: name, creation method, last modified date, and number of users.

  • Enforce validation logic, including uniqueness of group names at the course level.

  • Enable creation of static user groups by:

    • Entering usernames or emails manually.

    • Uploading a CSV file.

  • Allow instructors to:

    • View group membership and metadata.

    • Edit group names and membership.

More technical details in the Unified User Group Model Technical Approach

2. Controlled Activation

The new user grouping system will be disabled by default. It will support activation at different levels (course, organization, or platform) through a configurable flag by operators. This enables controlled testing without affecting full production instances.

UI Available

  • A new tab will be added within the instructor panel to manage the new user grouping system.

  • The legacy interfaces for the current user grouping mechanisms will remain unchanged.

Completion Criteria

Phase 1 is complete when:

  • The user grouping system is implemented and integrated into the platform, with controlled activation via a feature flag.

  • Course teams can create and manage static user groups by username or email.

  • A tab in the instructor dashboard is available for managing user groups.

  • The user grouping system operates independently without affecting legacy systems like Cohorts, Teams, or Enrollment Tracks.

Phase 2: Replication of Legacy Group Behavior

This phase is planned to be completed during 2 releases (Verawood & W Release).

Objective

Extend the unified user grouping system to support dynamic groups based on criteria and replicate the key functionalities of legacy mechanisms (Enrollment Tracks, Cohorts, Teams). During this phase, both systems will coexist without interference. Functionality will be implemented incrementally, focusing on one category at a time.

Specific Actions

1. Mutual Exclusivity

Ensure that users belong to only one group within a Group Collection. More details in the Mutual Exclusivity in User Groups document.

Applies across:

  • Enrollment Track Groups

  • Cohorts

  • Teams

2. Content Gating

  • Enforce content gating based on group membership.

  • Learners only access units or components that match their group.

Applies across:

  • Enrollment Track Groups

  • Cohorts

  • Teams

3. Divided Discussions

  • Support divided discussions based on group membership.

  • Validate that learners only see and interact with discussions appropriate to their group.

Applies across:

  • Cohorts

4. Nested Group Support

  • Replicate team structure: team sets and teams.

  • Enable group hierarchies within a course.

Applies across:

  • Teams

5. Custom ORA Assignments

  • Support group-targeted ORA (Open Response Assessments).

  • Ensure instructors can assign different ORA blocks to different groups.

Applies across:

  • Teams

6. Testing and Validation

  • Learner experience: Verify correct content visibility, mutual exclusivity, group-based discussions, and access to custom ORAs.

  • Instructor experience: Validate group creation, management, and assignment through the new interface.

  • Performance: Run functionality and load tests in high-enrollment courses.

UI Availability

  • The Instructor Dashboard tab will remain the main entry point for group management.

  • Legacy management interfaces (Enrollment Tracks, Cohorts, Teams) will remain unchanged during this phase.

Completion Criteria

  • Dynamic groups are created and refreshed based on defined criteria.

  • All targeted functionalities are replicated in the new grouping system:

    • Content restriction based on group membership works as expected.

    • Mutual exclusivity is enforced per group type and scope.

    • Group-specific discussions are functioning.

    • Nested groups (like team sets and teams) are fully supported.

    • ORA assignments can be restricted to specific groups.

  • No regressions are introduced.

  • Legacy grouping systems remain functional and unaffected.

Phase 3: Legacy Groups Removal

This phase is planned to be completed during the X Release.

Objective

Complete the migration to the new system by fully removing everything related to legacy grouping mechanisms (Cohorts, Teams, Enrollment Tracks), both in the backend and frontend. By this stage, there should be no remaining technical or functional dependency on legacy models. The focus shifts to cleaning old code, updating documentation, and validating the system at scale to ensure no regression in user or instructor experience.

This phase will be executed gradually, in the following order:

  1. Enrollment Track Groups.

  2. Cohorts.

  3. Teams.

Specific Actions

1. Elimination of Enrollment Track Groups

  • Remove old models, serializers, signals, managers, and utilities related.

  • Cleanup of views, endpoints, and logic in services.

  • Remove legacy UI and MFE (Studio and LMS), such as Group Configuration Settings.

2. Elimination of Cohorts

  • Remove old models (CourseUserGroup, CohortMembership, CourseCohort, CourseCohortSettings, etc.), serializers, signals, managers, and utilities related.

  • Cleanup of views, endpoints, and logic in services.

  • Remove legacy UI and MFE (Studio and LMS).

3. Elimination of Teams

  • Remove old models (CourseTeam, CourseTeamMembership, etc.), serializers, signals, managers, and utilities related.

  • Cleanup of views, endpoints, and logic in services.

  • Remove legacy UI and MFE (Studio and LMS).

4. Remove Flag

Remove the flag that enables/disables the new grouping model. The new user grouping system will be enabled by default.

5. Documentation

  • Update technical and functional documentation (for devs, operators, and course authors).

  • Include guides for using the new model and examples of how to apply the criteria.

  • Offer comparative material between the previous model and the new one.

6. Formal Closure of the Migration

  • Officially communicate the end of support for legacy mechanisms.

UI Available

  • Only the new UI for the new user grouping system will remain available. No flag will be required to display the new interface.

  • The legacy interfaces for the legacy systems were completely removed.

Completion Criteria

Phase 3 is complete when:

  • All legacy components (models, endpoints, views, and interfaces related to Cohorts, Teams, and Enrollment Tracks) have been removed from the codebase without impacting critical functionality.

  • Legacy grouping interfaces in both LMS and Studio have been retired. All grouping operations are now performed solely through the new tab in the instructor dashboard.

  • The platform has been successfully validated at scale, including courses with many users, with no performance degradation or functional regressions.

  • All related technical and functional documentation has been fully updated to reflect the new architecture.

Phase 4: New Admin Panel Integration

This phase is planned to be completed during the Y Release.

Objective

Migrate all user group management functionalities from the instructor tab to a new centralized admin panel. This new panel will serve as the single point of interaction for administrators and course authors, enabling broader management capabilities with greater visibility, control, and scalability.

Specific Actions

1. Migration of group management functionalities

  • Move all user grouping features previously available in the instructor tab to the new panel:

    • Creation and editing of groups.

    • Management of criteria (manual and automatic).

    • Manual user assignment or CSV-based bulk assignment.

    • Display of all metadata related to the group.

2. Enable organization and platform-level scope

  • Allow group management and configuration at the organization and platform levels.

3. Removal of the instructor tab

  • Remove the user grouping tab from the instructor panel.

4. Documentation and training

  • Provide updated guides for operators and course teams on the new workflows.

  • Include comparative material between the instructor tab and the new panel.

  • Offer optionally video tutorials, FAQs, and examples of advanced use cases.

UI Available

  • Only the new centralized admin panel will be used to manage user groups. It will replace the instructor tab in the LMS.

Completion Criteria

Phase 4 is complete when:

  • All user group management functionalities and metadata display have been successfully migrated from the instructor tab to the new centralized admin panel.

  • The new panel supports group management at the course, organization, and platform levels, enabling broader visibility and control.

  • The user grouping tab in the instructor dashboard has been fully removed, and all interactions now occur exclusively through the centralized panel.

  • The new admin panel is fully functional and accessible, providing a clear, scalable, and intuitive interface for administrators and course authors.

  • Documentation and training materials have been completed and distributed, including:

    • Updated guides for administrators and course teams.

    • Comparative materials outlining the differences between the instructor tab and the new panel.

    • Optional resources such as video tutorials, FAQs, and advanced use case examples.

  • The platform has been validated post-migration to ensure functional parity, no regressions, and improved usability.