SparkDevNetwork / Rock

An open source CMS, Relationship Management System (RMS) and Church Management System (ChMS) all rolled into one.
http://www.rockrms.com
580 stars 353 forks source link

Volunteer Scheduling (Round 2) #3108

Closed jonedmiston closed 5 years ago

jonedmiston commented 6 years ago

This card replaces the earlier card on the upcoming Volunteer Scheduling features in Rock v9. This adds additional thoughts and features to address some of the previous input.

Rock Scheduling

The new scheduling feature is designed to augment the standard Rock Check-in model. This means if you have your volunteers checking-in at services, most of your configuration will already be complete.

Scheduling will add the ability to create minimum, desired, and maximum capacities for each location schedule. This allows you to set staffing needs based on the size of a service. If a 10:30 service has 20% more attendees, you can scale your volunteers appropriately.

image

Next up we'll have group members select their schedules. The options here (weekly, every other week, etc) will be defined on the Group Type.

image

And, a group member can also have an assignment which ties them to a location and/or schedule. In most cases, a group member will just select their schedule frequency--this will allow a kids volunteer to always serve in the same classroom (location).

image

Showing some of the permutations on assignments.

image

The system will then be able auto-assign people to the correct place using this logic.

image

Screens

OK, so let's start to look at some possible UI to drive this. First from the admin side. This first screen allows the scheduling to be created. Most people would be assigned from the Group's Group Members. But you could also pull people from an alternate group or data view. You can also add a single person to the resource list to pull from. By default the resource list will show volunteers with a matching schedule preference, if a group member is set to serve every other week and it's their off week, they will not be shown in the resource list.

The resource list will show the group member, their last scheduled date, a note, as well as any conflicts (denoted by a yellow background color). Schedulers will be able to select all members in the resource list, or drag individual members to their assignments.

Each location will now include a ScheduleStatusLight (a Rock version of a traditional stop/go-light). The chart will represent confirmed members in green, pending members in blue, and declined in red. With a line denoting the minimum required. Next to the status chart is a circular status light that will show:

volunteer scheduler

Schedulers will also be able to clone any schedule location to another week or schedule time by pressing the clone button next to the ScheduleStatusLight.

clone schedule

Schedulers will also be able to see an overview of current schedules using the Schedule Status Board. Which is customizable by groups and dates.

schedule status board table screenshot from excel file in same folder

Confirmation emails would look something like this, but of course would be configurable.

email confirmation

From there users will be linked to an email confirmation block with custom lava to show for each group.

email confirmation block

Optionally, declines can require a decline reason (defined type), and a note to explain their absence.

email decline block

Next , we would have a Schedule Toolbox for the workers to use. The first tab allows them to view and confirm upcoming schedules. They’ll be able to subscribe to an iCal feed with all their upcoming and pending schedules.

image

The next tab would allow them to set their preferences.

image

