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

Addressing UX Roadmap Objectives - UI Overhaul #18

Open Phox-Trot opened 1 month ago

Phox-Trot commented 1 month ago

Proposal description

Please explain the essence of your proposal in 2-3 sentences. Include what the proposed changes are, and how it will benefit FreeCAD users, FreeCAD infrastructure, or the overall ecosystem.

I want to address several features from the UX related Roadmap Objectives:

Many of the features in these objectives are interwoven and can be solved with a UI overhaul, bringing FreeCAD up to par with its competitors in terms of UX.

I will create mockups of a new UI layout and UX flow, based on competitive analysis. This new UI layout will serve as an idealized version of what FreeCAD should strive to become with modern UX quality of life features like a Ribbon, Feature Tree, Feature Timeline, etc. as well as addressing specific issues from the Objectives above like resolving terminology issues, eliminating redundant tools, simplifying the initial layout for new users, etc. (see deliverables section)

To be clear, my proposal is strictly in the UX sense. I would not be implementing my suggested changes in code. Instead my deliverables would act as a guide, having solved UX issues, leaving only the technical implementation left. This is opposed to forcing coder contributors to address UX problems using UX processes AND implement their solutions in code (this is 2x the work and 2 skill sets).

I will create a design system for this new design which will be available in a Figma file.

From this new design system I will create a UX/UI Guide Book (it doesn’t make sense to create one for the current UX/UI design because it needs to be radically overhauled).

Deliverables

Figma file a Figma file with the Design System, Mockups, and Example Userflows using the new UI layout

Figjam file a Figjam file (virtual whiteboard canvas) containing documentation of my UX work/process + rationale for design decisions

UX/UI Guide Book a PDF (or other requested format) containing examples of properly laid out screens using the Design System of the new UI layout.

“First-run” Mockup Sequence A sequence of images showing how a “first-run wizard” should flow using the new UI layout.

Timeline

I foresee that the project would take 6 weeks and can start on the project immediately. Corresponding stages: Research & Assessment (Planning) ~ 1.5 weeks UX Changes ~ 2 weeks End Tasks & Documentation ~ 2.5 weeks

FreeCAD UX-UI Overhaul Plan

Risks and mitigation

There are no foreseeable risks of not completing the project. I am looking for full-time work but, if award the grant, I will consider FreeCAD a client and only accept other contracts starting after the end of this one. In the worst case that I need to stop the contract early, FreeCAD can still have whatever work I have done up until that point and payments for the next stages could cease (see payment schedule below).

Compensation

I would like $9600 paid in $3200 bi-weekly increments. This rate is commensurate with full-time freelance UX designers based in the USA and roughly lines up with the project's stages.

About you

My name is Jack Laven, also known as Phox Trot (or Phox-Trot). I was a mechanical engineer with a good deal of CAD experience designing exercise machines in SolidWorks but now, with a master’s degree in Interaction Design, I work in the UX field. Thus, I think I am very well-equipped to draft solutions for FreeCAD’s UX problems.

chennes commented 1 month ago

Thanks for your proposal, @Phox-Trot -- if you are not already part of it, I encourage you to join the UI/UX discussion on the FreeCAD Discord: https://discord.gg/w2cTKGzccC

I'm also going to ask the @FreeCAD/design-working-group here on GitHub to discuss this proposal with you before I send it along to the FPA's grant review committee (it's likely the committee will reach out to the DWG during the review process). I see also that you don't have any history on GitHub -- do you have any examples of work you have done with other Open Source projects that you can share with us?

obelisk79 commented 1 month ago

Jack, nice to see you here, and whoa you're coming out swinging with this grant proposal. Based on your proposal here, I think you have set some rather lofty goals and I'm not sure the project is close to being ready for entertaining a full-on UI/UX overhaul (although I agree that something along these lines would likely be a net benefit for FreeCAD). There are several limitations due to FreeCAD's technical structure/implementation that a fully disconnected UI/UX overhaul proposal would likely sit unimplemented for a solid number of years and as more time passes would become less relevant within the scope and context of FreeCAD itself. The man-hours needed to rewrite the UI would be staggering. Ultimately, the decision for grant approval will come from the FPA of which I am not a member. I wish you the best of luck in your efforts either way.

Kind Regards, Joe

kadet1090 commented 1 month ago

As one of developers involved in UI in FreeCAD with some experience with tools and processes that you mention, I do appreciate the idea and agree that FreeCAD needs something like that. However, we must ensure that it won't get detached from reality and our abilities to actually implement it. Even best guidelines are little of help when they are constantly ignored and diverted from. Just to put an example - I designed a view in Figma for preferences and even though I was both designer and developer in that case I simply was not able to implement the view how I envisioned it.

Like Joe said, we have several technical and resource limitations in the project which we need to account for. Qt controls make it really hard (sometimes not worth, sometimes even impossible without full reimplementation of some controls) to implement designs. We are also very limited in terms of available work force - few volunteers that work in really unpredictable schedule.

Assuming that this will be done, I have some questions.

  1. Will you be available for consultation after the deliverables are done? It is highly possible that once we start implementation it will need to be adjusted to what we actually can achieve. There will also be new edge cases found as it is impossible to get everything right first time.
  2. How do you envision your cooperation with fellow UI developers?
  3. How will you evaluate implementation feasibility? Tools like Figma are designed mostly with Web in mind and modern UI platforms - we don't have such luxury.
  4. Will your proposal affect only UI layer or be deeper (like for example - we should not have independent subtractive / additive tools)

On an ending note - IMHO we should not focus on big UI overhaul as it is unlikely to be delivered. Instead we should focus on finding smaller, isolated areas where we can do better and actually implement it. Stuff like overhaul of one workbench (like it was done for Sheet Metal), or one UI part (introduction of pie menu, overhaul of settings dialog, ribbon UI).

Reqrefusion commented 1 month ago

It is impossible not to agree with what Kadet and Obelisk say. I think this work is more about giving a vision rather than turning it into reality. As Kadet said, full compliance is probably out of the question, but a comprehensive study of UI/UX would be beneficial in many ways. The main question here is how valuable this benefit is for FreeCAD. Because ultimately market price is meaningless. Water is more valuable than diamonds for a thirsty person. Do you think the likely benefit of this project will provide the compensation you are requesting?

Phox-Trot commented 1 month ago

Hi all, I appreciate your comments and questions. I apologize for the extremely long message but I wanted to reply to everyone individually.

@chennes I have joined the Discord and Obelisk added me to the Design Working Group. However, this is recent (as of last week I think?) so no one should be vouching for me from that pool haha. I don’t have examples of work with other FOSS projects; this is my first, although I do appreciate the technical/implementation limitations that come with such a project.

@obelisk79 Hi Joe, I agree the goals are kind of lofty. I appreciate the limitations of FreeCAD’s development style but the way I see it FreeCAD will never get larger adoption without overcoming critical UX flaws. There is a mass of people who want to adopt FreeCAD but can’t because it’s too off-putting and just use free tiers of Fusion360 or OnShape because they are friendlier/more intuitive. I agree the work I do may not be implemented for years, but in my opinion this would be okay. As Reqrefusion posited, this would serve as more of a vision to aspire to; it would be a guide that shapes UX-related contributions of the following months/years. My argument is that without doing this we have an inherent problem of coder contributors addressing problems from both a UX and Coder perspective which is twice as much work and leads them to only tackle small problems because they are the only problems they can feasibly tackle. But this strategy will never overcome the basic UX problems FreeCAD has which make it unpalatable to new users. As a very rough example, a new user would not care about a subtle change to the way parametric variables are presented to them if they cannot intuit how to create an extruded rectangle; many people actually never get to this point because the interface is too frustrating to use and there are other competitors to try instead. This is a shame because I believe FreeCAD really would be those peoples’ first choice if their frustrations could be addressed.

There are a couple of things I can do to make the proposal more digestible:

  1. Cut out the UX/UI Guide Book and First-run Wizard. These are secondary goals that would need to come AFTER the new UI layout which would likely need to be reviewed anyway. Once a new direction is decided on then it would make sense to have a separate proposal for those tasks but it only makes sense to spend effort on those things once development has started in an agreed upon direction.
  2. I can structure my deliverable so that it’s split into accomplishable stages. I’ll expand on that more below. But in general it would be structured so that development of the “final” vision could be accomplished in smaller stages which is more suitable for FreeCAD’s development limitations.

@kadet1090 Your reservations are totally justified. It is a risk that this work may go unappreciated or unimplemented but that is always a risk in UX. Sometimes the vision cannot be implemented as such and this is always where a dialogue between Design and Development needs to occur to reach a compromise/solution. If the ‘developer’ pushed back the ‘designer’ can try to change the design to fit the limitation. And in some instances it is not reconcilable and the limitations just need to be overcome (a new ‘control’ needs to be created). I don’t really view this as a problem, it’s more of a natural part of software development (when UX-driven). But to counter your view of FreeCAD’s development limitations, volunteers with an unpredictable schedule seems like a flaw but it’s also FreeCAD’s strength. There aren’t the same types of deadlines or responsibilities to stock holders to pump garbage out quickly. If organized, things can be done properly even if done slowly.

To address your questions:

  1. I can be available for consultation. I can always be available to answer questions or draft a quick example for clarification. If there is a lot of work to be done that may be more complicated but another proposal could be drafted for me to act as a consultant in some capacity. This is a good point and I’m not sure; I am open to suggestions. I don’t know what my schedule would be like after this proposal and I’m not in a position to dedicate a lot of time unpaid. But I’m open to suggestions of how this could be arranged if more work needs to be done besides answering questions/clarifying past work.
  2. Do you mean during the project or after? During the project I foresee myself asking questions about things like how styles/layouts are applied currently (basically giving myself enough information to make informed design decisions). After the project I would act as a ‘consultant’ clarifying designs as needed. I would certainly be open to discussing limitations and coming up with solutions that work. I have worked in an agile software development team as the sole designer before so this isn’t new to me. But as I said above, I’m not in a position to dedicate a lot of time to this unpaid as other might be able to.
  3. Perhaps you could clarify this question will an example, because I’m not sure I understand. Figma is not designed specifically for web. It’s basically Photoshop tailored for UI. The deliverable will essentially just contain pictures of how screens should look once implemented in code. Sure the ‘pictures’ contain useful information like fonts used, margin/padding, color variables, etc. but these are not things that are exclusive to web development.
  4. The proposal will address both surface-level layout and deeper things like investigating changing in both nomenclature AND function of “Pad” into a simple “Extrude” which could have subtractive and additive functionality as in some other CAD programs (not saying I would make this change as written but it needs to be investigated as it’s cited as the first stumbling block for new FreeCAD users). As I referenced in my response to Joe, this work could structured so that it’s arranged in development steps: UI layout first (without changes to nomenclature or functionality) and then a subsequent step addressing deeper changes. This would make implementation more feasible for FreeCAD’s development limitations.

@Reqrefusion Your assessment is correct. I want to make a vision for what FreeCAD would be. I fully understand it might not be implemented as envisioned for years and it may require changes to be feasibly implemented. However, I see value in creating a guiding beacon as without it we are stuck concentrating on small fixes where feasible and leaving major introductory UX problems untouched because they are effectively too large for once person to take on. The question you ask is straight to the point “is this worth the money?” and that is for the FPA to decide but I would not have proposed it if I did not think that it was worth it. But I admit that someone observing financial spreadsheets may not feel that way as the return on this investment may not come for literal years.

If I don my entrepreneur hat for a moment, what I think is that there is a mass of people who are dying to use FreeCAD but it’s too off-putting to get into. Instead they flock to the free tiers of OnShape and Fusion360 despite not meeting their desires like saving their work locally or keeping it private, etc. I think that FreeCAD’s current development strategy will never allow it to come up to par with the layout and user experience of these competitors. Therefore there is an unsatiated demographic in the market, some of whom would even be willing to pay for a decent CAD package just not $400/year as Fusion360 is requiring. Someone like myself might donate $80 to use FreeCAD if it was as easy to use as Fusion or OnShape. I don’t know how many FreeCAD users there are and I don’t know how large this mass of potential users is but it’s certainly an order of magnitude above $10,000 in potential donations. These returns would not be realized for years. I am well aware of this. But with a large enough user base FreeCAD could become something like Blender with full-time developers which makes a huge difference. And this becomes a feedback loop drawing in even more members. It’s just difficult to get over that first hill and make a product that can compete.

chennes commented 1 month ago

I don’t have examples of work with other FOSS projects; this is my first, although I do appreciate the technical/implementation limitations that come with such a project.

Do you have a CV and/or portfolio of previous UI work that you can share?

Phox-Trot commented 1 month ago

@chennes Yes, my portfolio is jacklaven.com. Unfortunately most of my professional UX work is confidential so there are not pictures of my work only a description. But some work from my master's program is available.

My resume is attached. Jack_Laven_Interaction_Designer.pdf

maxwxyz commented 1 month ago

@Phox-Trot just to understand this better (don't get me wrong) - will this

  1. just be a general bigger concept like "it could look like this, add ribbon, pie menu, other ideas and arrange the UI like abc" so mostly general UI concepts or
  2. also UX related - find inconsistencies of current tools, propose better workflows for tools, merging WBs, which tools are generally not available in FreeCAD but in other CAD programs, which commands go where (toolbars, menus, context menu,...) Which items should be in the property view, which one in the task dialog / what happens on double click on tree items or geometry in the 3D view? Is it focused on all main WBs or only Part Design? Currently Part WB behaves completely different from a UX standpoint - and other WBs like BIM or TechDraw need different UX concepts. Also, will you provide UI deliverables like how should the toolbars look, color, new tool icons,...?

IMO second one is needed although we know it cannot be implemented quickly. Not sure if just a broad concept idea is needed - I'm not sure what can be done in just 6 weeks including research to be honest.

Reqrefusion commented 1 month ago

also UX related - find inconsistencies of current tools, propose better workflows for tools, merging WBs, which tools are generally not available in FreeCAD but in other CAD programs, which commands go where (toolbars, menus, context menu,...) Which items should be in the property view, which one in the task dialog / what happens on double click on tree items or geometry in the 3D view? Is it focused on all main WBs or only Part Design? Currently Part WB behaves completely different from a UX standpoint - and other WBs like BIM or TechDraw need different UX concepts. Also, will you provide UI deliverables like how should the toolbars look, color, new tool icons,...?

@maxwxyz brings up a very valid point. At what level do you consider depth of detail? By the way, FreeCAD includes many unrelated things(For example, I haven't even managed to enter BIM Workbench yet :D), and it is really difficult to master all of them even at lowest level. Will you bring an design that covers all of these?

MisterMakerNL commented 1 month ago

I do like your enthusiasm for trying to fix this UI issue and making a grand, The 10k sounds as much money but your hourly wage is pretty low. So I don't see a lot of issues with that. Your cv is pretty impressive for a starter, Minnesota, Switserland and central Europe (which is the Netherlands off-course).

I just do not agree with this:

FreeCAD will never get larger adoption without overcoming critical UX flaws.

The biggest reason it isn't getting adopted by companies and more experiences CAD users is not the UI. It's the TNP issue. Maybe for consumers it matters a bit, but also they will not keep using it if their CAD model breaks every-time they update it.

But that doesn't mean we can't do both at the same time. The thing I am very worried about is that we get a lot of things that is already in the 2000+ issues on Github and are known issues, but we just don't have the developers to fix them. And even if they are not in the list, that would mean this project can easily add another 200 issues to the list. And so that would get us nowhere.

So this project would only work if you/we find someone(s) who can implement it too. And as @kadet1090 said it might be wise to know the limitation of the software we use so we don't get a star-trek holodeck interface as suggestion. ;)

chennes commented 1 month ago

Thanks for the additional information. I am forwarding this application to the FPA's Grant Review Committee for review. That process typically takes around two weeks, at which point the committee makes a non-binding recommendation to the FPA about whether they believe this project should be funded. That is followed by the official FPA vote, which typically takes another 1-2 weeks. I will keep you apprised about the status of the review as it progresses. Both committee members and others from the FreeCAD community can continue the public dialog here.

Phox-Trot commented 1 month ago

I'm going to try to respond to everyone's comments/questions again but if I miss something specific you'd like to clarify please just ask it again.

To @maxwxyz ’s question, I imagine it as a combination of the two. It would not just be an ultra-fancy skin with UI ideas and how they could look in a holodeck theme (as MisterMaker jokingly suggested). Despite calling this an “overhaul” I would attempt to make as few changes as possible, so that it is actually feasible to implement. I wouldn’t introduce new fonts, colors, etc. (people can already create their own style sheets anyway) and I would only change icons where needed to prevent confusion or increase clarity.

My perspective was one from the point of attracting new users which is why I referred the roadmap objectives:

I wouldn’t suggest any changes without investigation/research/user testing, but as hypothetical example to show the types of changes here are some things I could conceivably suggest:

You probably don't need to pay anyone for these suggestions as you've likely already received them in forum posts. What I would be doing is researching and validating them through user testing and delivering mockups of how they should be implemented. And if it's a complex interaction I will provide a guide for each interaction for how the flow should proceed for the best experience.

EDIT: I forgot to add, that if the UI/UX Guide Book and First-run wizard are removed from the proposal then I would re-structure the proposal to 4 weeks for 4/6th of the pay ($6400 USD).

yorikvanhavre commented 1 month ago

I am personally favorable to any kind of work, or exploration, that can lead us to having better UX workflows. I also think now, after the 1.0 release, is an excellent time to do that.

My concern is, basically, a LOT of people come to us saying "you guys do it all wrong, let me tell you guys how it needs to be done" (not referring to you here, just what happened before). It goes without saying, they usually leave frustrated after nobody has listened. I would say the biggest "issue" here is not technical, it's human. FreeCAD is not a top-down project, it's a bottom-up project. FreeCAD developers are people, working voluntarily on FreeCAD, and they basically do whatever they feel like doing.

This is the big and precious strength of FreeCAD, but also makes it very difficult to "steer" in some particular direction. We could do all the plans we want, it will just not be applied.

What we are trying, at the FPA, is to build recipes to attract developers and encourage them. You are a FreeCAD developer, you know exactly the right tool you want, and you code it the way you think is best. Sticking to some UX guidelines will be pretty low in your priorities. ("Adoption" is a non-priority for many devs). But if we have nice toolboxes, widgets, pieces of code, templates, recipes to offer to them, then they'll want to use them. Of course we all want FreeCAD to be cooler, better, easier.

In other words, IMHO if we don't have implementation tools (whatever that would be), the plan is just likely to rot out there.

Not sure how that would fit into this proposal, and maybe it shouldn't and be left for a later stage, but somewhere it'll need to be addressed if we start working on an UX plan.

PaddleStroke commented 1 month ago

+1 the resulting figmas will be impossible to implement. Both technically and humanly (many people are against even very small UI changes, let alone a overall. And also we don't have the workforce.

What freecad needs to fund is actionable and concrete changes including implementation. For example :

chennes commented 2 weeks ago

The Grant Review Committee has evaluated this proposal, and feels that without a concrete plan to implement the changes this project is not a good use of the FPA's funds. There are many proposed UI schemes already on the forums, and for the most part they languish for want of developers. Design of FreeCAD's UI cannot, and should not, be set forth by a single person working on an isolated grant, but rather needs to be a community-driven effort that comes with an implementation plan and buy-in from a broad cross-section of the development team and FreeCAD users. A top-down approach such as this proposal is not compatible with our Open Source development model.

Note that this is not a binding recommendation, and the proposal is still being forwarded to the FPA for voting.

chennes commented 1 week ago

@Phox-Trot thank you again for your submission. The FPA has voted to decline funding this proposal. If you are interested in reworking, one member suggested they may have been more inclined to vote for just the Research and Assessment phase of this proposal.

Phox-Trot commented 1 week ago

Firstly, thank you to everyone for their time and consideration.

@chennes, can you be a little more specific about what the FPA would find most fund-worthy vis-a-vis the Research and Assessment phase? In my mind, that phase was partially for my own benefit in order to be able to accomplish the next 2 phases. I'm not sure how useful it would be to the FreeCAD development community by itself as most of them are probably already familiar with FreeCAD's competitors and building a spreadsheet with Hotkeys for analogous functions across the programs is a task that anyone (not specific to my UX skill set) could likely do in their spare time if they wanted to.

In my opinion, what would be more useful is a new proposal, focusing on research and assessment, but one that contains competitive analysis + usability testing. If this is done in a professional UX capacity, then we have concrete evidence about the problems users have understanding the interface and where they get stuck rather than relying on forum posts and YouTube videos (which is not very good data to draw conclusions from). The usability testing would involve a number of potential FreeCAD users (not existing users) and would take the form of me remotely interviewing via a video call and having them do something like try to build an example part. Then I can document where users get stuck, analyze the interviews for underlying reasons why they get stuck and then make some suggestions for the future.

If this is something that the FPA would find useful then I can write up an explicit proposal about it. This would be a shorter proposal (maybe ~2 weeks' worth of work) and thus based on my schedule I might have to do it part-time over a series of weeks, but I imagine that is not a deal-breaker based on how FreeCAD operates. If desired, should I do that here or create a new proposal?

Lastly, just out of respect for the FPA's funds I feel I should acknowledge that this proposal could suffer from the same problem of the work essentially going unused. This work would be very useful to a company that does top-down software development but as others pointed out FreeCAD developers basically work on whatever they feel like and if they don't want to develop anything related to the research, then it may not be worth the funds. They may simply even ignore the research for their own preferences. <- You can tell I am not a salesman at heart. I just don't want this aspect to be overlooked.

chennes commented 1 week ago

It's difficult to state what "the FPA would find most fund-worthy" because the FPA is composed of a group of individual people, each of whom has a vote. Like FreeCAD's developer group, the FPA is not a particularly hierarchical organization, and each person's opinion is their own. I passed along to you the comment from one of the voters: most people just vote, without further comment. Here's the original text of that post:

The Research and Assessment phase looks like it could provide a useful analysis of FC's "feature parity" with other CADs. Useful to me anyway, as I am not familiar with other CADs.

As you see, not all developers are familiar with how other CAD software approaches things, so a document actually describing that might prove useful. Usability testing of the current interface would also likely be of interest, but of course would have to focus on some small subset of the UI and would have to be done in coordination with the Design Working Group. Actually, nearly anything you propose will end up getting coordinated with that group (@FreeCAD/design-working-group here on GitHub). They may have more input for you here.