In Search of the "Perfect" Pager Rotation?
jSpectre asks: "At my new job the Unix SA team has increased from 5 to 7. We're trying to work out a new, rotating on-call schedule and everyone has 'perfect' but conflicting ideas. Twelve weeks on and 6 off, 25 weeks on and 10 off. I thought someone out there must have come up with the perfect formula given N number of people you could rotate through the weekdays and weekend most efficiently. My google and web searches have come up with nothing. Does anyone know of a good formula/solution? The requirements are this, we have 7 people (but the forumla should ideally apply to N people) who should rotate through the weekdays (a 24 hour period) and the weekend (a 48 hour period). There is a desginated primary and a secondary person. They should be on for a few weeks and off entirely for a few. Sound like a good thesis/research problem for someone? By the way, Google comes up with a lot of people's schedules if you search for pager rotation. Tisk tisk."
Shit guys, if you can't work this one out on your own you should not be sysadmins. What's the next "ask Slashdot" "My manager has given me all these tapes to copy stuff from the sever to every night. What is the best rotation strategy?
Maybe you could work out a schedule based on the calendar year. The current one could seriously frustrate some people if they are on through the entire holiday season. Thanksgiving, Christmas, and New Years could easily come within 6 weeks of each other. It might be entirely possible some people are on through this whole time and others are off that entire time. If it's not balanced off the next year and some of the same people have to stay on call a 2nd year through that time, I would think it could lead to hard feelings.
While the holidays may not effect your business, they do have a storng emotional effect on most staff and it might help to set up the schedule to treat people fairly not just in regular time on/time off, but also in holiday time. For example someone who works Christmas or a 3 day weekend might get an extra week or weekend off some other time.
I've never had to deal with this in the tech field, but when I was in property management, I know anyone on call over holidays always felt at least a little frustrated, but at least they knew they all had to deal with it more or less equally.
Let's start with the assumption that you don't care if you're on-call, so long as you never get paged to do something during non-business hours.
Speaking as someone who had a real jerk for a boss and was on call for 11 months at one stretch, I don't think that's a valid assumption. While it seems like there's no problem unless you're called, being on call can be a stressful experience. It means you can't go out of town and you have to be aware that any activity you plan may be interrupted. For me, it meant I had a full spring, summer, and fall where I could not go on one single long (20 miles or longer, which put me out of quick "response" range) bike ride, which is something I love to do.
There's another problem with this overall idea, as well. If you move in an unpredictable rotation like this, then you never know if you're going to be on call for an upcoming weekend. It means you basically can't plan on going away for a weekend until Friday. If you have a lot of friends and an active life, that is unacceptable.
Make it even easier say $x a day for pager coverage (more for weekends) plus pay for call ins. That makes it easier... I don't have a life, need more money, I volunteer more often/take extra shifts. I have a real life, don't want as much extra work... I don't volunteer as much. Shifts that aren't covered are simply rotated through (still getting the extra bucks)
I have mod points and I am not afraid to use them
Supposing the density of the calls is not very high, use a two-person/week scheme.
..., week 4: 7-1, ..., week 7: 6-7). After 7 weeks, each person will have worked 2 weeks. Not so bad, only a 22% uptime is needed.
Person 1: Primary from midnight to noon, secondary from noon to midnight;
Person 2: Primary from noon to midnight, secondary from midnight to moon;
Rotate each week (week 2: person 3-4,
And for an odd N (in your case 7), you automatically shift morning/night in each iteration.
Seems easier that way too, you don't have to remember "are we thursday and it is really between 6am and 11h30am?".
This is a perpetual scrum in medical residency, too. We can't do back-to-back calls, which makes it harder than, "You cover this weekend."
0 - Get a big ass calendar with holidays and some pencils. Decide how many days/year each person will have to work. Break them down into 4 or so categories: weekday, friday, weekend, holiday are ours. Friday is annoying because you can't go out but not as bad as an 24h (weekend/holiday) day. If weekends are light, you could just have "weekday" and "friday + weekend" categories. Anyway, share around evenly.
1 - Holiday parity is a good place to start. Noone wants to get screwed both xmas and new year's. Ask for preferences and nail down someone for coverage for these and Labor day, the 4th, T-day, etc. They can trade later.
2 - Map out the conferences and people's known vacation blocks, anniversaries, exams, etc.
3 - Some people haven't adapted to a totally random fill pattern of coverage, so give people a choice of contiguous blocks/easy to remember patterns (M/W for the month of ___) or irregular blips.
4 - Schedule the parts where many are out of the office with whatever it takes. Subtract these and the holiday days from the totals each person has to work. Schedule the pattern-desiring people and people with evening classes/outside commitments/inability to show up if on a random schedule. Again revise the totals.
5 - Start marching through at the beginning, rotating through the N people available. Keep running track of the fridays/weekends, do a little stagger to keep the weekends from being the same person on the same day, and it will start filling out.
6 - Think outside of the month to fit those last days in. You don't have to fill months contiguously or in date order. If there is a new employee, it may be best to slack off a bit on them (no weekends) at first until they fill out their KB; this gives you some flex.
N - Nothing you can do will make the perfect schedule. You have to have one master list that is the last word, and on which everyone must record their trades. Leftover days are best distributed to the people who took the least holiday days or the dues-paying new hires.
N+1 - Write some open source software to do this. Acrimony might be less, and the legibility would be better for sure.
I couldn't agree more.
When I was in IT (thank the gods I don't do that anymore) we simply rotated between the four of us. One week on, 3 weeks off. Backup was our manager, and his backup was the director. Very rarely did the manager need to get called, and it was even more rare for the director to get called.
If there were scheduling conflicts where one of us would be outside the 2-hour window (2 hours from getting the call to actually starting to work on it) then it was upto the individual on call to find someone to cover for them. If no one's willing or available then you cancel your plans. Period.
Cruising the internet on my TI-99/4A @ a whopping 300 baud!
Absolutely. About the only choice in the system should be maybe ask the team if they'd like to rotate weekly or monthly.
Otherwise you're just overcomplicating it. Let people sort out their holidays by doing trades among themselves as long as they let you know.
But don't make it some complex mathematical scoring or other situation. You're just asking for accusations of unfairness if you do that. Somebody isn't going to "get" your carefully-thought-out system and feel it's working against them.
Errr, this might be too obvious, but have you asked if anyone wants to work the graveyard shift?
That would remove 90% of the problem.
I don't know about your situation, but most groups of geeks contain one or two that are night owls. Why not pay them a small premium to work nights? A lot cheaper than overtime.
.02
cLive ;-)
-- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism