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
Task model frustrations #12713
Comments
Difficult to describe which actions are available at a task at a glanceWe are often asked by teams at the Board, newcomers to the team, and designers which actions are available for a task in a given state. In order to answer this question we must either find a task in this state and ask it directly ( We do not have a systematic way to determine the actions available on a task. We are incapable of enumerating all the possible actions available for all tasks in all states. There is an existing tech spec that describes one route to address this issue. |
Hard to determine why a task's state changedWith the introduction of Task |
Differing Usages Across Teams / Code PiecesTasks in Queue, Hearings or Intake have slightly different behaviors & assumptions
|
Expect task tree to reveal state of appealWe rely on the state of the task tree to determine the status of AMA In particular, I am regularly tripped up while debugging some issue in production with an appeal that has been cancelled in some way (or withdrawn) because we infer that status from the state of the task tree. I often try to figure out how a task tree ended up in the state that the task tree is in before realizing that the entire appeal may have been cancelled. |
Confusion between the many ways to create a taskCertain tasks rely on |
Difficult to learnWe have a lot of custom behaviour tied to each task class, increasing the volume of information needed to be learned before feeling comfortable with Tasks more generally. One aspiration of the initial generic Task effort was to create a framework for quickly and easily creating new task types for different stages of an appeal's lifetime at the Board. This has not borne out over the past 12+ months working with Tasks. In order to add new task types, add new actions to existing ones, or update behaviour, we must understand how Caseflow's tasks map to the business domain and how the current arrangement solves the business problem. As a result, we've ended up in a place where there is a lot of custom code in each task class definition. This custom code reduces the transferability of knowledge from one task class to another. Knowing how the |
Goals
This ticket exists to collect frustrations we experience as developers with the Task model. The goal of this ticket is to discover common themes in our daily frustrations so that we can understand what they are and how we might best address them (better documentation, code/database changes, re-naming, improved tooling, perhaps even doing nothing at all).
Non-goals
This ticket will not be the place to propose solutions to any problems we surface during this frustration collection phase. If solutions become apparent during this phase, we will proposed them in separate Github tickets dedicated to the discussion of that particular solution.
What does the Task model do well?
While the goal of this ticket is to improve the Task model, it is important to acknowledge what the Task model does well so we do not end up throwing the baby out with the bath water.
parent_id
field)What does the Task model do poorly?
I will update this section with themes that emerge from comments threaded on this ticket.
The text was updated successfully, but these errors were encountered: