-
Notifications
You must be signed in to change notification settings - Fork 10
Tracking UI design progress #157
Comments
These are a first round of design mockups created by @guidotheelen Also, same files: https://drive.google.com/open?id=1b-VBfpQhjhMuBOaIcfpxL2QEsFU08flH for better browser access. |
Quick notes:
Home
Report
Dispatcher 1
Dispatcher 2
|
The end of the FBD dispatcher process should be a big gold-star/red-ribbon "congrats!" page... "Yes! you have made a PR to the real GF repo, your PR link is github.com/google/fonts/123456789, subscribe to that issue to follow the discussion of your submission (here's how! LINK), and fontbakery.host.com/leaderboard#family-name is your link to your row in the 'FBD Leaderboard' Progress Table page to follow the progress of your family all the way to the GF production API" And then fontbakery.host.com/leaderboard#family-name would open like this link opens to highlight the row indicated by the URL fragment. And then on that Leaderboard, if a repo has been successfully pushed to production recently (TBD) and has an update where the FB checks that passed last time did not regress, and no new checks FAIL or WARN, then it should be really fast to make a PR. And we'll have the kind of thing I described as the vision in the the Typecon 2018 presentation deck |
I wrote,
Lasse said on chat,
From a cybernetics point of view, i view the purpose of the FBD project as a whole to be winding tighter and tighter the process loop of making updates to families a foundry releases (in this case to GF.) So, I think a graphic design that shows "you are in sandbox/drafting mode, nothing is final" can communicate this, while not making a "second loop" part of the user flow. The ubiquity of a 'back' button, left of a "next" button, would also help communicate that the process is not one-way-gated. |
Thanks for the feedback, @davelab6, and the between-the-lines feature request for Wakamai Fondue ;-) These were early concept sketches to wrap our head around the process, and we have in the meantime addressed most of the points you mentioned. We want to make this as much of a linear process as possible, with indeed a clear end-of-process indicator and a big fat red button to actually submit. We also want to limit user interaction ("asking questions") to the beginning and end of the process, so you don't have to keep checking the page in case the process needs something from you. The current plan is to implement this in the most basic HTML/JS setup possible, allowing you to go through the process in easy steps, then adding flair/UX/design/candy/paint/etc. @guidotheelen and I are working hard on this and will report back here with progress! :) |
Re: Sandbox There was another reason for Sanfbox btw: feature branches. Viviana asked explicitly to work from a feature branch in Sandbox, pre PR to the master branch. To keep sources (the repo where the upstream fonts come from with it's setup) for this kind of workflow unconfused with those that eventually go into production, the "sandbox" is a handy separator. |
Thank you both! I just ran fontbakery-dashboard dropper on a Japanese font (https://github.com/satsuyako/CherryBomb) and it seems the 'kingpin' check of filenames being canonical should have a very large graphic FAIL message, and @felipesanches please note that the check result should let users know the primacy of this check and that it means a bunch of checks are skipped. Also, I guess it is possible to tell the user more clearly what to rename their file to, in the case that there is only 1 file in the family set. https://fontbakery.graphicore.de/report/23364f76-abba-4152-807d-1cbb1c41c8f6 So, I quickly renamed the font file to the canonical name and reran the checker: https://fontbakery.graphicore.de/report/246f2d0d-a7da-44b3-a0ed-dcd6d41a3ab4 What I see is that some WARN results appear before the FAIL results, but all FAIL results are higher priority than any WARNs and so the ordering should be addressed. Additionally the checks have some logical groupings - a few are about copyright/licensing, a few are about family/style naming, a few are about vertical metrics, a few are about fiddly metadata... - and those should be grouped too. |
@davelab6 this much more than just putting some CSS on it. |
Hey Dave / Lasse / Roel, Thanks for all the feedback so far. Here are the new mocks. Home
Dispatcher Step 1
Dispatcher Step 3.1
Dispatcher Step 3.2
I'll make an other mock of the Preview step. Here we really want to make clear to the user is the action is directed towards production or not. (By doing this we can lose the Sandbox/Production mode) Let me know what you guys think of the new mocks! I can't wait to get going in code! |
I just had a call with @guidotheelen to discuss the current iteration of the UI mock ups. He and @RoelN do a good job of simplifying the user experience. Though one thing that I think we need to discuss is indeed the infamous sandbox mode and maybe some other details/decisions. While I was writing this @guidotheelen posted his mock-ups. Now I'm going over some of the text again and include info from the post above. Adding a new familyA lot of that stuff is done in the startup of a dispatcher process, only to the end, that someone, with the rights writing the spreadsheet, eventually has to add the repository data to the spreadsheet that we use. I'd like to cut that short and simply file an issue directly on the fontbakery-dashboard repo via the dispatcher. Then someone with the right permissions (writing the spreadsheet) and knowledge should make sure the entry is added and working. When done successfully, the process can be started and it proceeds automatically to the manual file package evaluation, cutting out like 2 screens of form input and evaluation loop. I don't think we can skip having the user check the files package completely, as it's not always clear what to expect of the file package contents, and thus it's hard to asses it automatically. If e.g. a font-file is missing from the files package, e.g. because there's a typo in its file name, we would probably run through all of the process without explicitly noticing that.
That's the same point. The request would be made as an issue, probably on this issue tracker, via a form in the dispatcher. But, no process would be created from that. The sandboxThe longer I think about it, the more I realize that the main feature of the Sandbox is not that users feel comfortable with trying things out. The actual feature is enabling the feature branch workflow. When working on a feature branch e.g. My argument now is, that there's a value for us in having the upstream of a project defined as a single source, hence, it should not be possible to create a PR to google/fonts using the dispatcher from a feature branch source. Otherwise, we end up allowing multiple upstreams for any project, creating eventually confusion. I think the discipline, of having just one upstream source defined, that we enforce upon the projects is acceptable, as it is the common way of handling this, as well as it is a good way to make our database less ambigous. There can be many "feature branch" sources in different repositories for each family at any time. So, given the screenshot above. We could have just one list of "Sandbox" and "Production" sources mixed together. However, choosing "ABeeZee" will allow you to create PR to google/fonts, while choosing "ABeeZee:Graphicore Fork" should not act as an "upstream" and hence not enable you to create a PR to google/fonts. It wouldn't be a big deal to change the upstream of a family if it is needed to move either (file an issue here), but I think the value of having it explicitly unique is good for our data hygiene. In the mock-up above, in Dispatcher Step 1 we can choose which tasks to run. This is a new suggestion in this round. I think that's maybe nice, and if we cut down the files package task to just a single assessment (described above) we can really move quickly to lunching the workers. I'm not fully convinced if choosing up-front is good or if that is removing the decision whether to run the task to far away from actually running the task.
I don't want to make a bike shedding out of this, but how do we know if this is actually desirable? I mean the goal is obviously to make the decision-making easy, however, we shouldn't forget that we're asking the users only for decisions that are too hard to answer automatically. The select-inputs after checkboxes for diffenator and diffbrowsers plus the line "All the tasks are mandatory for a production PR" are from my feedback previously today, so is this remark a reaction:
(Offtopic, wording @guidotheelen: we use "check" for Font Bakery checks, "test" for unit tests and in here maybe "task" or "tool" for running these QA tools. I suggest: "All the tasks are mandatory […]." But that's open for discussion.) Here we're back again to sandbox vs. production. I like the idea, that for a feature branch worklfow we can run e.g. only one tool. But, why should we allow a PR to production if we didn't run all of our quality control tools, it totally defeats the purpose. Of course, not without an exception: diffenator if there's nothing to diff against, because the family is a new on-boarding rather than an update, it's cool to skip, but I'd like to see that decisions made explicitly and best backed up by a comment why it is cool to skip that task. For the other cases, these select menus allow for cases where:
One point I want to make here is: we ask people these questions because it is hard to answer them automatically, and hence, removing these decisions is not necessarily the right thing to do. Maybe rather add more information, like the list I just wrote above, inline accessible (maybe via an ℹ️ icon) next to the question, could help making those decision from an informed perspective. The other point I want to make, no matter how we call it, sandbox or not, we shouldn't be tricked into believing that all processes are equally qualified to conclude a quality assurance procedure before putting the results into production. Hence, from some processes it should just not be possible to create that production PR. That would effectively be the sandbox again, but maybe inexplicit and only visible much later in the process. I'm not convinced that's a good thing. That line of warning in the mock-up is a good start, but we could as well put a shovel and a sand-shaper on the top as soon as we know that it won't qualify as a production process. Sometimes, by shutting out decision making, we also reduce versatility. I don't know if that's a good thing, but it could narrow the general usefulness of the dispatcher a lot. Order @davelab6:Lastly:
and:
Either you group logically (i.e. by section, maybe add a group heading) and order within these by LOG-level (and then maybe priority) or you create a mess where you replicate all section groupings per Log-level. Ordering by LOG-level first IMHO should as well get rid of any section grouping information as it's too fine grained to make sense to anyone. However, ordering by section first will lead to some WARNs to appear before some FAILs. |
Rod defined 4 levels of change for each update. When users make a PR, they should certify which level their PR will be treated as by the downstream recipients of that PR. It may be possible to autodetect these levels, or provide a smarter default, but to be safe the default should be 4 (the worst) and users should have a very clear "big red button" UI to change the levels.
Shape changes and metrics changes could be split out, too |
@m4rc1e do you see any simple ways to set a better default for this? |
It feels to me that these 4 combinations are actually 2 binary choices. So maybe the user interface could be 2 mandatory simple questions that have to be answered (by clicking answer buttons perhaps) instead of one single "big red button" with somewhat more complex text that might end up being ignored. |
I agree a simple quiz format might work well. How would you phrase the questions and answers? |
Rod also noted, shape changes and metrics changes could be split out |
Question 1: Does this submission include changes to glyph outlines?
Question 2: Does this submission include changes to font metrics?
|
@guidotheelen I have seen your posts now and I gotta say that I love the way you organized it all. Super cool! I have a few comments to make (and listed below) on the portions I disliked, but please be aware that the overall work you've done has been pretty great in my opinion. objections:
|
@graphicore Thanks for the detailed review. This really helps me to understand the system better! I'm just going trough some remarks you made:
I think this is way better than the current workflow! But how does a user know when he's able to select the new font family in the dropdown?
This is a feature we definitely want to keep. Maybe we can add an option in when the task is finished. -> Compare font against other version.
This is a good one, the choices are not self explaining at the moment. Someone with a lack of technical knowledge would have a hard time making a choice here.
Would be really cool!
An other option could be to let the user know his process does not yet confirm the Production procedure within the 'Preview' step. When the user decides to still run a specific task he excluded in the beginning, the user is still able to convert it to a production release. @felipesanches Thanks for your remarks! We are getting somewhere! 🏃♂️
Good points, will make sure these are implemented.
Check! The oven still needs some attention.
Haha that's cool! Yeah maybe it's good for now. @davelab6 I added the questions in the first dispatcher page. Is this the right place? |
Hi to all! Sandbox (or selected name)I still support the idea of having a “QA check” mode in an independent way of the Production one, for all the mentioned reasons, that I would summarize as a Pro and Cons list: PRO’s
CONS
Finally, in any case, whether is a unique mode or not, some explanatory text would be necessary to frame what the user will need to review when checking all the results of the tools. Fonbakery already has its system of Fails and Warns texts with rationals, but the user will need to know what would be the key factors to pass or fail on the Diffenator and BrowserDiff reports (particularly on an Update process). MockupsFB Home
FB Report
Regular button behaviors like "over" and "active" with a clear indication on which one is currently selected or "on" could work best, as well as prioritize what is the first result displayed when the report is opened. Besides, one of the best things about this online FB report is that it includes some Family checks that the command line checks don't (e.g. Caladea didn't report any Fail after the local checks).
Dashboard 1
Dashboard 3.1 / 3.2Traffic light colors here are useful to visually communicate the state of the process. Therefore, the use of the same colors should be avoided on other UI elements like the icons for the Steps. For those other uses, the color scheme could be more related to the Font Bakery blue palette. It would reinforce the wayfinding leaving clear the hierarchy about what is process information and what is context information. At the same time, the structure for that sign should be the same. In this case, if it's the little tag as the yellow ones to make it clear to understand as an indicator of the state of the process. Otherwise, using it as a background color of a title would seem as an identifier of a type of task and thus it creates a hierarchy conflict. E.g. here the name Diffenator stands out over Fontbakery, which is the tab on which the user is. Review InfoI'll leave some comments on the previous mockups in case they can help for the new version If this note information comes from the “Note” field on the previous interface, it would be more evident to suggest its content with a grey text example, e.g. “The update is created to …. The "Thank you" message in the current version is a friendly one that could be kept and left above the "Process information" title. Last but not least, to provide some instructions on how to use the Dispatcher or other explanations that could be needed or useful, they could be given in a system of floating windows like in https://typetools.typenetwork.com/ ( pics below) |
Thanks a lot everyone for the feedback! @guidotheelen I'll answer your questions below:
The users have to log in with their Github handle and the issue will be created with their account. So when the issue is commented or closed, they will be notified via Github.
I think so, yes, I expect users to occasionally iterate quicker than we can put things into production. It should make sense in some cases to compare rather with GitHub than with production.
Yes, we could run both diffbrowsers and diffenator "speculatively" with the "best" source (I suggest we have an ordered list of sources and pick the first that can provide files, i.e. that has an entry for the family name). When that's finished, the user could still run with another source. |
Thanks for all the feedback! @graphicore good remarks!
This could look something like this: @vv-monsalve Thanks a lot, really useful feedback here!
Would love to still use the oven, but in this state it's a bit too much. I'll create an other less in you face version.
We could make the oven responsive. So is scales when more fonts are added.
We already want to include a link to the docs in the nav bar, but we still want to encourage users to read the explanation. I think it could work to just place it underneath the explaining graphics.
When the report is opened, all font weights are displayed. Only if a user want to limit the results he can edit the selection with these checkboxes.
Good idea, will look good as well!
Good call, this is a wireframe that slowly transformed in a design mock-up. Using Material design will improve this when we move on.
+1
Tried it out in the image above. Good call!
I don't think this is the right place, but we still could use a "Thank you" message somewhere.
I this this is a bit too invasive. If we explain the expectations and possible user interaction in the right way, we probably don't need it. |
@guidotheelen you are fast :D
Yeah, it looks clearer now I think. Another suggestion It could be also good to keep the step name "Quality Assurance" as a title here, as well as in the previous interface |
@vv-monsalve Ahh good ideas! Thanks 👍 |
No description provided.
The text was updated successfully, but these errors were encountered: