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

Improve User Experience VarSets #17

Open
pieterhijma opened this issue Oct 9, 2024 · 10 comments
Open

Improve User Experience VarSets #17

pieterhijma opened this issue Oct 9, 2024 · 10 comments
Labels
funded The FPA voted to fund this proposal

Comments

@pieterhijma
Copy link

Proposal description

The essence of the proposal is to improve the user experience in a workflow in which VarSets are used for designing parts. The proposed changes are composed of (see delivarables):

  • guiding the discussion on the more complicated topics,
  • add new features that are requested from users, and
  • improve on various small issues.

Now that VarSets gain more traction, users have submitted various issues with suggestions on how to improve the user experience. Resolving these issues will lead to an improved user experience which benefits FreeCAD users.

Deliverables

This work consists of three kinds of work that are presented in project Improve User Experience VarSets. For your convenience, I've included a screenshot of the issues that I consider to be part of this work:

overview-deliverables

It contains three kinds of work:

  • guiding discussions on somewhat contentious/complicated issues
  • new features
  • small issues

The issues that are marked "Discussion / Research" can benefit from researching implementation options to help the community to decide what is best given resources and choices. For example, renaming is contentious because some users foresee large problems if users have control over renaming properties, whereas other users consider this part of the users' responsibility. This discussion is difficult to move ahead without researching the ramifications of changing properties.

For the issues marked as "Dicussion / Research", my role would be to research the various options, report back to the users on the forum or in issues, and to consult with the design working group. If we can decide on a clear path forward, I will try to implement that.

The category "New feature" provides issues that provide users with new functionality that helps a workflow that makes use of VarSets. These issues aresomewhat larger units of work.

The category "Small issues" consist of various issues that are relatively easy to solve.

Finally, the issues marked as "Part of discussion" are all related to a specific "Discussion / Research" issue (see the comment) and will be taken into account in the respective discussion.

The aim is to deliver all improvements in small PRs that are related to these issues.

Timeline

Since I'm now working on #10 and #4, I would schedule this for the period of January to April. However, if necessary, I can reschedule the grants if this work is deemed to have more priority.

Risks and mitigation

I recognize two risks: One risk is that the "Discussion / Research" issues require much discussion before consensus is reached. This will delay the implementation of a solution. To mitigate that, I will try to suggest to find consensus on little steps to ensure we can create PRs for these little steps.

Another risk is formed by the new features because there are dependencies. Refactoring properties will rely both on renaming properties and analyze the def-use chain. To complete this as much as possible, I may guess on the outcome of the discussion or implementation direction and create a somewhat larger PR that shows the functionality as a proof-of-concept. This larger PR can then be dissected later into smaller PRs to reach the same functionality.

Compensation

I would like to carry out this work with for a total of 8000 EUR.

About you

My name is Pieter Hijma (pieterhijma on the forum and pieterhijma on GitHub). I'm a self-employed software developer (https://pieterhijma.net) and as a co-founder of the Open Toolchain Foundation, I would love to contribute to improve FreeCAD as it is an important part of open toolchains.

I have introduced Variable Sets to FreeCAD's code base and introduced the current GUI features. However, I largely agree with all the feedback from users and am highly motivated to improve the user experience.

@chennes chennes added the under committee review Currently being reviewed by the FPA Grant Review Committee label Oct 9, 2024
@chennes
Copy link
Member

chennes commented Oct 9, 2024

@pieterhijma, thank you for your grant proposal: I have begun the committee review process and will keep you informed of the status as it is evaluated.

@shaise
Copy link
Collaborator

shaise commented Oct 10, 2024

Hi @pieterhijma ,

Do you plan to first complete the research for all features and only then start to deliver PRs, or is it going to be in parallel?
Thanks! I think VarSets are important subject.

@pieterhijma
Copy link
Author

Thanks @chennes. @shaise, no I will work in parallel as much as possible. I estimate that the discussion part will take time because the community should have the chance to participate, but in the meantime development can start especially for the small issues category but also for the new features.

@yorikvanhavre
Copy link
Member

This is obviously a good thing to pursue work on VarSets and make them better. I would just like to see a bit more concrete measure on the deliverables, ex: There are currently XX issues on the project, this plan involves addressing all the XX issues (plus any other VarSet-related one that would appear during the time of execution? 😇 ) so we have a clear metric and we can have a proper delivery report that can match more or less what has been proposed...

@pieterhijma
Copy link
Author

@yorikvanhavre, I consider all these issues to be part of this project. Let me try to be as concrete as possible. Any VarSet-related issues that appear during the execution and fall into this scope, I consider to be part of the project as well. I'll elaborate on the scope below. Although it is sometimes difficult to quantify the progress of a project, I think this particular project lends itself well to it. A concrete measure on deliverables:

  • All small issues are in a state to be closed by accompanying PRs and I expect them to close if the PRs merge.
  • There is at least significant progress in the three discussion topics and if consensus is reached in any of the topics in a reasonable timeframe within the timeframe of the project, I will create PRs to resolve the discussion topic. Note that this may be done in substeps as explained in the risks section.
  • There is a PR to be merged for enumeration cases
  • There is significant progress in refactoring properties and the def-use chain. There are either PRs to resolve the issues or the issues describe the problems to proceed further. These problems may depend on the discussion about renaming to move forward, for example.

Concerning the scope of the project, I consider the Add Property dialogs, the extra VarSet dialog in the expression editor, and the property view context menu (for renaming, refactoring, def-use chain) part of the scope. For this work, I can foresee somewhat larger changes to the core of FreeCAD, for example an analysis of the uses of properties for the def-use chain. I consider these somewhat larger change to be in the scope.

Something I don't consider part of the scope, is a major rewrite of the property item editors as I explain in reaction to this comment.

@yorikvanhavre
Copy link
Member

Ok thanks! That's fine for me :)

@chennes
Copy link
Member

chennes commented Oct 29, 2024

Thank you again for your proposal, @pieterhijma. The grant review committee has reviewed this proposal and supports its funding. This recommendation will be sent to the FPA members, who will now vote on the proposal.

@chennes chennes added voting in progress The grant is currently being voted on by FPA members and removed under committee review Currently being reviewed by the FPA Grant Review Committee labels Oct 29, 2024
@pieterhijma
Copy link
Author

Thanks for letting me know, that's great news.

@chennes chennes added funded The FPA voted to fund this proposal and removed voting in progress The grant is currently being voted on by FPA members labels Nov 9, 2024
@chennes
Copy link
Member

chennes commented Nov 9, 2024

Thank you again for the grant proposal, @pieterhijma . The FPA has voted to fund this project. Please email [email protected] to coordinate payment.

@pieterhijma
Copy link
Author

That is great news. Thanks to the committee for their recommendation and to the members for the support!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
funded The FPA voted to fund this proposal
Projects
None yet
Development

No branches or pull requests

4 participants