Note that black-out dates could be global (I'm going on vacation) or specific to a single group (I need a break from the kids). We plan on allowing black-out dates to also be configured for other people in the same family(ies) as the individual.

The final tab allows them to sign-up for additional schedules that they were not assigned to.

image

Finally, how about a light analytics block that allows you to have accountability.

image

Data Model Changes

Here's some high-level changes needed to the data model to support these features.

image

Conclusion

That’s V1 of volunteer scheduling. Please let us know your thoughts...

cabal95 commented 6 years ago

This looks great Jon!

We plan on allowing black-out dates to also be configured for other people in the same family(ies) as the individual.

On that thought process, would it make sense to use a "family member picker" (drop down list) in the schedule toolbox above everything else that switches the context of the entire block to the selected person? Example:

I routinely serve with my wife and teenager. Should I be able to view their volunteer schedule information and accept/deny their confirmations for them?

luke-infoministry commented 6 years ago

I like where this is going. There's one thing that we do a lot with volunteer scheduling that I'm not sure if I'm missing somewhere: volunteer roles and requirements. This may be tricky to implement since you're leveraging the check-in functionality, which seems to be deeply tied to named locations.

When we schedule volunteers, in addition to what their schedule will be, we also have scheduled roles. In an AV context, that means I have Sunday morning schedules for a couple sound guys (two different roles), 5-6 camera operators (scheduled by individual camera), Light operators, screen media, and on down the list. Children's ministry has room leads and room helpers. For special events we end up with a wide range of service areas, including setup, cleanup, food service, greeters, etc.

There are training requirements for most of my AV service areas, there are background check requirements for service in childrens ministry, etc. Typically when we schedule, we'll start from a list of individuals who are trained/approved for a given role, and schedule them to a given service.

Effectively, the model that would work ideally would be to add a "role" branch under group/location/schedule - role. So AV Team / Auditorium / 9am / Sound Board, or Children's Volunteers / Kindergarten room / 10:45am / Lead Teacher

I can see how I could kludge this functionality by making additional locations within, say, my auditorium, but this has negative effects in other areas, such as in the room management plugin which was developed by Central Christian.

jonedmiston commented 6 years ago

Hey Luke! I think this can be done, but maybe I'm missing something. Your locations could take the place of the roles (slots). Does this make sense? I'm not sure what the ramifications are with the Room Manager. I talked with Nick and I think they could add some filters to only consider locations of a certain type. Below is a diagram of what service programming could look like.

image

luke-infoministry commented 6 years ago

This makes sense from a hierarchical standpoint. Maybe leverage ability levels to take care of training concerns? That has ramifications because I believe ability levels are single-select, which makes sense for infant/crawling/walking/etc. but doesn't make as much sense in a cross-trained tech team.

One big picture thing to also consider - volunteer saturation analytics. One of the things that I'd really like to arrive at is a good visual depiction of a person's volunteer involvement across ministries. Having a quick view that Ted Decker volunteering as:

In our current context at Highlands, we have a balkanized system between the different ministries of how scheduling is done, which is why this is so exciting. No longer do I have worship musicians scheduled on a google docs spreadsheet, worship technicians scheduled in planning center, children's ministry volunteers scheduled on an excel spreadsheet on the kid's ministry assistant's laptop, and communion servers scheduled on a piece of paper at someone's house. Centralizing the information leads to much better metrics on the healthy participation of our congregation in the ministry.

You guys have to know this as well as anyone, but there's a whole stratum of volunteers who serve everywhere because they can't say no. For a while it's great and they're ministry all-stars, but it's absolutely the road to burn-out in the long run.

It's really the other end of the bell curve from the scheduling analytics you've shown. It looks like right now you would be showing scheduling analytics for one group, but would that be expandable to show service across all scheduled groups / locations?

Also, could there be a volunteer service block, probably in the Person Profile / Groups (or a separate Person Profile / Service) page to show scheduled service / confirmation / blackout / no show (history) by Group / Location[Role] / Schedule?

Additional thought, somewhat peripheral - in someone's service toolbox area, have a specification for desired overall weekly/monthly service hours. Calculate their actual service hours from scheduled/checked in service, and return a value. Shade the service badge accordingly on their person profile, keep light gray for not scheduled, orange for <25% of desired hours scheduled, yellow for 25% - 75%, green for 75% - 100%, and Red for excessive service, maybe 150% plus.

jonedmiston commented 6 years ago

Wondering if the built in Group Requirements features would help with the training concerns? Ability levels might not work out so well, as you noted.

The burn-out idea is great. The good news is all that data is in one system. What you're thinking is definitely possible. Not sure it will be in v1.0, but getting the data is more than 1/2 of the work, and that would be done.

Also, could there be a volunteer service block, probably in the Person Profile / Groups (or a separate Person Profile / Service) page to show scheduled service / confirmation / blackout / no show (history) by Group / Location[Role] / Schedule?

Yes, I think we're going to need something there to help staff see the schedules, but also add black-out dates.

JimMichael commented 6 years ago

More of a question than a comment... but way back when "Simple Volunteer Scheduling" was just an idea on a Trello board, I thought it was stated (though my memory is fuzzy) that Rock wasn't going to try and "compete" with Planning Center and its relatively complex scheduling features and that the scheduling mechanism would be more geared toward Parking lot and Coffee Bar type teams. Clearly this new plan for vol scheduling has moved well beyond "simple", so I'm just curious if that original idea is now moot... are most churches looking at this new feature thinking of ditching Planning Center, at least for the scheduling piece?

luke-infoministry commented 6 years ago

Group requirements would work for things e.g. background check necessity, but perhaps not for differential training in teams. Some kind of group attribute category perhaps?

RE: complexity - I'm definitely looking to completely centralize volunteer scheduling. Having siloed information hurts my ability to present the most complete picture of a congregant's relationships within the church.

Planning Center has developed a great suite of products, and there are some small, new churches that I talk to that I steer in their direction. PCO sync by red arrow looks to sync contact information between the two databases, but wouldn't give me the single-location visibility of the gradient of someone's volunteer involvement, just a yes/no they're in the group.

Spark and the Rock community have built a basket that's so good, I want all my eggs there, in terms of seeing and managing the relationship.

PCO should and does rule the roost for managing a service schedule, dragging and dropping songs and announcements and the like. Rock doesn't need to be in the business of re-keying a song chart. That's not important to the goal of showing relationships. But robustly showing someone's involvement, from group membership and attendance, conversion and baptism dates, through now their weekly/monthly volunteer commitment is, to me, completely within the mission of Rock.

jonedmiston commented 6 years ago

That's a great point Jim! We definitely don't see competing with PCO on service programming/worship/service planning. We want to keep this feature as simple as possible but also meet the needs of most churches. That's a tough tension to manage though. Please do help challenge the conversation to keep this simple!

cgidds commented 6 years ago

I'm glad to see @JimMichael's thoughts on the original intent behind Volunteer Scheduling. From our perspective, we're currently using PCO for the normal, non-worship volunteer teams as a stop-gap until v9 is available for use. PCO offers much more advanced features than we need for building and scheduling our teams, and from what I've seen in the current specs of volunteer scheduling here, it does meet all our needs. Keep it up team!

jonedmiston commented 6 years ago

We've been hard at work with a few more updates and new features based on your feedback.

Resource List Search for Person

Added the ability to quickly search for a person by typing their name, list will filter as the search query is typed.

Manage Volunteer Block

A person profile level block that allows administrators to view upcoming schedules for a person as well as blackout dates. Administrators will be able to add blackouts if volunteers are unable to do it themselves.

Schedule Analytics Block

Shows checkins, missed confirmations, declines, and decline reasons with ability to filter by group, date range, dataview, and person.

Optional Confirmation Emails for Schedulers

Emails the scheduler for every confirmation or decline. (Disabled by default)

Schedule Email Digest

All emails will now be sent using a job that will group RSVP and confirmation emails where possible. This will help prevent an avalanche of emails by grouping confirmation emails to send as defined by a new job. The schedule email job will be configurable by a group and its children.

New “Can Schedule” security verb on group and group type

This will help determine who is allowed to do the scheduling for a group. This is a new security level between 'Edit' and 'Administrate'.

WoodsonJ commented 6 years ago

@edmistj excited to see more of this get flushed out! Based on the updates and pre-existing information a few questions here for you and the team:

kcirgjd commented 6 years ago

I know this comment is late but one enhancement that would take this a step further would be to allow people to choose their confirmation and reminder communicate preference between SMS and e-mail.

Senaloraine commented 6 years ago

This looks great! We would also want to be able to send confirmations by text. If I understand correctly ('worker' meaning 'volunteer'), it would be great to have the ability to add the toolbox to the user portal with the ability for checkin there also.

SteveSwaringen commented 5 years ago

Excited to see the direction you're going with this. It looks like a great fit for us.

I saw a note in the early discussion that this was built on the check-in data structures, but not much discussion of how deep that connection goes. We'd really like to be able to use our existing children's check-in infrastructure (computer kiosks, RFID tags, label printers) to "check in" our volunteers and print them a role-specific name tag.

Will that capability be part of the V9 release?

jonedmiston commented 5 years ago

@SteveSwaringen yes, barring some odd custom configuration specific to an organization, it should work with your current hardware.

JimMichael commented 5 years ago

@SteveSwaringen we already check-in all volunteer teams (with role printed on tags that differ from Kids check-in), and in fact the Volunteer Check-In config exists out of the box... you just have to set it up. This doesn't really have anything to do with the scheduling side of things (which is what's coming in v9)

