blob: eb9f031b1b62b2c9ff3bef22252500934ca0cdc4 [file] [log] [blame] [view]
Michael Hablich37becd02019-11-12 22:01:011# Chrome DevTools Design Review Guidelines
2
3Please make sure to adhere to the following guidelines when applicable. There are multiple drivers for the formalization of the design process in Chromium DevTools:
41. Make it clear to the Individual Contributor (IC) who the decision makers are and highlight what the path forward is in the case where a project is not proceeding due to technical disagreement.
51. Create a forum to have straight-forward design discussions.
61. Ensure that the Technical Lead (TL) and the Engineering Manager (EnReOw) are aware of all significant changes and give them a chance to comment on designs early on.
71. Increase the involvement of all contributors all over the globe.
8
9## Summary
10
11**Important:**
121. Assume good intentions.
131. Be kind and civilized.
141. Be pragmatic.
15
16The proposed workflow in here is based on the following assumptions and pillars:
171. Put the IC in charge. They are the ones who facilitate the process.
181. The technical leaders (TL, EnReOw) are tasked to help the ICs navigate the territory and find the right LGTM providers.
191. If a feature is uncontroversial, nearly no overhead should be created.
201. If there's a lot of controversy, the feature can be escalated to a dedicated design review meeting where future steps are decided.
21
22![DevTools Design Guidelines at a glance](docs/images/DevToolsDesignGuidelines.png "DevTools Design Guidelines at a glance")
23
24## Roles
25### Individual Contributor (IC)
26*LGTM*: N/A
27This person is the creator of the feature and the creator of the design documentation.
28
29### The Technical Leads (TL)
30*LGTM*: Must have
31An LGTM is needed from the DevTools TLs, which are Benedikt Meurer ([email protected]) and Lorne Mitchell ([email protected]) at this point, in order to ensure architectural consistency. The TLs are also responsible for finding the right LGTM providers (i.e. the domain experts) to sign off on the design.
32
33In the absence of the TLs, the EnReOw takes over the responsibility.
34
35### LGTM provider
36*LGTM*: Must have
37This is a person that is required to give LGTM. These are usually ICs which have significant knowledge about the areas in question.
38
39### “Random” reviewer of the document (RRotD)
40*LGTM*: Not required
41This is somebody who is simply reviewing and comment on the proposal. Their input should be considered, although their LGTM is not required.
42
43### The Eng Review Owners (EnReOw)
44*LGTM*: Not required
45Stuck proposals can be escalated to the [ENG_REVIEW_OWNERS](https://cs.chromium.org/chromium/src/third_party/devtools-frontend/src/ENG_REVIEW_OWNERS) Potential use cases of such an escalation:
46- An LGTM provider is non-responsive.
47- No consensus on the design can be reached.
48The EnReOw can overrule non-LGTMs or LGTMs.
49
50## Detailed workflow
51
521. Start: IC decides to work on a feature/gets a feature assigned to them
531. IC sends out their early design doc/explainer/one pager to a few RRotDs
54 - Prototypes are considered part of the "design doc"
551. IC adds people to the list of LGTM providers that the IC thinks should give their LGTM. The TL is a must have on the list of LGTM providers.
561. IC incorporates feedback.
571. TL adds more people to the list of LGTM providers.
581. IC sends out the early design doc based on the Chromium DevTools design template to [email protected] (please make sure to give comment access to [email protected], remembering to untick the "Notify" checkbox).
591. IC collects the LGTMs. TL helps them.
60 1. LGTM provider reviews document, add comments and gives either an LGTM or not LGTM at the beginning of the document. If they add a not LGTM, they are obligated to list the reason(s).
61 1. Optional: LGTM providers can remove themselves from the list of LGTM providers and/or suggest other LGTM providers
62 1. IC and TL work to resolve the unresolved issues.
63 1. If all LGTM are gathered send an email to [email protected] (e.g. by pinging the original thread) and announce implementation.
641. Optional: If IC and TL are blocked and/or want to have a broader discussion they can escalate the issue to the EnReOw.
65 1. IC sends a mail to the EnReOw
66 1. TL in CC
67 1. Link to design doc in the mail
68 1. The EnReOw is obligated to review the doc and optionally add himself to the list of LGTM providers.
69 1. Next steps to unblock the feature are decided.
70 1. If the blocker is not resolved afterwards or new, unresolvable blockers are discovered, goto 8.
711. Optional: If "not LGTMs" are added after the feature was approved already, they should be treated like normal, unresolved issues.
72 - IC and TL work to resolve the unresolved issues.
731. End: IC proceeds with the feature.
74
75*And always remember*:
76- Assume good intentions.
77- Be kind and civilized.
78- Be pragmatic.
79
80## FAQ
81### How to decide if the feature is worthy to have a design document?
82Some pointers when a design doc is appropriate:
83- Touches at least two components
84- Needs reconciliation with non-DevTools projects e.g. V8, Blink
85- Take longer than 1 week of effort to implement
86- It is a new web platform capability
87- Platform specific code will be touched
88- User facing (UX) changes or additions
89When in doubt, ask the TL.
90
91### How to decide who to add to the list of LGTM providers?
92Some pointers when people should be added to the list of LGTM providers:
93- OWNERs of the source files/directories you anticipate to touch
94- Main component expert of the components you anticipate to touch
95- Downstream consumers of your changes e.g. when you change an API
96
97### Where can I find a template for design documents?
98[Here](http://bit.ly/devtools-design-doc-template).
99
100### What if something big changes?
101Make sure you still have the LGTMs e.g. by pinging the LGTM providers with a clear, reasonable deadline to veto.
102
103### LGTM providers don’t comment on my doc, what should I do?
104In this case you can follow this path of escalation:
1051. Ping them directly via mail, chat or comment/assignment in the doc and specifically ask them explicitly to add an LGTM or non-LGTM.
1061. Get your TL involved and ask them for help.
1071. Escalate to EnReOw.
108
109### Somebody added me as an LGTM provider to a doc, what should I do?
110Chromium DevTools is aiming to make decisions more transparent and escalation more straight-forward. If you think the design is good enough and should be done add an “LGTM” to the table cell next to your name.
111If you have blocking concerns or remarks, please add “Not LGTM, because <reason>” into the table cell next to your name. Be prepared to get asked for another round of review.
112
113### How does this work together with the Blink Intents process?
114The Chromium DevTools Design Review Guidelines complement [Chromiums feature launch process](https://www.chromium.org/blink/launching-features). If you are launching a new Web platform feature, please follow the Chromium launch process. It likely makes sense to have all the LGTMs gathered at the point in time you would send an Intent to Implement.
115