Descubrir cómo capturamos y modelamos todos los datos que tenemos disponibles para pronosticar nuestros niveles de servicio y determinar con la mayor exactitud posible nuestro requerimiento de personal (también denominado planificación de capacidad operativa o ‘CP’ por ‘capacity planning’) es un fanatismo de todos los que trabajamos en este blog. Viéndolo de arriba, parece bastante fácil lo que hay que hacer: hay cuatro datos básicos en nuestros modelos (volumen, tiempo de manejo, ocupación y utilización). Incluya esos números en algunas fórmulas, y ya está: necesitamos 150 FTE para cumplir con el próximo mes de SL.
No tan rapido! En palabras de
Blair McGavin: "he estado en esto por
cerca de 25 años, y nunca he visto a dos analistas o compañías hacer lo
mismo". Entonces, si todos estamos usando diferentes suposiciones,
definiciones diferentes y fórmulas ligeramente diferentes, y claramente damos
respuestas diferentes: ¿Alguno de nosotros está en lo cierto o estamos todos en
lo correcto? ¿hay alguna manera de demostrarnos que estamos haciendo nuestro
CP correctamente? En la Universidad, si en un examen usábamos una fórmula
incorrecta, un coeficiente incorrecto u olvidábamos un paso, sabíamos que
perdíamos 10 puntos y podía perjudicarnos. En esta materia que es el Workforce
pasa algo similar: ¿son correctos todos nuestros 'variados' métodos
CP? No ¿Hay alguna manera de demostrarnos que nuestros métodos son
sólidos? ¡Sí! Más sobre eso al final.
Repasemos el ABC-D de la capacidad operativa.
Hay una fórmula básica en la raíz de nuestro plan
de capacidad, que nos indica cuáles serán nuestros requisitos de
personal. La parte difícil es averiguar cuál es el valor correcto para
cada una de estas variables:
1. A = Volumen
2. B = Productividad
3. C = Ocupación
4. D = Utilización
Para transformar esta fórmula en personas, debiéramos dividir el resultado en la cantidad de horas de trabajo de un agente en el periodo pronosticado. Por ejemplo, si estamos hablando de volumen mensual, debiéramos dividir por 126 horas (suponiendo que los agentes trabajan 30 hs semanales por 4,2 semanas al mes). Si utilizamos el volumen semanal, tendríamos un factor de 30 horas en el denominador (porque trabajan 30 hs semanales).
Nota: Es
posible derivar sus requisitos de personal utilizando varios pasos en su
laberinto de hojas de cálculo, siempre y cuando la integridad de esta fórmula
no se vea comprometida.
Ahora, profundicemos en algunos de los desafíos que enfrentamos para determinar los valores correctos para cada una de estas variables.
Ocupado - El hotel está lleno
¿Por qué la Ocupación es incluso
una parte de esta ecuación? La matemática simple nos dice que si tengo
1,000 llamadas telefónicas para contestar, y nuestro AHT es de 6 minutos (10
llamadas por hora), podemos hacer los cálculos y descubrir que necesitamos 100
horas de trabajo para responder esas llamadas [1000 llamadas / (10 llamadas /
hr)] = 100 horas. No tan rápido… todo va bien hasta que descubrimos que las
llamadas entran en forma aleatoria, y empezamos a abandonar clientes que no
encuentran a un agente libre para que los atienda. ¡Y a esto se suma que no
todas las llamadas duran 6 minutos! Algunas duran 10, otras 2…
En primer término,
la ocupación nos indica qué porcentaje del tiempo en el que nuestros agentes
están conectados y disponibles para recibir contactos, se encuentran
efectivamente ocupados hablando con los clientes. Un agente con 90% de
ocupación tiene un 10% de tiempo de inactividad entre llamadas.
Nota: es posible que en algunos
centros de contacto se utilicen variaciones de esta fórmula, por ejemplo, incluyendo
el ringtime dentro de los tiempos “ocupados”. Lo importante es que el numerador
y el denominador sólo se diferencien por el tiempo disponible (avail), ya que
el objetivo de esta métrica es calcular la participación de este indicador en
el tiempo total.
Entonces, ¿por qué
tenemos que dar cuenta de la ocupación y agregar tiempo adicional a nuestros
modelos de personal para cumplir los objetivos de nivel de
servicio? Es porque estamos gestionando un
proceso 'en tiempo real'. Los procesos en tiempo real no
se comportan como una actividad de back-office. Existe una variabilidad en
el comportamiento de cómo llegan y se procesan los clientes dentro del sistema:
cómo llegan las llamadas (de manera uniforme o alguna distribución extravagante
como Poisson), cuántas llamadas llegan en relación con nuestro
pronóstico y cuánto tiempo la llamada ocupa a un agente: una llamada puede ser
de solo 2 minutos y la siguiente llamada puede ser de 9 min (generalmente se
supone que estas dos variables siguen una distribución exponencial).
Las fórmulas de
Erlang intentan ayudarnos a cuantificar la variabilidad en el proceso y nos indican
cuál será nuestra ocupación para cumplir con los niveles de servicio objetivo. Descubrir
nuestra "verdadera" ocupación en el nivel de servicio es el
"Santo Grial" en todo este proceso. La variabilidad es el enemigo. Cuanta más variabilidad
tengamos, menos eficientes seremos y disminuirá nuestra ocupación y aumentará
nuestra dotación de personal. Consulte el gráfico modelado 'profesionalmente'
a continuación:
En volúmenes bajos,
hay MUCHA variabilidad en la cantidad de llamadas que recibirá nuestra dotación. En
volúmenes altos, el proceso se comporta de manera mucho más predecible, tanto
por la cantidad de llamadas que llegan en relación con el pronóstico, como por
el AHT promedio que tendrán nuestros agentes. Esto último significa que el
proceso será más predecible, lo que se traducirá en una mayor ocupación y mayor
productividad. Esto es similar al concepto de variación de 'agrupación de
riesgos'. Este principio de gestión de la variabilidad se utiliza en la
gestión de inventario y en los mercados financieros con la compra de un fondo
mutuo en lugar de acciones individuales.
Ocupación derivada
Si pudiéramos
mostrar nuestra ocupación pronosticada (para el nivel de servicio objetivo), en
función de los valores de ocupación según la fórmula de Erlang, se vería algo
como el gráfico a continuación:
Y luego, si tomamos
un cálculo del promedio ponderado real en todos los intervalos del día y obtenemos
un valor de ocupación del 80% (suponiendo que Erlang es exacto, lo cual no es así),
¿es ese el valor que querríamos utilizar en nuestro plan de capacidad?
La respuesta es no. Hay otra cuestión en juego
aquí, y es nuestra eficiencia en el armado de la programación. Los
horarios mal alineados nos costarán más, resultando en una menor ocupación. Para
explicar mejor este punto es conveniente pensar en los horarios de nuestro
personal como bloques LEGO: imaginen que tienen que reproducir la curva de
tráfico pronosticada a nivel diario, utilizando bloques LEGO para armar la M o
doble joroba. Podríamos imaginarnos 2 situaciones comunes en nuestros centros
de contacto:
1.
Tenemos bloques de un único tamaño
(por ejemplo, 8hs), los cuales programamos en 2 turnos con igual horario de
ingreso, de forma tal que tenemos una doble meseta:
2.
Tenemos bloques de diferentes tamaños
(8hs, 6hs, 4hs), los cuales programamos en diferentes turnos y horarios con el
fin de “copiar” mejor la curva:
¿Les parece que
ambos esquemas tienen la misma Ocupación? Si no logramos ajustar nuestro
requerimiento de personal a la curva de horas necesarias surgida del
pronóstico, estaremos incrementando nuestro tiempo disponible (avail) por
encima de lo estimado por Erlang.
Entonces, ¿cómo
podemos explicar todas las fallas en Erlang y TAMBIÉN cuantificar las
ineficiencias en nuestros horarios? Hay un truco de modelado bastante fácil
que nos dará la respuesta:
---
Podemos construir
un diagrama de dispersión con los datos de nivel de servicio y ocupación, y nos
dará la respuesta que estamos buscando. El NS podría ser ASA o %NS en XX
segundos. Hay 3 niveles diferentes en los que posiblemente podría modelar
sus datos: Intervalo, Diario o Semanal.
Para este ejercicio
consideramos que lo más conveniente sería ver sus resultados diarios. Hay
algunos trucos para construir estos diagramas de dispersión, pero afortunadamente
es bastante sencillo:
- En lo posible usa 2-3 meses de datos recientes
- Eliminar manualmente o eliminar puntos de datos que son valores atípicos obvios.
- Si ciertos días de la semana (como los fines de semana), tienen un volumen considerablemente diferente (lo cual afectaría la variabilidad), será conveniente construir modelos por separado: 1 para los días de semana, más otro para sábado y domingo. Recuerde que la ocupación es sensible al volumen, por lo que tendría dos respuestas diferentes.
En el ejemplo
anterior, el punto de equilibrio para el objetivo NS del 90% de las llamadas
contestadas en 30 segundos, es el 73% de ocupación: este el valor que usaría en
la fórmula de horas necesarias indicada al comienzo. Este método está muy lejos
de ser un sustituto preciso para reemplazar a Erlang para el pronóstico a nivel
de intervalo, pero hará un buen trabajo para la planificación de capacidad
operativa de alto nivel a largo plazo.
Esta es la primera
parte del artículo escrito por Blair McGavin sobre Capacity Planning. La
Parte 2 incluye el análisis de reductores, los tiempos operativos o de manejo,
e incluso una buena referencia a Misión imposible. Esperamos tener traducida la
misma para el próximo domingo. Si aún no se ha suscrito por correo electrónico
a este blog, asegúrese de hacerlo para no perderse la Parte 2 y los futuros
artículos semanales.
Estamos en contacto.
Mariano.
---
Artículo original disponible en: https://wfmanagement.blogspot.com/2018/12/capacity-planning-basics-part-1-of-2.html
Autor: Blair McGavin
Revisado y traducido al español por: Mariano Samamé
Uso una metodología alternativa, que resulta bastante bien.
ResponderBorrarPara LOB's de mas de 20-30 Agentes: Pronostico a L/P usando una mezcla de series temporales, regresión no lineal con dos variables "x"; media móvil de 12 periodos y media móvil de 2 periodos. Se obtienen los Indices estacionales, los normalizo. Se calcula la regresión y se ajusta con un "Alfa". Una vez que tengo un año proyectado con un r2 >= 0.95, los valores mensuales los llevo a intervalos (previo análisis de curvas patrón) junto con los respectivos TMOs históricos vigentes y extrapolables. Tengo las herramientas para aplicar modelos Erlang B + C por intervalos para un año completo. De ahí obtengo las Horas posibles de atender ACD, luego aplico los reductores por intervalo (ABS, Rotación, atrasos, vacaciones, bajas médicas...) mas los auxiliares y obtengo las Horas requeridas o necesarias, por día, esto lo llevo a totales día, semana y mes. Calculo los RAC's según la siguiente formula =((Hrs.Requeridas semanales * 12 *4.3)/2079/(39/45) donde 2079 son las horas productivas del país y la resultande de (39/45) es el turno promedio. No obstante en paralelo tengo una aplicación construida con Open Solver que resuelve y realiza el mejor ajuste en torno ala curva necesaria (óptima) de una batería de mas de 800 turnos (de Lunes a Domingo y diferentes condiciones contractuales) Tal como lo hace el eWFM de spect Software (ocurre que conversaba mucho con el desarrollador en USA, algo me enseñó). Este ejercicio en condiciones normales muestra una correlación superior a 99%, es decir el ejercicio con lanzamiento de turnos coincide con los Agentes teóricos y también las Horas.E sto es rápido. Auxiliado con Macros y VBA, los que he aprendido bien.
Wow! Qué buen primer comentario del blog! Tenemos que ampliar este tema!
Borrar