Part II: Complexity of running a technology program in a multi-site manufacturing environment
So many times, when starting something complicated or complex, we’ve been told to “keep it simple” and “take small steps at a time”, or to “eat the elephant one bite at a time”. However, when designing a solution, we can’t oversimplify things and neglect the environment that the solution will become part of.
Imagine, for instance, if airplane designers started designing an airplane, keeping it simple while neglecting the environment that the airplane will be part of. They would perhaps start by making just one wing. It could be a perfect wing, but the airplane would simply not fly.
The purpose of this 12-part blog series is to offer you perspectives that should be considered in order to succeed in a Multi-Site MES program. In this second part of our blog series, we are going to cover three key perspectives:
- Understanding complexity
- Managing and mitigating complexity
- System resilience and robustness.
What is a system?
Usually, ICT professionals understand the word “system” to be synonymous with an ICT system. However, when we use the word “system” in this blog series, we are not only talking about ICT systems. Surely, an ICT system can be and is one type of a system, but it can consist of other actors as well, such as humans, organizations, and equipment.
Before we can start working on an MES for a manufacturing facility, we need to understand the environment where the solution will be implemented in. Let’s call this environment a system. The MES will be part of a system that consists of a plant or plants, people, processes and other technical systems. In this system, all these different actors will be interacting with each other.
Even if we designed and implemented a perfect MES solution, it will not bring much value if we do not consider the system it will be part of. Very often, this system and its complexity are overlooked. But the fact is that the better you understand where all the complexity comes from, the better you can prepare to mitigate and manage it.
If you neglect to put any effort into understanding the complexity of MES systems, you might end up on a journey where you will run out of budget, miss the schedules, and even fail to reach the set targets. Complexity is sometimes hard to detect and even harder to understand and quantify. Complexity is not a simple phenomenon.
One unpleasant feature of complex systems is that if you don’t manage them properly, they might turn into chaotic systems. It is fair to say that one of the top enemies of a successful MES program is indeed complexity.
Systems and complexity
A system consists of three parts:
- Actors or Elements are individual parts of the system that act within the system. In the MES domain, these parts fall into categories like people, processes, plant, and other systems. All these together with MES constitute a system that generates value for the end user.
- Interconnections are ways in which different actors interact and affect each other, causing the system to behave in certain ways. If there were no interconnections, we could fairly say that the actors are not in the same system.
- Goal or purpose is the nature of the system that affects how the actors are designed to behave. One might argue that the goal/purpose is not a category in itself but actually one type of an actor or element. The characteristics of different actors define the way the system behaves as a whole.
MES is part of a supply chain. MES interacts with people, processes, and equipment on the plant’s shop floor and integrates to various operational and business systems. MES is not some accessory that can be added to production; instead, it is an integral part of the supply chain. MES or its modules will behave as actors in this supply chain system.
You might see where this is going. On one hand, MES is an ICT system. On the other hand, MES is part of a manufacturing system which consists of people, processes, plant, and other technical systems. Further, this manufacturing system is part of a larger supply chain system. It is thus fair to say that a Multi-Site MES can easily be part of a complex supply chain system.
Systems fall into a spectrum from simple to complicated, complex, and all the way to chaotic systems. All of these have different properties and, therefore, different engineering approaches should be applied to them. For instance, a piece of software that calculates the mean value of ten digits will be implemented quite differentially than, for instance, a weather forecasting software – or a Multi-Site MES.
There are several ways to define what counts as a complex system. Here, we define a complex system as a system that consists of several actors and multiple interconnections between them. As the possible states, or sets of parameters, of individual actors increase and the number of ways they can interact rises, the number of states in which the complex system can be is near infinite.
Similarly, when feeding an input to a system that can be in an infinite number of states, also the number of outputs can be infinite.
A typical characteristic of a complex system is that only a subset of the system responses can be tested due to the vast number of system states and possible inputs.
One of the biggest challenges when working with complex systems is to realize that we are dealing with a complex system. That is not always so easy or obvious. For one thing, people like to simplify things in their head, and neglecting the complexity of the system only makes the implementation of the MES even more complex. Another reason could be that people simply do not have experience of working with complex systems. They might categorize MES as a software project and, therefore, think that MES project should be approached like one. It is true that an MES project has characteristics of a software project but, again, failing to realize that we are dealing with a complex system might not end up so well.
Where does complexity come from?
We have now established the fact that Multi-Site MES will most likely fall into the category of being a complex system. Let’s next look at different ways to evaluate how complex it is. The goal is not to get a number for the complexity but instead to understand where all the complexity is coming from. This will later help to find ways to mitigate and manage it early on in your MES program.
As mentioned earlier, two of the traditional ways to describe the source of complexity are a) actors and b) interconnections.
Actors can be rather simple, like a measurement sensor, or very complicated, like an ERP or a scheduling system. In the same way, interconnections between these actors can be very simple, like turning a light on or integrating real-time inventory synchronization with a scheduling system, for instance. When it comes to interconnections, one factor that makes them more complicated is timeliness. Depending on the MES, different modules can act as independent actors in the system. For instance, there might be a separate quality module to coordinate quality sample recording and a separate module for tracking operations such as production and consumption.
As mentioned above, in the manufacturing system, we have a plant or plants, people, processes, and other technical systems. What adds to the complexity is that people from different disciplines interact with the MES in different ways – quality, maintenance, production, finance, procurement, intralogistics, and ICT all have different ways to use MES. Moreover, within these disciplines, people have different roles: there are operators, supervisors, managers, directors, and maybe even third-party vendors who all have different ways to interact with MES.
Interconnections, in turn, are connections between actors. Are there different types of interconnections between actor A and actor B? How complicated is the interconnection, meaning how big is the set of variables passed between them? What are the real-time constraints? How robust does the error connection need to be? These questions are just some examples of how you can evaluate the complexity of each interaction.
How to deal with complexity
How, then, can you tackle all this complexity? Here are just a few ways to reduce and manage complexity during your Multi-Site MES program.
1 – Raise your awareness
If you are not aware of the threats of complexity, you will ignore them. Ignoring them, again, might lead to a chain of problems, such as exceeding the budget and other issues. As mentioned above, an unmanaged complex project might turn into a chaos. Therefore, understanding that we are dealing with a complex problem and managing that complexity in the right way is crucial for all project members and decision makers.
2 – Clear out junk
An easy way to reduce complexity is to remove stupid rules, time wasters, nice-to-have things, or any other useless features that will not help the system to create value.
3 – Make your goal crystal clear
The whole MES project team should know what the goals and targets for the project are and how the MES fits in the whole (supply chain) system. This will help the team to concentrate on value-adding tasks, features and designs, and to keep the project on track. For example, if one of the project’s key goals is to create valuable information, this information should be available as early on as possible.
4 – Prioritize, prioritize, prioritize
Since MES affects so many people within the organization, this will easily lead to a Wish Jar effect – an extremely long list of wishes for what people would like the system to do. This Wish Jar effect goes on throughout the program, from the requirements phase all the way to design and to implementation, and people continue to express their wishes even during the support phase. Wishes are a good thing, but they need to be constantly prioritized.
5 – Take the fastest, most cost-efficient road
In many cases, there are many ways to design and implement a feature. It is also extremely tempting to pick a few items from the wish jar and include them in the project scope. However, since one of the cornerstones of managing complexity is that the system is adjustable, you don’t have to do everything at once; instead such add-on features can be added later on if they still at the end of the project would seem to bring value.
6 – Don’t forget people
How many people need to be involved with a specific task? The more there are people, the more likely there will be communication problems, misunderstandings, and even issues caused by clashing chemistries. Fewer people make less complex systems.
7 – Look out for complexity
Complexity tries to sneak into and expand your Multi-Site MES program in each phase and all the time. It needs to be constantly looked out for, and actions to reduce it should be taken throughout the whole MES lifecycle.
8 – Communicate clearly
A good rule to use is Wittgenstein’s principle: if you can’t communicate in a common language, you probably don’t know what you’re talking about. If you are confusing others, chances are that you are confusing yourself as well. This also applies to the terminology used. All project members across disciplines, across sites, and across the vendor network should all share common terminology on common matters. This also applies to describing a solution for a problem; the description should be so simple that everyone that needs to understand it will understand it in the same way.
A case in point is OEE: This acronym stands for Overall Equipment Efficiency that describes how well a certain piece of equipment or a certain production line is performing. So far so good. However, when you ask what the formula for OEE is, you will most likely end up having as many different explanations as there are people.
9 – Minimize the options
Although we like to have choices, they also make things more complex. Where the ways of working can be standardized, they should be standardized. This applies to many levels of the MES solution. Interfaces between systems and equipment should use standard interfaces that scale out and are as simple as possible. The same applies to user interfaces, workflows after specific input to the system, and data model. Especially the ways of working and business processes should be as similar as possible to mitigate complexity.
10 – Stay robust and resilient
The key to keeping things simple is to tackle complexity on every level. Keep actors simple, but keep in mind that once they start interacting with each other, a new, more complex system will emerge. Even though the aim always is to design and build an MES system that is perfect for the factory, it is not possible to foresee all surprises that complexity brings. Therefore, an important part of every MES program is to asses complexity, trying to mitigate it while also preparing for surprises.
Preparing for surprises and staying robust goes beyond design and implementation. It also has an effect on the organizational structure, ways of working and communications, and the ease of troubleshooting and knowledge sharing. In short, when a surprise occurs, the MES program’s organization should ideally try to tackle it proactively, but at least reactively adjust the MES to the new situation.
More about Robustness and Resilience
Sometimes complexity can’t be avoided. No matter how well we try to identify all the requirements, put together use cases, make careful design, and test thoroughly, there still will be some unexpected situations. In such situations, there are two key principles to help you tackle the complexity.
The first principle is robustness:
A system is robust when it can continue functioning in the presence of
internal and external challenges without fundamental changes to the original system.
This means that we need to consider potential malfunctions or other undesired behavior of the different actors and interconnections in advance to ensure that the system will be able to continue its functioning even in problem situations. In the same way as the management of complexity, robustness, too, should be built into the MES program. It affects how the organization is defined and roles assigned, what type of vendors and technologies are used, and what the architecture and design are like. During the implementation phase, robustness is naturally built into the system.
The more robust the MES is, the better it can reach the set goals, even if the overall system around the MES would behave differently than expected.
The second principle is resilience:
A system is resilient when it can adapt to internal and external challenges
by changing its methods of operation while continuing to function.
While elements of the original system are present, there is a fundamental shift
in core activities that reflects the adaptation to the new environment.
While robustness is about dealing with problems, resilience is about adjusting to them. In the context of manufacturing, we tend to call this “continuous improvement”. When a process, interfaces, people, organization, or even new production line appears, the MES needs to adjust to this new situation. The system around the MES keeps evolving and changing. In addition, new features need to be introduced. There is no escape from that. Therefore, continuous improvement is the key for the MES program to bring more value. Again, this goes beyond implementation. All the phases affect this.
How does the organization support continuous improvement? How have the system architecture and technology selections been done? Have they been made while understanding the system environment where the MES will be acting in?
We are increasingly surrounded by complex ICT systems – so complex that no-one really understands how they work. These systems that have been built by many people in collaboration; there is no single person who could perfectly explain how, for instance, the software in your car works.
Multi-Site MES is, most likely, one such complex system, and it should be treated that way. Understanding that we are dealing with a complex system, as well as where the complexity comes from and how it evolves and increases over time, helps us tackle the complexity during each phase of a successful MES program.
Managing complexity is something that you can’t decide to take care of once and for all. It is an ongoing, concurrent activity that continues throughout all the program phases, during all the tasks and actions that are taken during the MES program. Therefore, in each step in your MES program, keep asking yourself: How are we managing complexity? How are we reducing complexity?
In the coming blog posts, we will be covering tasks and activities on your way to a successful MES program, and discuss in more detail how complexity can be managed in each step, as well as how robustness and resilience can be built into your MES program. Stay tuned!
Arbesman, Samuel (2016). Overcomplicated: Technology at the Limits of Comprehension. Current/Penguin. (The book on Amazon: https://www.amazon.com/gp/product/1591847761/ref=as_li_ss_tl?&linkCode=sl1&tag=digitont-20&linkId=8a74ac533d2cf6972a9ba709d7f918b3)
Frei, R. (2011). Concepts in complexity engineering. International Journal of Bio-Inspired Computation, 3(2), 123-139. http://cui.unige.ch/~dimarzo/papers/ComplexityEngineering.pdf
Frei, R. & Di Marzo Serugendo, G. (2010). Advances in Complexity Engineering. International Journal of Bio-Inspired Computation. https://pdfs.semanticscholar.org/40ca/c903b3f90d04e56a96669e6112bf78f7cc63.pdf?_ga=2.85947161.1610921216.1563258266-628358397.1563258266
Madsen, S. (2015, April 14). 5 Best Practices for Managing Large IT Projects. https://www.liquidplanner.com/blog/5-considerations-for-managing-large-it-projects/
Meadows, D. H. (2008). Thinking in Systems: A Primer. Chelsea Green Publishing. (The book on Amazon: https://www.amazon.com/Thinking-Systems-Donella-H-Meadows/dp/1603580557/ref=sr_1_1?ie=UTF8&qid=1550281894&sr=8-1&keywords=thinking+in+systems
Monti, G. (2011, June 7). Resilience Engineering #1: Robust Vs. Resilient. https://www.activegarage.com/resilience-engineering-1-robust-resilient
Pollard, D. (2010, October 12). Complexity: It’s not that simple. https://www.resilience.org/stories/2010-10-12/complexity-it%E2%80%99s-not-simple/
The Royal Academy of Engineering and The British Computer Society (2004). The Challenges of Complex IT Projects. Report of working group. https://www.bcs.org/upload/pdf/complexity.pdf
Satell, G. (2012, August 12). Understanding Complexity (and what to do about it). https://www.digitaltonto.com/2012/understanding-complexity-and-what-to-do-about-it/
Sinnemäki, K. (2012). What is complexity? Formal linguistics and the measurement of grammatical complexity. https://www.mv.helsinki.fi/home/ksinnema/sinnemaki_seattle.pdf
Sommerville, I., Cliff, D., Calinescu, R., Keen, J., Kelly, Ti, Kwiatkowska, M., McDermid, J., & Paige, R. (2012). Large-scale Complex IT Systems. Communications of the ACM, 55(7). 71-77. https://arxiv.org/ftp/arxiv/papers/1109/1109.3444.pdf
Systems Innovation. (2015, April 3). Complexity Systems Theory Overview [Video]. YouTube. https://www.youtube.com/watch?v=PjMG2t8Kd1I