Production planning in very complex organizations

This post is an expansion of the last part of the post on Production planning and scheduling – methods for different organizational types. If you did not read it, please read it first.

This post, unlike my other posts, will be complicated and deal with the production planning of a very complex organization.

If you have a simple organization, you should read the post on Production planning in a simple organization.

What will cover

  1. What makes an organization a “very complex organization”
  2.  Examples of such organizations
  3.  How to plan the production in a very complex organization
  4.  Examples

What makes an organization a

“very complex organization”

  1. A very complex organization will have a high degree of uncertainty. That is why we can not do classic production planning. We can not assume which tool will run the production and we cannot assume when it will be.
  2. In this type of organization, we will have many steps and many flows for different products.
  3. Most customer orders are specific, not generic. That means the customer wants a specific product made for him or has a special package.
  4. Capacity constraints will not allow us to produce all at the same time, so we will have to manage queues on many resources. Those queues will be very dynamic since we have different priorities for every task and different tasks in a queue at almost any given time. Think about a supermarket cashier. You as the product can come to each queue in front of every cashier. If you are disabled or VIP you will get priority. No one knows in advance how many people will be in each line and how many “priority people” we will serve.
  5. 6. In addition to the dynamic queue and priority, the resource will try to batch some tasks together even if it is not FIFO since it wants to increase output per time frame. So sometimes, we will do a non-priority task before priority tasks. Let me give you an example:
    • Suppose that we are a factory that bakes cookies. We will have different batches of cookies coming to a queue in front of the oven to do the final baking. When the oven is available, we will put into it all the cookie trays available for the same temperature and baking time. Some cookies will need 30 minutes at 250 degrees, others will need 40 minutes at 200 degrees. Suppose that we have 4 batches that need 30 min. and 2 that need 40 min., although the 40 min. batches are more important for us.
    • What do you think will get into the oven in most cases if the oven manager wants maximal output? The 4 batches, as he will get much more output than by picking the 2 batches that require 40 min. in the oven. And that is why we might not have the most important batches go first. We will always have a “conflict” between the local maximum (the local manager who wants maximal output) and the global maximum (what the factory needs to supply first to the market).
      unnamed-file-300x204
  6. The output per hour in each combination of product+tool will be different. What does it mean?
    1. Different products on the same tool will have different output rates. Let’s look at the cookies example: We have cookies that need 30 min. in the oven and cookies that need 40 min. in the oven. This is a different output per hour for each type of cookies, hence a different output rate per product.
    2. The same product on a different tool will produce at a different output rate. Example: We can have an oven that can bake 500 cookies in 30 min. and a bigger oven that can bake 1,000 cookies in 30 min. We can see that the output rate is double in the bigger oven. Until the cookies reach the oven we have no idea which oven they will go in.
    3. We have no idea in advance when and where the cookies will do the baking. It depends on which oven is available and what is the state of the queue in front of the specific batch.
  7. Unknown yield per product. Our customer asks for a specific amount of units. We have no idea where there will be scrap in the process. If we produce too much of that product, we might need to throw it away, since the customer will not take it and the rest of the customers don’t need that product. If we produce less than the customer order, we will need to produce again since the customer wants the exact amount and we will have to extend the lead time.
  8. In a very complex organization, the customer might order a few items that he needs to deliver at the same time. Since some products are produced faster than others, we will need to have a storage place to store products for each customer order until all items are ready to dispatch. This storage place needs careful management or we will have to use a lot of costly storage space.

Examples

In the previous post, I gave 2 examples of such an organization. Now let’s expand the example based on the 8 points above:

Semiconductor Fab semiconductor-300x279

Sections 1+2: In a Fab, we have many products running on different flows (of production). Each flow contains 50-150 steps and the production can take 20-100 days. To make everything complicated the WIP in the FAB return to the same machine type many times during the flow. Now consider that you have 100 batches in the FAB (in most FABs you will have many more) running on different flows, while they keep returning to the same tool type at different stages of the flow. How can we manage it? What if one tool is down due to maintenance? What will the queue look like now? The real production planning is much more complicated than described.

Sections 3+4+5: Let’s say that we need to produce 2,000 units (wafers). Since it is a lot to start at the same time, we will deploy the material at the beginning of the flow gradually (or we will cause a bubble WIP). So after a while, we have the product spread all over the flow. Now suppose that after 20 days of production we have scraps. We need to insert new material (wafers) at the beginning of the flow and run it in a priority batch so that it reaches the rest of the material since the order will always wait till the last batch before it can be sent to the customer. The priority batch will be in a small amount and the section heads will not want to run it since it will reduce their output per hour.

Section 6: At almost every step in the production flow there is more than one tool that can run the batch. The tools run in different UPH (unit per hour) since they are not in the same configuration or might be from a different vendor or a different model.

Section 7: We have an average yield but can never say if a wafer will be scrapped or not. And since there are dozens of steps, it can happen at any step.

Section 8: Almost not relevant to FAB production.

Profile extrusion factory (mainly used for windows)Aluminium-300x222

The factory needs to supply a customer order with 80 different products that usually have lengths of 5-7 meters (so they need to be moved by cranes or custom forklifts).

The production for each customer order line starts with extrusion and then the oven. Then we need to cut it to the length of the order and send it to the painting section if we need to dress it in color. If we have the product in the inventory, we can pick it up from there instead of sending it to extrusion.

During the production process, we have no idea which batch will succeed in the extrusion and how much it will produce (sometimes the batch stops in the middle due to a problem with the die). When it reaches the paining section, between 1 and 5% will be scraped and we have no idea which one.

The order pickup might be very complicated since you need to move a lot of materials to reach one container and do it only with cranes and forklifts. The factory can have more than 10,000 different SKU and even reach 50,000 on an annual scale. Each day we will deal with over 1,000 different line orders that need to be picked up or produced and sent to be painted or not. You cannot use conventional planning software for this type of production planning.

How to plan such production

The main points:

  1. We need a dispatch list in each production unit (that list will be our production plan).
  2. The dispatch list will combine the priority level of the batch (global view) and the efficiency requirements of the current stage (local view).
  3. Constant online control on the pegging between WIP and customer orders allows us to increase the priority of batches that will not arrive on time.

What is a dispatch list?

I will explain on the cookie example:

Dispatch-example.png

Let’s assume that we have 10 batches of cookies in front of one oven. The capacity of the oven is 6 batches. The most productive thing to do is to take the pink (or light orange) batches and bake them for 18 minutes. Those batches will fill the oven and we will have the maximal available output per time. On the other hand, we can take the vanilla batches (30 min. 200 degrees) since batch No. 123 is the closest to its due date. If we do so, we can only bake 3 batches of cookies since no other cookies are waiting for a specific baking plan.

The planner of the system needs to decide what is more important: maximal output or shorter cycle time. If the oven is a bottleneck, then we will probably go with maximal output (pink/light orange batches). If the market demands short cycle times, we will start with the vanilla (orange) batches.

Let’s assume that we care more about shorter cycle time and put the vanilla cookies in the oven. What will we do when they get out? We will have to do the chocolate chip cookies (red batch), but that means we will bake only one batch in an oven with a capacity of 6 batches. Not very productive. So as planners we need another rule:

The top batch on the list will be the one with the closest due date if and only if there are at least 2 batches of this type.

That means that we will first choose the vanilla batch (that has 3 batches) and skip the chocolate chip (red) batch since we don’t have at least 2 batches in the queue.

But what will happen if there isn’t another batch of chocolate cookies in the next week? Will that batch be late? No. We will improve the rules and skip the rule above if the batch is one day before the due date.

Let’s rephrase the rules of the dispatch:

  1. Put the batch that has the closest due date at top of the list unless the list contains only one batch of this type of cookies.
  2. If we are 1 day away from the due date, skip rule number 1.
  3. If we have several cookie types that have the same due date, tie break them by the number of batches in line with the same cookie type.

This is what the list will look like after applying the rules:
Dispatch example-sorted

With this set of rules, we balance the due dates and the output. Notice that there could be more batches on the list at any moment and the list will re-sort itself according to the same rules.

We will put that kind of a list in front of every tool or work station with its special algorithm or parameters that depend on the tool capacity, setup time, production line loading, and so on.

