3 ms·
I agree with the goal, I have mixed feelings about the listed solutions I'd like to add one: using consistent metaphors. A user of software is constantly tryin
by brundolf 5y ago
I agree with the goal, I have mixed feelings about the listed solutions
I'd like to add one: using consistent metaphors. A user of software is constantly trying to form a mental model of how this ethereal, formless thing behaves. A state machine. What can and cannot happen, what will and will not happen after a given action, what can and cannot happen once we're in a different state. The shakier and less scrutable and/or reliable this mental model, the more anxiety is felt.
As programmers we're partly insulated from this effect. We may not know the exact inner-workings of a piece of software we didn't write, but we know some general things about software and the way it does and doesn't behave that soften the huge void of scary unknowns. This helps us form our mental model.
Physical metaphors of objects, continuity, permanence, locality, persistence, independence, are often used in GUIs for this reason. If I click a tab and then click back to the previous one, I expect to return to the same state I was in. If I change the text in one field, I expect that unrelated fields won't be impacted by that. Etc. This is a good starting point. Desktop platforms and then mobile platforms have built additional semi-consistent UX expectations on top of those largely physical intuitions. This helps too. But your application needs to go beyond that: it needs to present a simplified model of its internal state-machine to the user, and then it needs to hold to that. That mental model, once formed by the user, needs to have predictive power about the way the system behaves under different circumstances.
- qmmmur 5y agoWell written and a nice way to conceptualise the problem and zoom out a bit.
- bob1029 5y ago> If I click a tab and then click back to the previous one, I expect to return to the same state I was in. If I change the text in one field, I expect that unrelated fields won't be impacted by that. Etc. This is a good starting point. This is such a huge fucking deal. I could not hope to overstate the importance of UI flow & proper state management. It took us 7 years of mistakes & learning to figure out how to do this correctly. We had to learn to listen to the customer and not give in to our inner lazy developer. We now have total confidence in our ability to back-navigate through complex workflows, or arbitrarily switch between instances of them. Without breaking things. It is so intuitive to our users to be able to think "oh wait no i need to go back and change XYZ" or "I need to put this on hold so I can help this customer real quick". In our target market, the work is very complex and error-prone, so you are usually editing your previous inputs and double checking the new output. Every screen in our application has a back button & next button in exactly the same spots on the screen. I watch some of our users go back by muscle memory 3-4 screens within a second or 2. Mapping the users' brains to your UI is crucial. Really helps if you don't play RNG with the coordinates. It's really easy to paper over these things, especially if you are doubling down on a sub-par solution. Getting your users to want to use your app is really important in most situations. Even in a B2B setting, we hear our customers complain about bad UX in some of their other solutions and how this causes trouble for training & adoption. Even if you are getting paid for it, you still don't want to use trashy software. I have used software that you literally could not pay me to suffer with on a daily basis.
- euroderf 5y agoMetaphor consistency (or lack thereof) is where a tech writer has to provide feedback / advice to UX people. Verbalize the metaphor and debug it.