The Golden Assumptions of Product Design

Search for a command to run...

No comments yet. Be the first to comment.
Last updated: 2024-10-25 - also published to dev.to What are the general technology choices when building an app that should run on both mobile and web/desktop? Let's list them and detail some importa

Have you ever dreamt of what features your ideal programming language would have? Have you ever tried to make a list of the best features (or non-features) of existing languages that are particularly

Magne's blog
3 posts
https://www.vitaely.me/magnemg - my resume / CV as a webpage, contact me if you need help with work.
https://dev.to/redbar0n/ - my shorter and rougher articles on software development / programming.
https://gist.github.com/redbar0n - my code snippets for various software ideas and architectures I've taken an interest in (FC/IS, sound typing in TS, XState + UI patterns).
The user is a creature which is:
Largely ignorant.
Inexperienced.
Lazy.
Immediately forgetful.
Often, and at any time, regretful.
Habitual.
Irrationally pain & loss-avoiding.
Irrationally pleasure- and joy-seeking.
And that's OK. There is nothing wrong with users. But this is the baseline you should assume when you design.
So, to address each point (in slam-poetry style):
Show them, don't just tell. When they need it.
Teach them; don't onboard once, but continuously, and repeat it.
Do their jobs, or at least, let them batch it.
Let them easily go back, to re-view. Keep their overview.
Always let them undo, and don't make them redo.
Cut down steps to the absolute few, based on what they actually do. Don't force them to adapt to you.
Treat their input as sacred, so they don't lose, even a few.
Spark joy; invest in small delights, so they are repeatedly attracted to you. You see the utility and business value in that, don't you?