I’m leading a largish development team (~35 developers). We are doing primarily Web Development work on a number of sites.
Historically the knowledge on the teams has been pretty siloed. If you worked on Site A you will know how to troubleshoot it, but you would not be a lot of help on Site B.
We also have a few cross-cutting concerns, i.e. common components used between sites which require specialized knowledge to troubleshoot.
With all this in mind, I’m trying to understand the best way to setup an on-call team.
This would be a team of programmers who would be available to deal with out-of-hours emergency issues occasionally (say one call every 2 weeks). They may be required to deploy emergency fixes.
Part of me is saying we can’t have a big on-call team with shallow knowledge, instead we need a smaller team with deep knowledge who can expect to be on-call more often and remunerated as such.
Does anyone have any suggestions based on experience on how to setup this team?
Thanks in advance.
5
Where I work, the management first asked for volunteers, and then divided the on-call times based on the amount of available people. In practice, there’s three on-call periods for each person during a two month period. They run in a weekly schedule of:
Person 1: Monday 08:00 until Friday 08:00 (64 hours of on-call)
Person 2: Friday 16:00 until Monday 08:00 (64 hours of on-call)
During office hours (08:00 – 16:00) there is no on-call, of course, as calls will go directly to the on-duty phone.
During cases where the on-call person is unable to solve the issue, he can call the technical lead and the overtime hours will start running for the Technical Lead, and the on-call person continues his on-call, though usually working together with the Technical Lead until the issue is fixed.
Update:
Oh and the on-call person only handles issues related to his area of the system. If the issue goes beyond that, there is a different on-call person in another team. For example the Unix team has a separate on-call person, and the Database team has one, etc.