Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inactive users #12523

Closed
1 task
lpciferri opened this issue Oct 30, 2019 · 0 comments
Closed
1 task

Inactive users #12523

lpciferri opened this issue Oct 30, 2019 · 0 comments
Assignees
Labels
Epic Priority: Medium Blocking issue w/workaround, or "second in" priority for new work. Product: caseflow-queue Team: Echo 🐬

Comments

@lpciferri
Copy link

lpciferri commented Oct 30, 2019

Background/context

Caseflow users could decide to leave their jobs at the Board of Veterans' Appeals, and therefore their active tasks need to be reassigned to other users to be worked. If their tasks aren't reassigned, a Veterans' appeal could be "stuck", and unnecessarily take more time to process.

Goals

  • Prevent unnecessary delays in appeals processing due to stuck tasks assigned to users no longer employed at the Board
  • Reduce support tickets related to reassigning tasks due to users leaving the Board
  • Give the Board control/agency over their users

Success criteria

TBD

Stakeholders

  • John Gosnell, Board product owner
  • Jennifer White, Board product owner

Requirements/stories

High level flow:

  1. Members of the Caseflow team management page (which are admins of the BVA organization) can search for a user and mark them inactive
  2. Once inactive, the user's tasks are reassigned automatically. Reassignment to whom depends on the logic below
    • Tasks keep the same status, when it makes sense?
  3. Once inactive, the users are removed from their organizations; or their team organizations are removed (e.g. judge teams)

Task reassignment logic

Task Proposed reassignment Logic Rationale
JudgeAssignTask Cancel user's JudgeAssignTask, reopen (or create new?) DistributionTask Since the judge is no longer active, and the appeal hadn't been assigned to an attorney yet, it needs to go to another judge to assign to another attorney. We can leverage auto-case distribution to choose that other judge
JudgeDecisionReviewTask Reassign JudgeDecisionReviewTask to drafting attorney's new judge These tasks always have an AttorneyTask ahead of them. Since the judge is no longer employed at the Board, we assume that judge's attorneys will be put on new judge teams. We think we should assign the JudgeDecisionReview task to the attorney who wrote the decision's new judge for review
AttorneyTasks (without children) Close that AttorneyTask, reopen JudgeAssignTask If the attorney leaves the Board, a new attorney needs to write the decision. Allow that attorney's judge to assign the case to a new attorney on their team
Tasks with parents assigned to organizations
e.g. TranslationTasks that were first assigned to the Translation organization, before assigned to the individual
e.g. IHP tasks, and more
- If the organization does NOT have round robin assignment, cancel the inactive user's task. Now, the task exists in the Unassigned tab for that organization
- If the organization DOES have round robin assignment, use round robin to find who the next assignee would be, and assign them the task (Note: could mean assigning many tasks to VLJ Support users)
Tasks with parents that are assigned to users
e.g. JudgeQRTasks
e.g. AttorneyRewriteTasks
Cancel these tasks, so their parents are again active. Parent user can reassign the task Bring these tasks back to the assigner for reassignment
Downstream child tasks
e.g. VLJ Support tasks as children to the AttorneyTask, and the Attorney has left the Board
- TODO
- Idea: reuse above logic. If AttorneyTask would be cancelled, move the child task as the child to the parent task instead

Proposed testing plan

  1. Manually run function to reassign tasks for known users, alongside BVA product owners (we have at least 1 example of an inactive user we know about)
  2. Discover edge cases, define how to handle them, update the function
  3. Ask for more users from the Board, run the function manually for them as well
  4. Repeat a few times
  5. Connect the UI and function, allowing it to be a self-service function for Board admins

Open questions

  • Need to confirm requirements around task reassignment

References/Resources

Handy parent-child associations

“PARENT TASK”, “CHILD TASK”
[[“JudgeAssignTask”, “AttorneyTask”],
[“JudgeDispatchReturnTask”, “AttorneyDispatchReturnTask”],
[“BvaDispatchTask”, “JudgeDispatchReturnTask”],
[“QualityReviewTask”, “JudgeQualityReviewTask”],
[“JudgeDecisionReviewTask”, “AttorneyTask”],
[“JudgeDecisionReviewTask”, “AttorneyRewriteTask”],
[“JudgeQualityReviewTask”, “AttorneyQualityReviewTask”]]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Priority: Medium Blocking issue w/workaround, or "second in" priority for new work. Product: caseflow-queue Team: Echo 🐬
Projects
None yet
Development

No branches or pull requests

5 participants