What is a supply chain process, really?
By training and laziness I guess I have always been interested in getting things done efficiently and avoiding unnecessary expenses of energy, therefore the optimization bit. I started in this business in the 70’s by designing and programming software to optimize operations planning. It wasn’t called supply chains operations yet and the word logistics had not reappeared since the time of Napoleon. At that time Napoleon had created a function called “maréchal des logis”, the man whose job was to find and organize (marshal) dwellings (logis) for the army, hence the name “logistics”.
My work is supposed to be supply chain optimization. In this expression, supply chain optimization, one perceives supplies being transferred from one point to another through a number of transshipments points in an optimal way. The process requires organization, planning and control. It requires decision making. It requires forecasts to help with decision making. It requires data to help with forecasting. Part of the process can probably be automated; it can be programmed into a computer and optimized. But in most cases a shadowy area will remain where the process needs to take into account unexpected or fuzzy data. In that case human beings will replace, complement, the computer. How do you design such a process then? What type of human beings does it require? Does it even require human beings? This is the subject of this blog.
Can you optimize processes? What is a supply chain process? Forecasting for example is a sub-process of the planning process. Planning sufficiently far ahead requires forecasts. A process has inputs and outputs and a recipe to transform the inputs into the outputs, just like a computer program transforms inputs into outputs given the input data and the set of rules to manage this transformation. For example take the process “multiply by n”. If you are a computer you can add the input (the number 15 for example) to itself n times. If you are a human being a better recipe relies on multiplication tables of digits. So the recipe can be different for a person or for a computer. The recipe or the process tells you or the computer how to perform multiplications. Here the recipe is called an algorithm (named after the 9th century Persian mathematician and astronomer Abu Abdullah Muhammad ibn Musa al-Khwarizmi) and although the algorithm differs when run by computers or people; the result should be the same. This is not always the case.
The difference between a process and an algorithm lies in the timely use of the judgment of human beings in the sequence proceeding from the inputs to the outputs. Judgment can hardly be called an algorithm. When you use an algorithm the set of inputs always generates the same output (unless you have programmed randomness in the recipe). When you use a process where the judgment of human beings is required the result depends on the state of mind, the intelligence of the person involved. Randomness is built into the system. Take a forecasting process for example. A simple process could be formulated as: ask the sales force how much they think they will sell in the following 6 months. The sales force may use intuition backed up by all the information it has accumulated on its’ customers over the years plus additional information on new products, competitor actions in the future, direct information from the customers… The process is simple or so it looks. After all you are getting the result of the race from the horses’ mouth or so it seems…But in reality the sales person may have conflicting objectives in providing a forecast. If the forecast is used in procuring a sensitive product then the sales person may be worried he will not get enough of the product and be tempted to overestimate. If the forecast is used as a sales objective with a bonus when the objective is attained then he may be tempted to underestimate. He may also be optimistic because he just made a big sale or pessimistic. So the process is simple, not overly costly, and highly dependent on the quality of the human beings in the sequence?
Then the question becomes “why do we need human beings”, a philosophical question probably. Since my reader is a human being (apart from the Google machine scanning this object) he will resent the question. The answer is “we need human beings where machines cannot tread”. Computer algorithms cannot for the time being, for certain types of problems, grasp all the complexity inherent to changing environments. They are programmed to cover more and more challenging situations but they are fed certain types of data to yield results. They cannot perceive data they are not fed. In the forecasting example suppose we use an algorithm to extrapolate past sales into future sales. It will do exactly that with more or less sophisticated statistical methods and models of the past to be reproduced in the future. But if the algorithm is not programmed to anticipate the probable loss or gain of a large customer it will predict the future as an extension of the past, just as a horse with blinders will see the road ahead and not peripheral potential hazards. This is where the human being intervenes. And the more sophisticated the algorithms, the more we need intelligent human beings to complement the robot, spotting events unforeseen by the computer, estimating their impact on the result. Let’s look at the process, say in the forecasting example explained in the preceding paragraph. Suppose that in this process we can have access to software which extrapolates the past into the future. Then we can design the following process
- Human being:
- Look for special events in the recent past which may have had an impact on the result and which the software cannot deal with.
- Estimate the impact of these special events on past sales.
- Normalize historical data by erasing this impact from historical data.
- Computer:
- Run the algorithm with this normalized data
- Output the forecast for demand as if no special event should occur in the future.
- Human being:
- find out if there are any special events planned for the future
- If so, estimate the impact of these events on future sales.
- Add this impact to the computer forecast
- Yield the final result.
This describes the process run by most consumer goods companies. If we want to improve the process without modifying it structurally, we can either improve the algorithms run by the computer or we can improve the forecasting ability of the human being or both. We can also modify it structurally, meaning we can change the structure of the process or the role assigned to the human being and the computer.
In the first case, without changing roles assigned to the computer and to the human being, we will in the preceding process find a better way for the computer to forecast the future, for example a better model for exotic products sold episodically. If we want to improve the way the human being operates we can give him a better training or select someone more adapted to the forecasting of special events task or increase his motivation or…So if we don’t change the allocation of tasks between computer and human being we will continuously work on improving both actors in the process.
In the second case, changing roles in the same process probably means increasing the role of the computer and decreasing the task of the human being. In our example this could mean programming the computer to detect special events having occurred in the past, analyzing and modeling their impact on normal sales in order to be able to forecast the impact of future special events of similar types on the forecast. The task assigned to the human being will then be to identify future special events and feed them into the computer. The computer becomes more intelligent, the human being more of a controller and data feeder. The output will probably be more homogeneous in quality. The quality will depend much less on the quality of the human being. It will depend more on the quality of the designer of the algorithms in the computer; and this can always be improved.
So, why do we need human beings in a process and what type of human beings? Or why do we need computer algorithms and what type of algorithms?
In fact we need both human beings and computers. We need computers and algorithms for their raw computing power, the knowledge base and the intelligence we can feed them over time, the connectivity they provide between actors in the process. We need human beings for their ability to interface with the world outside the computer, to fill in the gaps where the robot cannot proceed.
The type of human being we need should be completely correlated to the type and quality of the algorithms in the computer and the converse should be true. The crudest the algorithm, the more we have to require from the human being. This has always been the case in the history of the industrial revolution from Henry Ford and Frederick Winslow Taylor to our day. Before the revolution there were only craftsmen, some very talented, some not so talented. Becoming competent required many years of training with several masters. Then we started to decompose production since it was becoming too complex for one person. And we recomposed it into an assembly line (a manufacturing process) where smaller tasks were assigned to individuals. F.W. Taylor was the one who became interested in the man-machine relationship. He designed specific tools for specific types of individuals, sizes of shovels dependent on the size of the individual for example.
Your process will operate with men and software. Be sure to design it with a good knowledge of the qualities and gaps in the men and software potentially available. I will return to this subject in my next blog since you will spot number of contradictions in the last paragraphs.
A la lecture de ce post, je t’invite à suivre les travaux passionants de Kalev Leetaru (de l’Université de l’Illinois) sur les sciences predictives [http://www.lis.illinois.edu/articles/2011/09/media-study-demonstrates-predictive-value-massive-scale-data-mining] que j’ai découvert en lisant un article récent du Monde sur le superordinateur Nautilus [http://www.lemonde.fr/technologies/article/2011/09/12/un-super-ordinateur-pour-predire-les-grands-evenements-du-monde_1571167_651865.html], ou encore, beaucoup plus distrayant … relire le maître Asimov sur le sujet !