luke-infoministry commented 5 years ago

I know that prealpha is just that: Love how progress is looking - I think the term "Committed No Show" on group scheduler analytics is a little ambiguous. I feel like 'Committed' in the context of a volunteer means the opposite of what one would do who wouldn't appear. "Did Not Show" I think conveys the same information in a more clear way.

jonedmiston commented 5 years ago

Thanks @luke-infoministry we'll process that input.

luke-infoministry commented 5 years ago

I saw that on the back end, this referred to a status that basically is communicating "Commited to serve but did not show", which makes more sense with the abbreviation. I still think "Did not show" contains the implied statement that 'showing' was expected.

mshintani commented 5 years ago

Hey Jon, great meeting you at LeadNet in San Jose back in April. I am just joining this conversation and only read a couple of the recent posts. I did a keyword search on "SMS" and saw a post back in Sept of 2018, I am unaware if there's been more dialog. I am really excited to hear/read about Volunteer Scheduling. The SMS/text method of confirming or declining a schedule is something we've been discussing here at Willow in the kids ministry. Many of our volunteers are on the teenage and elderly end - we find they don't use email (especially the teens). So right now, many of our PCO scheduling emails go unopened. This week I received a text from my dentist (well. their scheduling system) asking me to respond "1" if I am coming to my appointment later this week or "2" to cancel the appointment. Here at Willow we've been talking about a similar desire for our volunteers - and even an option "3" to signal for someone on the staff to contact the volunteer for further conversation or even "4" to take them out of the serving group (which would also trigger a phone call from our staff). Those are loose ideas. Just wanted to see if a concept like this is desired out there in the Rock community and/or if you can point us to a solution that will integrate with Rock's scheduling to do the SMS portion.

jonedmiston commented 5 years ago

@mshintani Great ideas. We can add this to the roadmap for this feature. I think we have a lot of the plumbing for that in our current foundation.

WoodsonJ commented 5 years ago

@jonedmiston as we are looking through Group Scheduling for v9, is this the best place to pose questions about features listed above?

jonedmiston commented 5 years ago

@WoodsonJ Questions are probably best put into chat where more people can assist in answering.