Conceptual Modelling in an Agile World: The key to good UX!
February 14, 2017Ben Ellerby4 min read
Modelling is a widely used tool in Computer Science, but often only thought about from a programming, architecture or requirements gathering perspective. There is a large amount of Human Computer Interaction (HCI) research that shows the importance of modelling the underlying conceptual model of your system from the user's perspective, ensuring you build a system that exposes to the user a task oriented and intuitive set of concepts the purpose and relationships between which are clear.
Read on to discover what a conceptual model is, how it is communicated into the mind of the user, the problems that occur when there is a mismatch with the users internalised mental model and the challenges of iterating a conceptual model once in production.
What is a conceptual model?
A conceptual model defines all the interface concepts users need to understand to use a system. It specifies the concepts, their relationships (e.g. one containing another) and operations that can be executed on them. The conceptual model of a system can be designed before the technology stack, data model or dev team are ready. Designing it involves understanding the task domain and building up a set of concepts that can be used to achieve the desired tasks.
A good way to express the mental model in a design artifact is to use a basic entity relationship (ER) diagram that maps out the key concepts. A rough sketch of the conceptual model underlying a simple email service helps to illustrate the idea (see below). Lines show the associations and labelled arrows the actions.
Well established in the fields of HCI and UX, but less understood by computer scientists and programmers, the conceptual model should form the focus of any user centered design approach. A good conceptual model is be obvious, intuitive and task oriented. Furthermore it should form the basis of design decisions regarding user interaction.
Use case analysis is another way to express the underlying conceptual model, but it is easier to iterate a simple ER diagram and also simpler to refer to it when making design decisions.
Internalisation as a Mental Model
A mental model is the same idea, but from the perspective of the user. A conceptual model is designed by the system designer whereas a mental model is subconsciously internalized by the user through interaction with the platform. The key to a usable system with good UX is to design a system that transfers an accurate representation of the underlying conceptual model into the user’s mind. This can be achieved by using a simple and understandable conceptual model, and using this model in the design of the user interface.
Your conceptual model does not need to be technology based, in fact this will likely be an unintuitive conceptual model. Base it on intuitive and task oriented concepts that are familiar to the user.
When the two mismatch
It is important that the mental model internalised by the user matches the conceptual model underlying the system as this mental model is used by the user to make assumptions, simulate actions in their head and form task plans to achieve goals with using the system.
The classic example of a mismatch between a user’s mental model and the conceptual model of a system is in the operation of a simple home thermostat. The thermostat seems intuitive, turn clockwise for hotter and anti-clockwise for colder. The issue occurs when users come home to a cold house and want it hotter quickly. Many people will turn the thermostat to a higher temperature than desired, thinking that it will heat up quicker. This in fact turns out to be a flawed assumption, resulting from a poor mental model. The user has internalised a mental model similar to that of a cooking hob, where the heat source has an adjustable (on a continuous scale) output, but the heating element of a home central heating system is in fact at a binary system (on or off, 2 discrete values).
In the above example the consequences are minor, but false assumptions on a banking, e-commerce or messaging platform can have more severe consequences. Even if consequences are mild, a system that does not seem to fulfil a user's desire will likely be perceived as broken, unintuitive or overly complex.
Potential challenges in an Agile world
Any user centered design framework has iterative as one of its core principles. If the conceptual model is the key embodiment of the a system’s design, from a user interaction point of view, then it’s obvious it needs to be iterated.
Early stage iteration is great; grab some sharpies and go crazy. Even better is to validate this early draft with target users, and going even further to this create lo-fi wireframes, conduct usability testing with real target users and analyse the results for possible issues with the underlying conceptual model.
Too many projects view this conceptual modeling as the ‘ux designer's’ responsibility, or lack any conscious thought to is at all. Large scale projects can have a great conceptual model developed by an external design firm, but once we start changing the design we need to iterate and keep in mind the conceptual model.
Good UX is the responsibility of programmers as well as UX consultants.
In an iterative world we need to be careful about big sweeping changes to our conceptual model after we have real users in production. Of course we can't stop improving it, but we need to be careful not to make big changes to the conceptual model without just cause. Users have already internalised their mental model, and they will use it to interact with the system. As soon as we change the system’s conceptual model their mental model becomes out of date. You should try to help existing users in this transition period, making extra effort to make the changes and operation of new concepts clear.
- Start by designing the conceptual model, 'begin by designing what to design’.
- Aim to make the conceptual model ‘obvious, task oriented and simple’
- Use concepts familiar to the target users, and define the target user before this stage.
- Document your conceptual model (UML is your friend, but keep it dynamic and up to date!)
- Base your design UI/UX decisions on this conceptual model (hence keeping it up to date should be automatic as you use the model while making design decisions).
- Iterate this conceptual model based on real user feedback and testing, BUT be careful on the impact on your existing user base.
Everyone is responsible for good UX, and in today's world it can make or break a company!