91 | | Workers will have different skills, and different levels of ability and training on those skills. |
92 | | Some skills will be hard to learn in the short term (e.g. languages) while others can be learned |
93 | | quickly (e.g. classifying messages by topic). |
94 | | When we're training new workers, we might want to give them tasks to practice on even if their |
95 | | level of ability isn't high. But for production work, we'd want to assign tasks that are appropriate |
96 | | for each worker's skills and skill level. |
| 94 | There are several conditions for assigning tasks to workers. |
| 95 | * They should be signed up to work on tasks, and maybe on specific kinds of tasks. |
| 96 | That is, there will be other people registered as users, so we need to identify those |
| 97 | who are HIT workers. |
| 98 | * We should let HIT workers say when they're available to work -- that might not be |
| 99 | the instant they log in, and they'll want to take breaks. |
| 100 | * An inactivity timer might be needed to detect whether the user has dropped offline or |
| 101 | is stuck on something. |
| 102 | * Workers will have different skills, and different levels of ability and training on those |
| 103 | skills. For production work (not training), we'd want to assign tasks that are appropriate |
| 104 | for each worker's skills and skill level. The requirements for skills will come from the |
| 105 | task definition. |
| 106 | * If the task definition calls for it, we'll need to dispatch each task to multiple workers. |
| 107 | * We need to track who has worked on what task, even if they declined it, so that we don't |
| 108 | assign a task to a worker more than once. |
| 109 | |
| 110 | Sometimes the assignment might be adjusted (these are beyond the basics): |
| 111 | * When we're training new workers, we might want to give them tasks to practice on even if |
| 112 | their level of ability isn't high. We might not even count their results toward completion |
| 113 | of a task, but just compare them against the other assigned workers. |
| 114 | * Experienced workers with higher performance ratings on a task might need fewer other |
| 115 | workers assigned to the same task. Eventually a worker might be promoted to "expert", |
| 116 | and become a reviewer for other workers. |
| 117 | * If the task instructions change, we could inject a notification. Could also use this to |
| 118 | prompt the worker to take breaks or deliver performance "rewards". |
| 119 | |
| 120 | There is a volunteer management component in Eden that is currently under revision. It has |
| 121 | simple support for specifying worker skills, and can also serve to identify HIT workers. |
| 122 | So that work on this project is not affected by changes, we can fork the volunteer component |
| 123 | and modify it as needed. Any useful or necessary mods can be fed back in to the new version |
| 124 | later. |
| 130 | * The form should be assembled based on what's specified in the task definition. |
| 131 | * Appropriate means of displaying the data. |
| 132 | * Widget that implements the required input method. |
| 133 | * A way to make instructions and help info available without distracting an experienced worker. |
| 134 | * The worker should be allowed to decline a task in case they don't think they can do it. |
| 135 | * Letting them annotate the task with comments or concerns could be helpful in diagnosing |
| 136 | problems with the input data, or with the HIT system. |
| 137 | * Customizing the layout or look-and-feel might improve usability. |
| 138 | * A means of contacting the user via the form could help in determining if they're still |
| 139 | online and active. |