Prompted by a question on another site, I decided to do a little reasoning and napkin calculations to provide an answer based on my own experience. Note that whilst the below is an mainly an exercise in reasoning, and still needs work, I am fairly confident it is relevant to real world application.
Determining ideal staffing levels for a support operation depends on a number of factors, but the most significant ones I believe will be evident once you have some insight into the operation over time.
Key factors I would single out are the median resolution time for an issue (from opening to closing), the inbound volume over a period of time, and the number of working hours per person per day. If you consider persons working 8h per day (not including lunch hour), then if you look at a week’s worth of operation, you can approximate your headcount to:
(median resolution time)*(inbound calls in a week)/40
At 120 calls per day and 30min to resolve each, that’s a staffing of 8 people
At 3 calls per day but with 16h to resolve each, that’s a staffing of 6 people.
Bear in mind that this is by no means absolute – it’s a first estimate only. Other things may affect you and your resolution times, that you have no control over, such as escalations to a next tier, or customers and channel partners delaying responses, or an existing backlog. Note also that certain periods of the year are busier than others, so if you calculate staff against the year, you’ll both be a little overstaffed and understaffed in lull and busy periods respectively; and if you staff against busy periods only you’ll be massively overstaffed during lull periods.
Another interesting observation is that, if you have ideal staffing level, your workload will remain constant. That means, if you bring your team size to the calculated ideal, you’ll find that the number of items they have going on simultaneously at that point will not likely go down over comparatively over an extend period of time. The load can be considered normal if the staff can get to the items within the SLA, and move between the items comfortably within SLAs if that is the nature of the issues. If on the other hand the staff aren’t able to reasonably meet SLAs with the number of simultaneous items they have, then you are in backlog.
Determining backlog is a fairly easy calculation: multiply the maximum number of items a person can process in a day by the median SLA duration; any number significantly over this indicates backlog. However, clearing it is an altogether different problem from “ideal staffing levels.”
As is now known and fairly popularized (see “The Mythical Man Month” by Fred Brooks), adding more people to an operation does not necessarily reduce the backlog of tasks. The more specialized or large the amount of knowledge is needed, the more likely you are to make matters worse by adding new people at a later date. Either have the staff from the beginning and scale back later, or evaluate carefully what any new addition will add and how fast they can be trained to full capability, and how long they will stay on the operation.
Keeping a quarterly tab on the two main variables mentioned above, that is inbound volume as well as resolution time will give you an idea of what ideal staffing levels are. There are various ways of keeping both down, so staffing should really only be looked into after other strategies have been fully explored.
Extended reasoning on staffing level calculation:
- Let T be the time in hours it takes 1 person to clear an issue (in the real world, you would get this by finding the median duration of a support case)
- Let I be the inbound volume of incidents over a period P (sample this from analyzing your own operations)
- (thus, let P be a sample time period in days as a representative basis for T and I)
- Let D be the number of hours any one given person is expected to work in a day (not including lunch time allowance)
- Let H be the number of staff in the team (this is the number we are looking for)
- Let W be the total number of work hours in period P, that being calculated as: W=H*D*P
When operating an issue-based service team, ideally you should see that over a period of time, your total case load should not have grown. If it increases you are understaffed; if it decreases dramatically you are overstaffed (allow however for transition into busy and lull periods).
The throughput (number of cases per period P) of the team then is W/T: as many cases taking T hours to solve should fit into W hours of work.
If over the same period of time, the same number of items came in (your inbound volume I) as “went out” (issues resolved), you are at balance. Thus, you want I to be equal to, or slightly smaller, than your throughput:
I <= W/T
Now comes the interesting part. From the definition of W, we can substitute:
I <= H*D*P/T
Since we are looking for H, we isolate it, as follows:
H >= (I*T)/(D*P)
This is your formula for the ideal staffing level.
Consider a 1st line operation with numbers thus:
I = 120*5
T = 0.5
P = 5
D = 8
Applying the relation we get H = 300/40 = 7.5
So probably 8 people for 120 calls per day over a week.
Consider a 2nd line operation with numbers thus:
I = 15
T = 20
P = 5 (one working week)
D = 8
Applying the relation we get H = 300/40 = 7.5
A team operating thus would need about 7 people in it, probably 8 to cater for peak times, sick times and time taken up by very difficult or large issues.