⇤ ← Revision 1 as of 2011-12-19 06:24:22
Size: 2927
Comment: initial draft
|
Size: 3083
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 19: | Line 19: |
== Questions for Resolution == * When there is a single combined service, what are the preferences to be used? The 9:30 one, the 11:00 ones, or both? |
Automatic Roster Allocation Process
A start has been made on automating church rosters so that the tedium of drafting a roster is no longer required. A computer program has been constructed that inputs data from the wiki, and generates a new roster based on that information. To date, only the Elders roster has been so automated, but as this is the most complicated of rosters currently maintained, it is expected that the others will be automated in fairly quick succession.
The Elders' Roster Automation
The starting point for this roster is the data stored in the EldersRosterPreferences table, which is editable by any elder. Elders may indicate with a simple Yes/No whether they wish to be rostered for a particular duty. Data from the current RosterEldersCurrent and previous EldersRoster2011 years is then analysed to determine a weighted score for each elder that indicates how recently they were allocated a duty. Multiple duties will increase the score, which is then reduced slowly over time (using an exponential decay function, for the mathematically inclined). Elders are then sorted according to this weight (lowest scores going to the top of the list), and elders are then allocated from the top of this list according to the duty required and their expressed preferences.
The idea behind this weighting process is that it gives priority for allocation to those who have not been allocated for some time. Nevertheless, over time, because each allocated duty will drop you down the list, every elder gets allocated an equal number of duties over the year. (But note that this may be biassed by preferences such as only being available for one time slot, particularly 8am)
Elders may also indicate their unavailability for a particular day, which will then postpone their duty until the next day that they are available. They will stay close to the top of the list, and indeed, if they are away for an extended period, may find that they stay close to the top of the list even after performing several duties on their return! This effectively "catches up" the missed weeks.
The program (will) run each week, computing the allocations for the Sunday that is 3 months in the future. Thus, there is always a 3 month window of allocations. Not clear is how availability on a week by week basis will affect this. Making a static allocation for the next 3 months does not easily allow elders to indicate their availability in a timely fashion. Does the program perform a complete re-allocation from the date of a new unavailable entry, or do we rely on elders performing swaps as before? It could all be done automatically, but this would mean that elders would need to check the roster on a regular basis to see if their allocations had changed.
More discussion is needed. (You can add comments following if you like!)
Questions for Resolution
- When there is a single combined service, what are the preferences to be used? The 9:30 one, the 11:00 ones, or both?