Good design for Humans
uxplanet.org
uxplanet.org
> A user interface should be so simple that a beginner in an emergency can understand it within ten seconds.
I think this has principle been taken way too far, and it certainly shouldn't be regarded as a commandment. I, the user, am not always going to be a beginner in an emergency, so why restrict me like that forever? Good design shouldn't be unnecessarily complex, but sometimes you need a complex good design to have a powerful good design.
This podcast has a good discussion of this: https://99percentinvisible.org/episode/of-mice-and-men/
Edit: typos.
I'm building a development environment for professionals using a complicated DSL to interface with a powerful AI. No beginners in emergencies should ever see this thing - my users got graduate degrees to get to this point, and they're going to have to learn to use it to do their job. I'm going to make that as painless as possible, but nothing can have all the required features and make them all obvious in ten seconds.
However it is important to remember that if your product is successful the vast majority of your users will not be beginners and so you need to make sure their experience is good.
For example, something like Twitter fails massively here. It's easy to use as a novice, but there's no progression (I know that sounds like a concept from games, but it seems applicable). I want to be able to see who, of all the users I've seen, listed, followed, is active these days. I want to be able to draw on other people's list of follows to extract suggestions of who might be good to follow & is actively tweeting (not dumb automatic suggestions, please).
It would be so amazing to be able to "bin" Twitter users (across all of my lists, follows etc.) by how active they are. So the excessively chatty ones can be browsed when I have time, and the ones that post almost never—well, when they do, I see it.
Your UI doesn't have to be simple, but the user needs to know where to start. That's the idea behind the original Windows 95 "Start" menu. Even though there is plenty of things on screen, the starting point is marked in the most obvious way possible.
Now the idea seems to be: hide everything but the starting point, which is certainly a good way to show where to start, but it doesn't help the user getting beyond that, if it is possible at all.
Interestingly, that learning curve is well studied in video games, and often well implemented. General UI seems to be focused on aesthetics more than anything else.
[0] - https://www.dailymotion.com/video/x2oa1m1
(Used to be on YT but I can't find it anymore)
Jones, make me something timeless, or your ass is fired
Is it a backhanded insult? Ie is the tacit point that design which doesn't follow whatever guidelines is therefore not built 'for humans'?'
My day job collects data from some sensors and uploads it to another computer. This computer-computer interface is not for humans, even engineers have trouble understanding it, but the computer does fine.
Both of the above cases are a design that is not for humans, and the engineers behind either have no need to consider design for humans.
https://clojurebridge.github.io/community-docs/docs/clojure/...
This has the nice side effect of preventing you from writing a function that you think will be tail call optimized but really isn’t—the compiler will yell if your call to `recur` isn’t in tail position.
The code in the article doesn’t have the recursive call in tail position anyway, so it’s not like other languages would be able to optimize it away.