FreeCAD / FPA-grant-proposals

Submit grant proposals to the FPA by creating an issue in this repository.
https://fpa.freecad.org
0 stars 1 forks source link

Improve User Experience VarSets #17

Open pieterhijma opened 1 week ago

pieterhijma commented 1 week ago

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):

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:

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 commented 1 week ago

@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 commented 1 week ago

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 commented 1 week ago

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 commented 1 week ago

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? :innocent: ) 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 commented 1 week ago

@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:

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 commented 1 week ago

Ok thanks! That's fine for me :)