blob: 300963bf58d0448d8c9c0191a4c6919c3dbf7414 [file] [log] [blame] [view]
Benedikt Meurer4385a562024-08-21 13:19:521# Chromium DevTools UI feature checklist
2
Benedikt Meurer4dc9c702024-08-22 07:23:323[goo.gle/devtools-ui-checklist](https://goo.gle/devtools-ui-checklist)
Benedikt Meurer4385a562024-08-21 13:19:524
5Chrome DevTools is used by most web developers nowadays. In user interviews and
6informal conversations web developers voice the opinion that Chrome DevTools is
7great, but they have a hard time finding the right tool for the job. Naturally,
8the Chrome DevTools suite will grow over time, as the Web Platform keeps on
9growing. Without intervention, this will *clutter* the UI of Chrome DevTools
10even more. This document here should serve as a checklist when new features are
11added to Chrome DevTools' UI.
12
13Please reach out to [[email protected]](mailto:[email protected]) (PM) or
14[[email protected]](mailto:[email protected]) (UXD) with any
15questions and concerns.
16
17[TOC]
18
19In general there are some categories which are important to look at:
20
21## Measurability
22
23We should be able to define and measure the success of a feature. Ideally, we
24treat every feature as an experiment which needs to prove itself before it can
25stay forever. (not literally with an experiment checkbox, but as a mental model)
26
27* Can we clearly state what our **goal** is that we want to solve?
28* Can we formulate a **hypothesis/assumption**, how we believe our feature
29 will solve this goal?
30* Can we **validate** this and see if our feature actually does what it
31 should?
32* And finally, can we **remove/revert** a feature, if we see that it's not
33 used at all?
34
35## Strategic fit
36
37Does a new feature directly support our strategy? Is a feature weighted against
38our backlog? Does a feature help us in reaching our strategic goal? If not, we
39should de-prioritize it.
40
41## Relevance
42
43How relevant is a feature to our user base as a whole?
44
45Does a feature support one of our core developer journeys or is it related to a
46niche area?
47
48* Are we over-fitting to a tiny niche part of our user base?
49* From the perspective of the implementing team, each feature is super
50 relevant, needs to be discoverable and should sit in the prime UI.
51* We as a product team should carefully choose which user journeys are our product
52 core and if a new feature adds distractions to these journeys or enhances them.
53* Is a feature relevant for the mainstream of non-Google engineers? Or is it
54 mostly a Google-internal feature?
55* Is it adequate to expose a feature to all of DevTools' users, even if only a
56 tiny fraction will ever use it?
57* Should the feature be shipped to all of DevTools' users or rather be made
58 available as a DevTools extension?
59
60## Potential impact
61
62Is a feature a life-saver or just a quality-of-life improvement?
63
64* We should prioritize impact for our users.
65* Can developers live without this feature? How do they solve the problem
66 right now? What's the worst that would happen if we don't develop this
67 feature?
68
69## UI complexity
70
71Is a feature easy to revert/remove if we figure out that it's not used? Or will
72it stay forever in the UI and clutter it even more?
73
74What's the least amount of work/UI we need to test how a new feature is actually
75used?
76
77Is this extending an existing feature or creating something new? Which (and how
78many) other features are in its vicinity on the screen and panel?
79
80* We should favor solutions, which can be easily reverted or removed if we
81 figure out that a feature is not really used. Deeply integrated UI solutions
82 tend to stay forever.
83* Instead of going *all-in* as the default, we should add features
84 incrementally and measure along the way if a feature is quickly becoming
85 mainstream or stays rather niche. Based on this the next iteration can
86 either extend the feature or further deemphazise it in the UI.
87* UIs should not be overloaded.
88* Avoid requiring major UI reworks if it is just extending an already existing
89 feature
90* We shouldn't default to adding a new "panel" for every feature, just because
91 the feature team is looking at the feature in isolation.
92
93## Placement and discoverability
94
95How many user interactions are needed until the user is using the feature
96(without Command+P)?
97
98* Sensible thresholds:
99 * **< 3 interactions**: Very accessible, good if it is intended to be used
100 by most users
101 * **3 < 6 interactions**: Likely somewhere in a front panel, likely good
102 for most of the features
103 * **6 < interactions**: This is hard to find!
104
105The more often something is used, the easier it should be able to be opened.
106
107## Target audience
108
109Which user type is going to be using this feature? How many of these users?
110
111Will this primarily be used while debugging production instances of web
112applications (obfuscated code, no source mapping) or dev versions (local, source
113mapping, source code available)?