PROGRAMACIÓN A CORTO PLAZO


La programación a corto plazo puede considerarse como el último eslabón de la planeación de la producción; esta etapa consiste a grandes rasgos en ajustar tareas u operaciones particulares a personas y máquinas específicas. Su horizonte de tiempo está dado en días, horas y minutos; razón por la cual requiere del profesional que la desarrolle, pericia, dinamismo, y practicidad en su ejecución.

El grado de influencia de la programación a corto plazo en los resultados de la compañía es determinante, ya que de ella depende el cumplimiento de los plazos de entrega, factor crítico en la búsqueda de una ventaja competitiva basada en el tiempo.


PROGRAMACIÓN A CORTO PLAZO EN EL HORIZONTE DE PLANEACIÓN



Los programas a corto plazo convierten lo establecido en la planeación agregada, y los entregables de los planes maestros de producción en asignaciones de cargas y secuencias muy específicas de fuerza laboral, materiales y maquinaria. Su principal objetivo es cumplir con las metas de demanda de acuerdo a la capacidad disponible; una programación a corto plazo puede efectuarse de muchas maneras, el tipo de programación que se utilice para asignar las cargas depende en gran medida del enfoque del sistema productivo, y la secuencia depende de los criterios de programación que primen teniendo en cuenta los factores que afecten el proceso.


TÉCNICAS DE PROGRAMACIÓN


Las técnicas utilizadas en la programación a corto plazo se pueden clasificar en:


Programación hacia adelante: Esta programación se inicia tan pronto como se conocen los requerimientos de producción, utilizarla implica en gran medida desconsiderar la fecha de entrega, y es utilizada usualmente en procesos que trabajan sobre pedido, en los que la entrega se requiere lo antes posible, por ejemplo en restaurantes, centros de belleza, hospitales, talleres satélite dedicados a la maquila, etc.


Programación hacia atrás: Esta programación inicia con la fecha de entrega del pedido, su principal consideración es cumplir con los plazos de entrega pactados o establecer plazos alcanzables. La dinámica de esta programación consiste en programar en primer lugar la operación final, y sucesivamente las operaciones que la anteceden en orden inverso.



CRITERIOS DE PROGRAMACIÓN


La elección de la técnica de programación correcta depende de múltiples factores, entre los que se destacan la naturaleza del proceso, la flexibilidad de los centros de trabajo, el volumen de los requerimientos y la consideración de los siguientes criterios por parte de la compañía, la importancia que se le dé a cada criterio depende en gran medida de las ventajas competitivas consignadas en el plan estratégico.



1. Maximizar la utilización: Consiste en el uso que la técnica empleada haga de la capacidad instalada.



2. Minimizar el tiempo medio de terminación: Consiste en la capacidad que tiene la técnica para efectuar entregas de pedidos, es muy bien estimada por la parte financiera dado que optimiza los flujos de dinero de la empresa.



3. Minimizar la media de trabajo en proceso: Consiste en reducir el número de trabajos que permanecen en el sistema.



4. Minimizar los retrasos de los pedidos: Consiste en reducir el tiempo medio de espera de los clientes, teniendo en cuenta las fechas de entrega.



Vale la pena aclarar que estos criterios no son técnicas de programación, ellos son indicadores de desempeño de las reglas de programación y secuenciación que abordaremos más adelante.


1. Fase de la programación: Cargar o asignar trabajos


La asignación o carga de trabajos representa una base de la programación, el profesional que desarrolle dicha programación deberá en primer lugar asignar operaciones entre los centros de tal manera que minimice costos de operación, tiempos de terminación, tiempos de ocio, respete cronogramas de mantenimiento preventivo, etc. Existen técnicas y herramientas que buscan optimizar, simplificar y flexibilizar esta tarea de asignación, entre las que se destacan el método de asignación, y el uso de diagramas o gráficas de Gantt. Lo recomendable, siempre y cuando el tiempo del que dispone el programador lo permita, sería partir de la asignación y enseguida desarrollar Gantt. 


Vale la pena recordar que el método de asignación funciona con la premisa de que a un sólo centro de trabajo se le asigna una tarea u operación, si el proceso comprende una complejidad mayor, lo ideal es pasar a los diagramas de Gantt.

Diagramas o gráficas de Gantt

Fallas, ausentismos, imprevistos, problemas de calidad, programas de mantenimiento preventivo, operaciones simultaneas, disputa de recursos, entre otras, son variables sumamente complejas, que requieren del desarrollo de una modelación robusta si se aborda desde la perspectiva de optimización. Además, al tratarse de la programación una tarea cuyo horizonte está dado en días, horas y minutos; las variables que la afectan se comportan con un dinamismo tal, que precisa de herramientas que proporcionen total flexibilidad y simplicidad para su ejecución. Las cartas, diagramas o gráficas de Gantt, constituyen una ayuda visual muy útil para determinar cargas de trabajo, tiempos de procesamiento, tiempos de flujo, balance de operaciones, tiempos ociosos, disponibilidad de centros de trabajo, entre otros indicadores de programación.


