Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to handle optional features (UI/UX and convention) #603

Open
zorun opened this issue Apr 30, 2020 · 5 comments
Open

How to handle optional features (UI/UX and convention) #603

zorun opened this issue Apr 30, 2020 · 5 comments
Labels
discussion UI/UX User Interface / User Experience

Comments

@zorun
Copy link
Collaborator

zorun commented Apr 30, 2020

Historically, I think that the only optional feature was per-participant weights. We now have several additional optional features, and this is something new for ihatemoney: we may have to think how to best handle current and future ones, especially regarding consistency. This impacts the UI/UX and the way features should be integrated (enabled by default or not, always have an option in the settings...)

Here is a list of current optional features:

And a list of work-in-progress optional features that may be merged at some point:

Here are some general questions that I think we should answer:

  • should the feature be part of the default UI/UX? e.g. a field in the "Add bill form", a column in the list of bills, a required setting when creating a project...
  • should we be able to enable/disable the feature when creating a project?
  • should we be able to enable/disable the feature in the project settings?
  • how does a user find a feature if it's not visible/enabled by default?

Obviously it's difficult because these are contradictory goals (easy-to-find features while keeping a simple UI/UX).

In this respect, the way @JocelynDelalande added support for weights in #131 is a great example: it does not clutter the UI if you don't use it, but it's still visible if you are looking for it (the (x1) in the list of participants). In addition, it does not require any settings to enable/disable it.

I believe that we can make current features more consistent by answering these questions, either here or whenever a new feature is proposed: this could take the form of guidelines in the contribution documentation.

@indatwood
Copy link
Contributor

Thanks for starting a discussion about this :-)

One of the reasons I like IHateMoney is that it has a clear and simple user experience. What you're proposing makes me actually wonder if we should have an optional screen to enable special features, at project creation.

Let me expand on this :

  1. You create a project
  2. Once this is done, you're redirected to a new page, when you're asked if you would like to enable advanced features, you can select "Yes, please" or "No, thanks, keep it simple."
  3. If you select "yes", then you are directed to a page where you can enable the features.

This is kinda like the so called "first user experience" that exists on phones : the first time you start it, it asks you a set of questions to ease the use afterwards.

On a different topic, once we decided the list of questions we should ask ourselves when adding a new feature, we might want to create a new issue / pull request template to add these automatically, so that contributions are encouraged to answer these beforehand.

@zorun zorun added the UI/UX User Interface / User Experience label Jul 17, 2020
@zorun
Copy link
Collaborator Author

zorun commented Jul 17, 2020

I have mixed feelings about this "first user experience" idea: it's nice because, once the project is created, it gives you an "efficient" UI that has just the options you wanted and you don't have to think about all the options.

But it deviates from the "clear and simple" principle: there are many different combinations of possible UI and feature sets, which becomes hard to test and maintain. In fact, simply having per-project settings like we do now already has this drawback. You could even say that simply adding features has this drawback :)

I guess my priority order would be this:

  1. think twice before adding the new feature: will it be useful to a significant fraction of users or to just a few people? Does it interact badly with other existing features? How hard will it be to maintain in the future?
  2. if the new features goes in, try to "blend" it in the UI/UX so that it is invisible if you don't need it, and it becomes visible when you are looking for it.
  3. as a last resort, if it's impossible to "blend" it in the UI/UX, add an option to enable/disable it in the settings and possibly also in a "first user experience" wizard

@zorun
Copy link
Collaborator Author

zorun commented Jul 17, 2020

And yes, once this discussion converges, we should definitely document it somewhere! The documentation and github templates look like good places.

@almet
Copy link
Member

almet commented Apr 7, 2021

So, to move forward on this one, I believe we could take the easy way : features are classified between main and extra features. Extra features shouldn't be displayed to the user unless they ask for it. We could add some UX hints to show their presence.

What do you think?

@Glandos
Copy link
Member

Glandos commented Apr 10, 2021

History can be moved in the dropdown menu at the top right then, as an extra feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion UI/UX User Interface / User Experience
Projects
None yet
Development

No branches or pull requests

4 participants