Ask HN: How to reduce the complexity of software interfaces?
2 comments
Techniques of interaction design might help you, as many of them covered exactly this problem, namely:
-User interviews will help you understand the problems and contexts your target users have. -Personas for focus on the target user. "Jobs to be Done" is a popular alternative. -Scenarios and user flows will help you better understand the temporal context and flow between states -Prototyping in tools like inVision, etc will help you test ideas before committing too much time and effort -User testing goes hand in hand with prototyping, you will better understand how your users perceive your software, which usually differs quote a lot from makers perspective
I don't know what type of software are you building, but design systems like Salesforce Lightning Design System and Google Material Design provide ready-made patterns with extensibility in mind. They usually have similar patterns, but enterprise ones are more focused on "optionality".
-User interviews will help you understand the problems and contexts your target users have. -Personas for focus on the target user. "Jobs to be Done" is a popular alternative. -Scenarios and user flows will help you better understand the temporal context and flow between states -Prototyping in tools like inVision, etc will help you test ideas before committing too much time and effort -User testing goes hand in hand with prototyping, you will better understand how your users perceive your software, which usually differs quote a lot from makers perspective
I don't know what type of software are you building, but design systems like Salesforce Lightning Design System and Google Material Design provide ready-made patterns with extensibility in mind. They usually have similar patterns, but enterprise ones are more focused on "optionality".
> Long-lasting, not chasing design trends.
Your "design trend" might be my "prevailing idiom". I have different preferences depending on what language, platform, and industry my work involves.
Even if they aren't speaking to each other, I like it when the collection of services, modules, libraries, etc used by my project share a common mentality and (when appropriate) terminology.
If it helps, you might want to think about who is most likely to use your interface and what they individually prefer. Consumers from Rails and React and .NET are each going to think of things a little differently and want different things. Lean towards one and help the rest adapt.
Your "design trend" might be my "prevailing idiom". I have different preferences depending on what language, platform, and industry my work involves.
Even if they aren't speaking to each other, I like it when the collection of services, modules, libraries, etc used by my project share a common mentality and (when appropriate) terminology.
If it helps, you might want to think about who is most likely to use your interface and what they individually prefer. Consumers from Rails and React and .NET are each going to think of things a little differently and want different things. Lean towards one and help the rest adapt.
1) Decreasing complexity.
2) Increasing real ease of use.
3) Increasing optionality (Features will be added in the future, perhaps many of them. How does one design an interface that can adapt to future requirements?).
4) Long-lasting, not chasing design trends.
Any input as to what makes an interface wonderful for you to use? Any favorites?
Thanks in advance! :-)