In most cases we should take the following parameters into consideration:

  1. Sales priority – if the sales want to give a priority to specific customer order, this usually takes priority over any other rule.
  2. Delivery date simulation – we use simulation to run all the batches and see how far each batch is from the due date. We give priority to those which are late or about to be late.
  3. Blockage – sometimes we might have a blockage downstream in the flow. Then we will reduce the priority of the batches that are a step or 2 from the blockage. There’s no use in running a batch that will get stuck in an endless queue.
  4. Line balancing – if we don’t want a bubble WIP, we need to level the batches over the entire flow so that we won’t have to let the batches wait in a queue again and again.

I wrote a post on real-time dispatching and line balancing. Here is the link.

Actual dispatch list application

Let’s see how we can use it in a profile extrusion factory. I will demonstrate it on 2 major workstations:

  1. Extrusion – This is the action where we produce an aluminum bar from an aluminum billet using a shaped die:billet-to-shape
    1. Each day we can take customer orders for hundreds of different shape aluminum bars. Since we can only produce dozens each day, we produce some shapes for inventory and some for a specific customer order.
    2. Most production batches will include products that are for customer orders and replenish inventory. We plan to have the larger batch available to increase efficiency.
    3. In addition to batches that were triggered by a customer order, we have batches that we make for replenishing inventory. If the inventory is not replenished in time, we will have many more customers waiting for delivery.
    4. So at the extrusion station, we have many planned batches waiting for extrusion. The question is how we can sort them by priority.
    5. The extrusion manager wants to increase efficiency and has many constraints: he needs to do 10-15 small batches a day and needs large batches when some of the employees will be away for lunch. He has many other constraints, so he will not necessarily pick the most important batch.
    6. Other than that we try to work FIFO – first serve the earliest customer order. Sometimes sales can put a priority on a specific order.
    7. That is why we use a dynamic dispatch list. Running every few hours the algorithm creates a pegging report between the customer orders and the inventory + planned batches. After that, we can calculate the priority of each batch (this is complicated, so if it interests you, send me an email).
    8. When the algorithm finishes, it can give priority to each batch and then sort the list. The extrusion manager will pick from this list trying to work according to the sorted list.
  2. Painting:aluminium-painting-300x205
    1. Painting is done in a long batch of the same color with many different shapes and lengths of aluminum bars that will be painted one after another on the same paint batch.
    2. We will usually paint every color only once a week. If a bar needed for a customer order is not to be painted, it will have to wait a week.
    3. If the planner asks for a specific profile shape to be painted for an order, we will usually paint almost all the bars in the container. The rest will stay as inventory. But we need to take into consideration the time we’ll lose on painting 50 bars when we need only 2 for a customer order.
    4. The order of paint is usually determined by the size of the profile (a parameter) that is made for an increase in productivity.
    5. The paint dispatch gives the paint planners an always updated list so that they can plan the painting plan (the order of painting and the pickup plan from the containers). The planner gets the changing data between 7 hours and 1 week of the actual painting sorted by priority which makes the painting plan as efficient as possible while taking care of priorities.
    6. 6. The algorithm sorts all the material that needs painting in a specific color by the following priorities (ascending order):
      1. Customer orders that need painting and were approved a week or more ago.
      2. customer orders that need painting and were approved this week
      3. a product that we hold inventory for and is about to run out of stock
      4. other products needed in stock
      5. other products.
  3. Summary of the extrusion aluminum profile production:
    1. We use the dispatch to manage both customer priority and high efficiency (high outputs).
    2. Most customer orders are delivered in 50% of the time before we started planning and working with the dispatch.

Summary

In very complex organizations we must use a dispatch report to combine global priorities and local efficiency needs.

If we do not know what kind of WIP will be in a workstation, we cannot plan by any other methods.

The dispatch list contains a lot of logic which will always give us good results if we do it right, and we won’t need to rely on human planning that might be different and irrelevant by the time it is executed.

Dispatch lists are easy to make and do not need too much technology. We just have to make sure that the people working with them are measured not only by their throughput but also by their compliance with the dispatch result.

As always, I will be pleased if you press the like button, so I will know that you liked this post and I will write more.

Any remarks or comments feel free to send to:

ThePlanningMaster@gmail.com

Please leave a reply