Es usual que en la práctica áreas como mantenimiento soliciten a la administración de operaciones fechas disponibles para efectuar ajustes en el proceso, o áreas como recursos humanos soliciten espacios para divulgaciones o capacitación; los diagramas de Gantt proporcionan una estimación muy útil para determinar estos espacios.

El anterior es un ejemplo de diagrama de Gantt de un proceso de 4 operaciones y 4 órdenes de trabajo. A partir de este diagrama podemos identificar los tiempos de terminación de cada orden, de sortear la disponibilidad de centros de trabajo, y de obtener fechas en las cuales no existe programación, información útil para áreas como mantenimiento, o disponibles para balancear otras órdenes. La flexibilidad del diagrama depende de la actualización constante del mismo, para de esta manera poder considerar nuevas estimaciones de tiempo dependiendo de situaciones inesperadas en el proceso.


2. Fase de la programación: Secuenciación de trabajos

La base de la programación, tal como ya se mencionó, es la carga o asignación de tareas, de tal manera que en dicha fase pueden identificarse múltiples variables relacionadas con la capacidad del proceso. 


La siguiente etapa en el desarrollo de la programación corresponde a la secuenciación, orden o despacho; en esta etapa se define el  orden en que deben atenderse las operaciones en cada centro de trabajo. La siguiente pregunta que debe formularse el programador es ¿Qué determina el orden de asignación de mis operaciones?, bueno, pues muchos expertos coinciden en que existen tantas reglas de prioridad como especialistas de programación, sin embargo, las reglas de programación más aplicadas son las siguientes:

Principios de prioridad para la secuenciación de trabajos

PEPS - Primero en entrar, primero en servir (First Come, First Served)El primer trabajo en llegar al sistema se procesa en primer lugar.


TPC - Tiempo de procesamiento más corto (Shortest Processing Time): El trabajo que tenga el tiempo de proceso más corto se procesa en primer lugar.


TPL - Tiempo de procesamiento más largo (Longest Processing Time): El trabajo que tenga el tiempo de proceso más largo se procesa en primer lugar.


FEP - Fecha de entrega más próxima (Earliest Due Date): El trabajo que tenga la fecha de entrega más próxima se procesa en primer lugar.

Los principios o reglas de prioridad no deben confundirse con los criterios de programación, puesto que estos principios proporcionan una secuencia de procesamiento que tendrá unos indicadores de desempeño (criterios de programación), la elección de la mejor secuencia se relacionará con las políticas de la compañía y como se ve afectada en dichos indicadores (tiempos de espera, utilización, retrasos).

Ejemplo de aplicación de los principios de prioridad en la secuencia de trabajos

En el siguiente ejemplo 4 órdenes deben ser asignadas a un centro de trabajo, dichas operaciones consisten en piezas en acero inoxidable, cada una presenta características dimensionales distintas, para ello se cuenta de una máquina C.N.C, dotada de todas las herramientas capaces de entregar la pieza conforme a las especificaciones de cada orden de trabajo. Los tiempos de procesamiento y fechas de entrega (dados en días) varían de una orden a otra, conforme estas órdenes fueron llegando se les asignó una letra del alfabeto para facilitar su identificación.

Para este caso, analizaremos los principios de prioridad y mediremos los indicadores de desempeño (criterios de programación) de cada uno de estos.

Tiempo de flujo: Tiempo que lleve la orden en el sistema, este indicador se puede obtener como un tiempo de procesamiento acumulado.

Retraso: Si la fecha de entrega es menor que el tiempo de flujo de una orden determinada, su retraso será igual a la diferencia entre fecha de entrega y tiempo de flujo, de lo contrario será igual a cero.

PEPS - Primero en entrar, primero en servir: Secuencia A - B - C - D

TPC - Tiempo de procesamiento más corto: Secuencia A - C - D - B

TPL - Tiempo de procesamiento más largo: Secuencia B - D - C - A

FEP - Fecha de entrega más próxima (Earliest Due Date): Secuencia D - C - B - A

La elección de la secuencia óptima dependerá entonces de la importancia que tenga cada uno de los criterios para la organización.


Secuencia de N (más de dos) trabajos en 2 máquinas


La secuenciación tiene distintos niveles de complejidad, anteriormente veíamos como se aplicaban principios de prioridad para elegir el mejor orden para procesar distintas operaciones que pasaban por un centro de trabajo; el siguiente nivel corresponde en determinar la secuencia para efectuar el mismo proceso pero esta vez para dos centros de trabajo. 


En la industria, y por muchos años la regla de Johnson se ha aplicado con gran éxito para minimizar el tiempo de procesamiento global. Esta regla la detallaremos en el siguiente artículo: