eclipse-cdt-cloud / theia-trace-extension

Eclipse Theia trace viewer extension using the Trace Server Protocol (TSP), through the tsp-typescript-client. Also the home for reusable JavaScript libraries: traceviewer-base, traceviewer-react-components
MIT License
49 stars 60 forks source link

Create general design guidelines #151

Open ebugden opened 3 years ago

ebugden commented 3 years ago

Create a document with style principles that apply to the whole project or several component types (ex. General layout principles, colour palette, UI component semantics).

Prerequisite: Create chart style guidelines #152 before diving into defining these more abstract guidelines.

Inspiration

Style guidelines can be strongly inspired by the VS Code and Grafana style either by:

grafana-dashboard-example vscode-editor-example

If reverse engineering guidelines, the tag colours in the Grafana live demo dashboard management could be a good place to get an idea of the colour palette used:

grafana-tag-colours

Content

Style guidelines could be structured as:

guidelines-structure

Include good and bad examples to illustrate the principles. Example pictures are often best (rather than text explanations).

Could also include subjective or human checks (ex. Does it feel visually intimidating? Do you feel invited to explore?). High-level user-focused questions can act as sanity checks. They can help avoid tunnel vision by encouraging devs to think about the project from a different perspective.

ebugden commented 3 years ago

The issue description frames these guidelines as mainly layout and graphic design principles. Discussing that level of high-polish this early in the design process doesn't seem super relevant.

Instead, these guidelines could be reframed as more generally applicable "design guidelines". These guidelines would be a framework of principles to structure and streamline the design process (ex. facilitate feature prioritization).

Below are some ideas for content that could be included.


Design philosophy

We aim to build a tool:

Guiding principles

Thoughts to keep in mind when designing. Quick sanity checks that lay the foundations for the project’s design culture.

Note: These principles can be broken if appropriate, but it’s important that any breaking is an intentional (and justifiable) decision.

Build using existing UI conventions.

By not reinventing the wheel, the UI remains consistent with user expectations. Other benefits:

Examples of UI conventions:

Conventions depend on context. For example, the standard position of window options is different on Windows and iOS.

iOS: image

Windows: image

Build based on the user’s goals.

Ask yourself: Who is the user? What are they trying to accomplish? Be aware that a user’s needs vary depending on their profile (ex. First time trying the tool vs. Experienced user). Benefits:

See “Feature prioritization & development” below for more details.

The more important the information, the more it should stand out.

And lower priority information should stand out less. Ex. Do order table items by importance, but don’t use thick black gridlines.

Shield users from unnecessary complexity.

Overview first, details later. Increase complexity only when necessary (or when explicitly requested by the user). Benefits:

Feature prioritization & development: Who is this feature for?

Thinking about who a feature is for can help with:

Users can be divided into four groups based on their level of investment in the tool:

Each of these four stages can be characterized by different:

image

Also keep in mind:


CC: @ssmagula

ebugden commented 3 years ago

Principles about good analysis methodology could be included so that they're considered in design decisions and feature prioritization.


UI priorities

Characteristics and feature priorities for UI that supports good trace analysis methodology.

An investigation is iterative.

An investigation is interactive.

ebugden commented 3 years ago

From @ssmagula's report "Making sense of trace visualizations":

[Ben Schneiderman's] paper, “The Eyes Have It: A Task by Data Type Taxonomy for Information Visualizations” has been cited over 5,000 times. He calls the checklist The Visual Information Seeking Mantra, but most simply call it The Mantra.

  1. Overview: Gain an overview of the entire collection
  2. Zoom: Zoom in on items of interest
  3. Filter: Filter out uninteresting items
  4. Details-on-demand: Select an item or group and get detailed information
  5. Relate: View relationships among items and groups
  6. History: Keep a history of actions to support undo, replay, and progressive refinement
  7. Extract: Allow extraction of sub-collections and of the query parameters

Perhaps this interactive visualization mantra can serve as a seed for a future set of more custom, more tracing-specific design principles

ebugden commented 3 years ago

Collection of other company's data viz guidelines.