What is a Complex App?
Fancy word alert, in 3... 2... 1...
A standard truism of user interfaces is that they should be teleological - that means they should guide users toward their ultimate goal, but if you don’t know what your user is going to do next, or even what their goal is because the workflow is non linear or open ended, we need a whole different set of design tools and understanding to help users get their job done. In short, we need to go at this differently from the very beginning.Our job as designers of complex apps, is to assist users on this non linear, investigative journey, even though it's self evident that we designers can’t know what that exact journey is ahead of time. We can however keep the path ahead clear, provide good feedback of where a user is, we can present interesting junctions for users to venture down, or different vantage points from which to look backward or forward. This may all sound very wishy washy and nebulous, but I'll explain how if you stick around.With that out of the way, let's give ourselves a frame of reference by first defining a simple application, just so we can see the difference.
Simple applications have these traits
Simple applications have these traits
- A well defined goal
- E.g A user wants to buy a concert ticket.
- A linear workflow (I realise this is a slightly reductive example).
- Choose a concert.
- Add tickets to a shopping basket.
- Proceed to checkout.
- Enter billing information.
- Done.
- They are easy to test.
- With limited steps and places to go wrong, observing users provides simple solutions when things do go wrong. Users may also have done similar tasks in other environments in the past allowing for self correction.
- Known entry and exit points.
- You know at what points a user can enter the process
- A link to a concert page.
- A link to the main page.
- You know at what points a user can exit the process
- Successful checkout.
- Aborted checkout.
- Didn't make it to checkout.
- You know at what points a user can enter the process
A complex app can be quite different
A complex app can be quite different
- The end goal can be exploratory, unknown, ever changing, or dependent on ability. For example:
- Mining website analytics for insights.
- Using a drawing application to produce an illustration of a photo.
- Using a page layout tool to make a poster.
- Using a spreadsheet application to work out trends in some data.
- They generally have non linear and/or iterative workflows
- Take several steps toward a goal
- Decide to change something
- Go back and alter/ edit some states
- Continue in this vein
- No set entry/ exit point
- The first step of a workflow may not be known.
- What do you do when you start a new spreadsheet document?
- Set up styling options.
- Input Data.
- Name columns.
- Import from another source.
- Make macros.
- Any of these and more, in any order.
- What do you do when you start a new spreadsheet document?
- At what point are you done?
- Are you finished when you meet your end goal?
- Did you run out of time?
- Was there a missing feature?
- Will you come back to continue later?
- Did you need to export data to work with it somewhere else?
- And so on.
- They can involve using data from external sources.
- They can also involve working with multiple instances, or copies of the same data. For example, the same photo may exist in multiple photo albums - if I edit one, do they all change? Working with such data requires careful planning to avoid UX nightmares later on.
- It's possible that more than one person is required to operate the system
- The first step of a workflow may not be known.
Examples
Examples
In short, if a user can use your app for non-linear or unstructured tasks, it's complex.Examples of complex app categories include:
- File managers
- Enterprise software
- Spreadsheet apps
- Business Intelligence/ Data Analytics software
- Content Management Systems
- Digital Content Creators for:
- Illustration
- Photography
- 2d/3d Animation
- Film Editing
- Digital Audio Workstations (DAWs)
- Software development environments.
- Productivity software.
- Control Systems (Air Traffic, Nuclear Power, and so on).
- And so on...
Now that you know what a complex app is, you can start to design one.