Production planning and scheduling- Methods for different organizational types

Production planning and control is always a big challenge for large organizations. Control and optimized production can help an organization leap forward for better cycle time and less inventory.

What is scheduling and production planning and control?

At its best, scheduling and controlling, production refers to creating a scheduled (or prioritized) list of tasks for every machine. The list should maximize the output of each tool while keeping cycle time as low as possible for the whole production flow.

I will refer to 3 types of an organization from the easiest to the most complex:

1. Classic and simple organization

  1. Production planning for an organization that has tools (machines) that basically load raw material, process it and create a product. There might be other steps in the production process, but there is no other production process that competes for the same resources. Example: Let’s look at an eco-friendly disposable plastic plant that produces plastic forks and plates. Both products run on the same machine. The production planner will firstly schedule the fork batch to produce a million units and then the plate batch (after finishing the fork batch). Since we start one batch after the other, we can easily schedule it. After creating a list of jobs we can use the standard time to figure out when to expect each production to end. This kind of schedule can easily be done using excel files or simple scheduling software. What are the challenges of this type of planning?
    1. Decide how to prioritize the batches. There can be one or more of the following parameters: earlier promise dates, FIFO, sales priority, customer priority, or any other relevant parameters. Of course, we can use more than one parameter.
    2. Plan your production with the shortest possible setup time. Optimized setup times will increase output.
    3. If there are a few machines that can produce the same product, we can run a simple optimization algorithm that can help us optimize the scheduling to get more output and less downtime.
    4. The scheduling plan in a simple “rubber duck production plan” will look like the following table for each production tool:

    production planning - duck machine

A post about production planning is simple organization available: here.

2. More complex production organization

This type of organization uses a few steps to produce a product. At this type of organization, some of the resources are used for more than one production line. The result is the need to directly schedule the use of each shared resource to avoid unnecessary delays. Production planning in this type of organization is challenging but feasible.

The following example shows shared resources in dairy production:

From this figure, we can see that we have 2 production lines that use common resources: weighting and packaging. Now that this is easy, let’s assume that we have 20 production lines that use the same resources. Now we need to schedule those resources so that the main process on each production line will have minimal delay time due to common resources. Let’s add some constraints, such us minimal delay times between phases (for example wait 30 min. for cooling before packaging), products that are not allowed to be produced one after the other without major cleaning (for example, a regular milk product followed by lactose-free milk product). The most complex production organizations have many constraints that need to be taken into account when they plan the production.

Fortunately, we have a lot of production planning software that can help us schedule and optimize production planning. The software takes most of the constraints into consideration and the result usually is a production schedule for every resource usually shown on a Gant chart. The output usually looks like this:

The same batch is running on different tools for different production phases.

The scheduling software can be integrated with the organizational ERP so that it will read, process, and write data back to the ERP. It can also be a standalone software that only reads data from the ERP and creates a standalone production plan for each tool.

In the past, I used good software called Adexa and niche software products. Almost all of them do the same with different ways to add constraints and a little differently optimized algorithms. The most important thing is that you implement it wisely and it should be as fully integrated as possible so that you can run it whenever you want.

For any planner that plans in a complex organization without a scheduling software, I recommend implementing this kind of software fast. It saves a lot of time and gets your money back by reducing downtime.

Hopefully, I will soon add a more detailed post on production planning in complex organizations.

3. Very complex organization

For a full post on production planning in very complex organizations read this post.

In a very complex organization, we cannot schedule the production ahead since the process is too complex, usually due to a lot of phases.

Scheduling in a very complex organization is almost impossible since many batches try to use the same resources and there is a job queue for many tools. We cannot predict what this queue will look like in future and therefore cannot predict which batch will go at what time on each tool. Very complex organizations usually have one or more of the following parameters:

  • many production phases for every product
  • capacity constraints that do not allow all batches to find free tools in each production phase
  • the output per hour will be different for every product and even the same product on different tools will have different output per hour
  • the number of goods after the production phase is unknown, we cannot predict the phase where we will scrap X percentage of the products
  • some WIP (work in progress) will need to wait for other WIP that will allow us to integrate them into a product or send both of them to the customer in the same shipment.

2 Very complex organizations that I worked at:

Semiconductor FAB: there are hundreds of tools on the production floor. Each product runs on a flow that has between 40 and 200 phases. Many tools can be used for more than one phase in the production flow (the material runs on a machine and gets back to a similar machine after a dozen steps). There is always a conflict between running more batches an hour on each tool or running the “right” batches so that we will not have WIP bubbles.

Aluminum extrusion: each order consists of 1 to 80 profiles with different lengths that need to be sent to the customer together. We don’t know when the profiles will be produced, we don’t know if the production will be enough to fill the order since not all production runs smoothly. We have no idea when the products will go through other production phases since there are many constraints. Every tool downtime will change, down the stream, the scheduling by far. We need to supply 10,000 different products at any given time. We get more than 400,000 order lines each year of more than 50,000 different products. Most products run on the same production lines and need to be batched for every phase to increase output and reduce cycle time. Of course, there is no use in running a scheduling software that will have more than 10,000 batches scheduled at the same time.

So how to control the production?

The solution is to create a prioritized job list (or queue) for each tool that will list all jobs waiting to use the tool. The order of the list needs to consider local optimization, which means doing the jobs in the order that maximizes the output and reduces setup time. On the other hand, the list needs to take into consideration the big picture to reduce the cycle time of each product and prioritize what is important.

