Before the COVID-19 pandemic took hold, many of us may have felt that understanding the difference between simple, complicated and complex problems might be interesting, but that it bore little relevance to our everyday activities. But now, many activities that were previously simple and repeatable have become complicated or complex, as we attempt to manage our working lives under the new realities of social distancing and lockdown. Many of us are having to work differently as we adapt to changed circumstances. And knowing how to recognize and manage the differences between the simple, the complicated, and the complex may be vital to providing the excellent service management that, more than ever, our organizations depend on.
I’ve often written about the importance of documenting, and following processes for work that is well-understood and has to be done the same way every time. But I’ve also emphasized that when work becomes complicated or complex, even the most carefully thought out formal processes may become inappropriate – and that’s when we have to do something else.
For many of us, now is a time when we have to do something else.
In this blog, I’m going to help you identify the complicated and complex situations that mean you need to do something different, and offer some suggestions of what to do. Sadly, under the current circumstances this is not just theory. We all need to understand this, so that we can still do the right things for our customers when our normal processes are not appropriate.
What are complex systems?
A system can be defined as “A set of parts which, when combined, have qualities that are not present in any of the parts themselves”. Some systems are quite simple, for example a set of children’s building blocks; in this system it’s possible to predict what will happen if you understand the parts and how they fit together.
Other systems are complicated, for example an electrically assisted bicycle; in these systems it’s possible for an expert to analyze the system and predict how it’ll behave, and it’s likely that different experts will agree with each other. If you’d never seen an e-bike before you might not be able to work out how it works, or what each part does, but an expert could easily analyze how the components work together and what this implies for how to ride the bike.
Some systems are complex, for example a stock market, or a self-driving car. In a complex system you can’t predict the behavior of the system by analyzing the behavior of the parts, and it’s likely that different experts will have different opinions on how the system will behave. Some complex systems, the ones known as complex adaptive systems, can learn or change in response to their environment. Examples of complex adaptive systems include a stock market, an ecosystem, or a human baby.
Some modern IT systems fall into this complex adaptive category. They have many components, and there are complex interactions between the components themselves and the many different organizations that are involved in maintaining them. Interactions with the people who actually use the system are equally complex. Many large social media services are like this, as are some internet commerce sites. In fact, most IT organizations fall into this category to some extent, depending on the services that they offer, and the organizational structure that supports them.
I learned a lot about how to manage complex situations from reading about Cynefin, which is a framework to help people make sense of complexity. The framework describes a number of different domains, including a chaotic domain, and disorder, but I’m not going to write about those here. What I’m going to write about are the three listed below:
- The obvious domain is where formal processes, and routine automation are appropriate. Everyone can understand the situation and it’s obvious what should be done.
- The complicated domain is where the situation is unclear but an expert with the right tools, knowledge, and experience will be able to understand it, and predict outcomes accurately since they’re a direct result of the initial conditions.
- The complex domain is where it’s not possible for anyone, no matter how expert, to understand the situation. However, much of an expert you are, and however much you analyze the situation, you can’t predict what is going to happen next with any certainty. Under these circumstances, the only way to move forward is to carry out safe-to-fail experiments to try to move forward.
You can learn more about Cynefin here (and you may discover alternative names for some of the domains too).
How to manage an obvious situation
In an obvious situation you simply need to observe the situation, assign it correctly to a predetermined category, and then follow the agreed process.
Obvious situations are common in support environments, for example when a user orders a new laptop; they can also occur in development environments, for example when a software developer initiates an automated build of a component.
These are the kind of situation where processes are important. You want to make sure that the same process is followed every time, to maximise efficiency and reduce the number of mistakes that are made.
But not all situations are obvious.
How to manage a complicated situation
A complicated situation is one where you can’t just follow a pre-defined process to achieve a predictable result. In a complicated situation you don’t know what to do, but an expert with appropriate knowledge and experience can analyze the situation and come up with a solution.
A complicated situation can occur in a support environment, when a technical expert has to resolve a difficult incident or problem; it can also occur in a development environment, when a systems architect or a programmer needs to devise a solution to a well-understood business problem.
In these situations, you need to have a way to collect data about the situation, so that you get a complete picture of what is happening. You then need to analyze the situation, based on the data you’ve collected, your experience of other similar situations, and your knowledge of how things work, and how they interact.
Typically, this analysis leads to a clear understanding of the issues and the available options for managing them so that a way forward can be chosen.
In these situations, it’s important to have a pool of experts, with access to a knowledge base and configuration information. Tools that facilitate collaboration and communication may also be helpful.
How to manage a complex situation
In a complex situation there are likely to be multiple conflicting hypotheses, and no easy way to verify which is true in the available time.
Complex situations are common in development environments, where nobody really knows how users will make use of a new feature until they start to interact with it, and in support environments where the experts disagree on the cause of a problem, and the best approach to resolve it.
In a complex situation you need to create safe-to-fail experiments that can help you to understand the situation better. When an experiment is successful you can build on it, when it fails you can easily revert to the previous situation. For example, you could build two or more prototypes of the user interface for a new application and watch how users interact with them. In a support environment you might try to shut down or restart one component to see how this affects the overall service.
These situations rely on organizations having a culture of trust, where people are allowed to get things wrong without being blamed, and where generating conflicting ideas is seen as a good thing. In a support environment, a culture that supports intelligent disobedience can help to identify and manage complex situations.
How does this help you right now?
Most of us are having to deal with significant changes in how we work at the moment. This makes it even more important than usual to understand if the situation you are in is obvious, complicated, or complex, and take appropriate actions, for example:
- If your team is all working remotely for the first time, then you need to find the best way to communicate with other team members. You could use regular online face-to-face meetings, or text chat, or phone calls, or email, or many other approaches. There is no one right answer, and you probably need a combination of these to use in different circumstances, so this is a complex situation. What this tells you is, don’t spend too much time analyzing all the options, just think about what might work and then try it in a safe-to-fail way. You’ll gradually settle on a set of options that works best for your team.
- If you have to move from a customer-facing, direct-delivery model to a web-based model for delivering your services, this may be complex or complicated – depending on the services you offer. For example, an organization I know that used to supply food to restaurants is now providing food delivery to consumers. This includes some complicated activities, such as modifying the website to handle large numbers of small orders, and some complex choices, such as deciding on the best approach to making large numbers of small deliveries. The design of the website changes can be done by an expert, so long as they understand exactly what you want. Of course, deciding exactly what you want may be more complex and need a more iterative approach. The design of the logistics for getting food to large numbers of consumers should be done by trying different options on a small scale, and settling on the most effective over time. I’ve watched this happening over the last few weeks as the service from this organization has improved each week of the crisis.
- Of course, the COVID-19 pandemic itself is an example of a complex situation. Every government (and international body) is trying different things and measuring the effect as best they can. We all need to understand that there are no right answers yet, and the approach will almost certainly change over time as people and organizations learn from experience.
Processes are important for some situations, but you need to recognize when they’re useful, and when it’s best to do something different. If you try to force people to follow process all the time you’ll deliver very poor services, but if you never use processes for obvious situations you’ll work very inefficiently, and your services will be expensive and unpredictable.
Make sure that your staff understand the difference between obvious, complicated, and complex situations; and give them suitable guidance on how to respond to each. This will help you to deliver great services while managing costs and quality effectively.
You can find more helpful content on this topic in the recently published ITIL 4 Managing Professional High Velocity IT.
For more information on how InvGate is responding to the COVID-19 pandemic, please see here how its offering its service desk solutions free of charge to anyone who needs it.