Thursday, May 17, 2012

Differential Equations and Support Tickets

Slope fields are very useful in Differential Equations.
This one approximates the situation described below.

"It's been 3 days and my ticket still hasn't been resolved, this is bullshit"

"Why don't they just hire some temp support staff? Then they could just work through the backlog and then fire them and we'd have instantaneous response times."

I'm back with another entry that nobody asked for. Here I'm going to be talking about yet another practical use for mathematics that relates to World of Warcraft.

We often have to deal with situations where we have to wait for something to get resolved by someone else. And we'll find ourselves wondering why it's taking so long. We wonder why the queue is so long. We wonder why they don't just hire somebody else to work through the backlog.

The truth is that it probably wouldn't solve the problem. But looking at that is probably a question for differential equations. Normal equations relate to quantities. Here we'd be looking at the length of the support queue as a function of time or some other factor. For the purpose of this analysis I'll be looking at time. Often times it's incredibly difficult or impossible to come up with a function that describes certain situations. However, it can be relatively easy to come up with an equation that describes how a particular value changes.

You may have taken a calculus class at some point in time. You may remember that the derivative of a function describes how that function changes with respect to its variables. If we let Q(t) be the number of messages in the support queue at any given moment in time, then we'd be more concerned with
which is the rate of which Q(t) changes over time. So now we just have to ask ourselves, what causes Q(t) to change?

Well, Q(t) increases whenever somebody has some sort of error to report. And Q(t) decreases every time a petition is answered. So we might be inclined to say that
Where p is the rate at which petition-able items occur, and a is the rate at which the game masters can answer petitions. But that's not true. If the queue size is particularly large, people become less likely to submit a petition. We may do this because we're impatient or because it may be the type of issue that could resolve itself in that amount of time (say with a bugged mob). So I'm more inclined to say that the function more closely resembles.
Where k(q) is a function is always positive but decreases as q (the length of the queue/wait time) increases. It is the probability that a person will report their issue given the length of the queue. Now, if we presume that p and a are constants, meaning that petition-able items and the rate at which petitions are answered aren't affected by anything here, then our function is a differential equation of one variable, q.

So what does this mean. Well, if the queue is long, then q is high,  k(q) is small, and the value of our derivative is negative, meaning that the queue will get shorter. If the queue is short, then q will be small, k(q) will be higher, and the value of our derivative will be positive, meaning the queue will get longer. It turns out that if p and a remain constant, then the length of the queue will tend towards a value for which
 When the derivative is zero, that means that the length of the queue stays the same. So the length of the queue will tend to wards a particular length and then remain stable, provided p and a don't change. This is especially true of more demanding queues, such as the post office, where you must physically wait in line. It's still true for passive queues, such as WoW reporting system.

So hiring temp workers to reduce the queue length won't work, because once those temp workers are gone the queue length will return to normal. This is why it's very important for Blizzard (and other agencies) to create more automated support systems, so that smaller, easier-to-fix problems can be handled automatically and bypass the queue.