The world of system design can be divided into 2 main types of systems, where each type requires different research tools and different design capabilities:

  1. Consumer interfaces – include B2C, B2B2C systems, content sites, marketing sites, etc.
  2. Complex systems – which include expert systems, B2B, Enterprise systems, SaaS, security systems, medical systems and more.

What is a complex system?

A complex system is a system that contains a large number of components that influence each other. MouseUX provides an article with more info on the matter. The complex system is not built from a linear set of actions, but from a large amount of information and a large number of possible actions on each screen, which can usually be reached in several ways, when each action has a potential impact on many places in the system.

A complex system, or an expert system, is often the main working tool of their target audience. These users are often skilled professionals with broad knowledge in a particular field. In many cases, the users will be divided into several different roles, where each role has different goals and different actions to perform in the system. This means that the set of capabilities and permissions that will be exposed for each user in the system, varies between the different roles.

Design of complex systems

There are several important principles that must be considered in the process of design complex systems:

  • Knowing the world of content – the first step in the correct design of complex systems is learning the world of content to which the system belongs. By learning about the world of content, we can better understand the system, learn about the goals it helps users achieve, and understand the functionality it enables.
  • Getting to know the users – it is important to get to know the different personas and roles that use the product, what are the goals of each of them, what information and expertise does he bring, what information is he exposed to in the system, what are his difficulties, where does the system fit into his day to day work, and more. As we get to know the users better, we will be able to design the system in a way that will satisfy the needs of each of the personas at the points where they meet the system.

Looking at the characteristic of the level of expertise, we can usually identify that the users of the system are divided into 2 groups:

o Expert users: will perform complicated and advanced operations in the system.

o Users with a lower level of expertise: will want to perform less advanced operations and receive the information in a clear and fast way.

This is one of the challenges we encounter in designing complex systems. It is important that the system is suitable for these two types of users – on the one hand, it will give the expert users the ability to perform the advanced operations, and on the other hand, it will make it easier for the simple user so that only the frequent and necessary operations will be presented to him, without creating a load of information that he does not need.

  • Understanding the tasks – after learning about the users, it is important to understand what the tasks of each persona are according to their goals. In this framework, we will define the main tasks and break them into sub-tasks. Through a deep understanding of the tasks, we will be able to examine different approaches, in which we will allow the user to perform the tasks in the system. This in order to ultimately provide him with optimal interaction with the system, and the successful completion of the tasks.
  • Understanding the logic of the system – in complex systems, every action affects many places in the system, so that every mistake made can have devastating effects. Therefore, it is important to understand the contexts between the various components in the system and the effects of each action that is performed. An understanding of the complex network of connections in the system will enable correct characterization so that we will help the user reduce errors and provide him with a sense of security and reliability when using the system.
  • Competitor research – it is important to get to know the competing systems in the field, to see what functionality they allow, and the way they chose to display information and various actions. In this way we will know what is available in the market, we will be able to get inspiration for things that were done well, and understand what was not done well, thus avoid mistakes made in other systems. In addition, there are many times when there are accepted conventions for how different components in complex systems are designed and behave. In many cases, you should stick to these conventions and not reinvent the wheel. Using acceptable behaviors that the users encounter in other systems will match the mental model that the user already has from other systems that he knows, and will reduce the learning curve.
  • Usability tests – after we design a solution, it is important to check and validate the usability of it in tests and on real users. In these tests, we will ask the users to perform tasks in the system, while describing the thoughts and reasons for the choices they make, and thus we can identify useful problems and potential points for improving the user experience.

In conclusion, designing a complex system is a challenge and a difficult process that requires deep learning and attention to the smallest details. This design requires an understanding of the content world, an understanding of the users and an understanding of the logic in the system, as well as an examination of solutions that will respond to the various users and the great complexity of the system.

At Mouse UX we specialize in the design of complex systems from a variety of fields and use work methodologies that allow us to design complex systems with a simple and intuitive user experience. The methodologies we use include: user research, usability testing, task analysis, design thinking, information architecture, competitor research and more.