The solution is called Real-time dispatch (or just “dispatch”)

How does dispatch work?

We have a central planning software that gives every tool a list of all the jobs waiting to be processed with that tool. Each list is prioritized according to the relevant tools, the jobs waiting for it, due dates, and other global parameters (such as avoiding WIP bubbles and processing batches that go into the next phase by a tool that is expected to have long downtime, etc.).

For the dispatch to correctly prioritize all the different jobs on every tool the dispatch algorithm usually takes into consideration:

  • Due dates: each batch (or a lot) gets an estimation of how long it has until reaching the end of production. That value is compared with promised due dates. If a batch is late or about to be late, it gets prioritized so that it will move faster than other batches.
  • Problems down the line for some batches: not all batches do the same processes in their production flow. So if we see that a step or 2 ahead we have a tool that is necessary but doesn’t work, or if we see a WIP bubble ahead, there is no reason to send more batches that will get stuck there. We will look for less important batches that go to places where they will not get stuck.
  • Line balancing: for us to get a smooth flow of WIP in the plant we need to have WIP at every stage. Each stage should have not too much, nor too little WIP. For example, if we have too much WIP at one process stage, the batches will have to wait a long time to be processed. If we have less material in a stage, we will have tools idle waiting for the next batch to arrive. So for every station in the dispatch, we will try not to process batches that go to a stage where they will get stuck in line. We will promote batches so that their next process is to go to idle tools.
  • Local optimization: every tool can process more batches at every given time if we sort the batches according to an optimized list. For example, if we have an oven that can process 8 batches at once at 100 degrees or 250 in another process. If we pick the process that has the most waiting batches, we will get better output.

The dispatch calculates (we can change it to run once every X minutes or hours) the priority of each job waiting in line in front of every tool in real-time. The priority may be changed when the next iteration runs. The jobs queue is presented to the operator that picks and processes the next batch. This is what it looks like:

Dispatch – prioritize jobs waiting to be processed on a resource

Advantages of real-time dispatch:

  1. Allows us to control the production with algorithms that are not too complex.
  2. The system prioritizes from scratch every time there is a change in the production process or tools.
  3. We don’t need to plan ahead since the order of events is not too complex. We make the right choices at every stage and that’s how we move the batches forward.

Disadvantages of dispatch:

  1. You need a different mindset. That is not easy for everyone.
  2. There is no due date for the client, there’re only estimations.

Dispatch summary:

This method works very well in a very complex organization that cannot use other methods. The algorithms are usually very easy and very clear (although in semiconductor some algorithms can be a little tricky).

I like this method since it always works smoothly. We don’t need to create new production plans on every change (such as downtime of a tool or set of tools, a new prioritized customer order entered, the material gets scrapped and new material replaces it, etc.). The algorithm generates new plans without the need for the planner to be there.

Want to know more about the dispatch mode?

You can read the post on how I implemented the dispatch at a semiconductor fab.

I will be happy if you leave a comment or send me a note to theplanningmaster@gmail.com

5 comments

  1. What software would you recommend for the more complex organizations? I would want to see the bubble of inventory waiting at each step. I have many different processes with varying degrees of complexity on routings. So I would need something that could handle those constraints.

    1. Hi Cheryl,
      First, let me say I am sorry for seeing your comment a month after it was written.
      Unfortunately, I am not sure I can give you the right answer you are seeking.
      Software that can help you with very complex production you can find in semiconductor FABs. It is usually the software that will run their “Dispatch.”
      15 years ago, I used Brook’s RTD (real-time dispatch) software. Since then, I have just developed my own software since I couldn’t find any good software at a reasonable price.
      I do think that we can break your problem into different small problems, and maybe we can find a solution within your system.
      Now, assume that I have no idea where you work and the kind of software you are using 🙂
      So, let’s give it a try:
      I assume from your question that you have the following problems:
      1. Find the current WIP bubble or bubbles.
      2. Untangle the WIP bubble.
      2. Decide for every workstation what is the best WIP to process now.
      3. Foreseeing the next WIP bubble before it will happen.
      4. I guess you will also wish to reduce the cycle time since complex production with many different routes that are not managed in real-time usually creates high cycle time.
      So, let’s try to figure out how to do that:
      1. Although you have many routes, you need to create 1-2 routes that fit all. Very easy to say, not so easy to do. Since I have no idea where you work, let me explain how I did it in a semiconductor fab. We had 30-50 routes that were different from each other but not too much different. The wafer entered the FAB. It usually got to an oven (with many different recipes, but it was still an oven stage). It went to different types of processes, but all of them were early stages processes, then they did other intermediate processes and so on. I noticed that I could create a route that will contain all the processes one after the other. There were no products that went over all the steps of the one route that I created. Let’s call it the “Route map,” so I can easily explain. Now that we have the “Route map,” we can put each product running on the XXX route on the “route map.” We know from the original map what process it is now and what are the next processes. And we can find the next processes on the “route map So, I hope you understand the last sentence 🙂
      Now that we can put all the WIP on one “Route map,” we can see the WIP bubbles without a problem, and we can give priority to products that are not heading to the WIP bubble so we can untangle the bubble. After doing that, you will reduce your cycle time by many percentages.
      I think that my explanation might be too much for one time. If it helps you and you want to ask more questions and let me answer questions that relate to your case, then you are welcome to leave another comment here or send me a mail to: theplanningmaster@gmail.com

      Again, sorry for the very late respond,
      Gal

Please leave a reply