blob: d739a2be1033651b76bba9e5c1f6ba05cb625018 [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:
Yang Guo03e780e2020-06-17 10:18:094
Michael Hablich37becd02019-11-12 22:01:0151. 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.
61. Create a forum to have straight-forward design discussions.
71. 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.
81. Increase the involvement of all contributors all over the globe.
9
10## Summary
11
12**Important:**
Yang Guo03e780e2020-06-17 10:18:0913
Michael Hablich37becd02019-11-12 22:01:01141. Assume good intentions.
151. Be kind and civilized.
161. Be pragmatic.
17
18The proposed workflow in here is based on the following assumptions and pillars:
Yang Guo03e780e2020-06-17 10:18:0919
Michael Hablich37becd02019-11-12 22:01:01201. Put the IC in charge. They are the ones who facilitate the process.
211. The technical leaders (TL, EnReOw) are tasked to help the ICs navigate the territory and find the right LGTM providers.
221. If a feature is uncontroversial, nearly no overhead should be created.
231. If there's a lot of controversy, the feature can be escalated to a dedicated design review meeting where future steps are decided.
24
25![DevTools Design Guidelines at a glance](docs/images/DevToolsDesignGuidelines.png "DevTools Design Guidelines at a glance")
26
27## Roles
Yang Guo03e780e2020-06-17 10:18:0928
Michael Hablich37becd02019-11-12 22:01:0129### Individual Contributor (IC)
Yang Guo03e780e2020-06-17 10:18:0930
31_LGTM_: N/A
Michael Hablichc73ffd72020-05-18 12:05:2132
Michael Hablich37becd02019-11-12 22:01:0133This person is the creator of the feature and the creator of the design documentation.
34
35### The Technical Leads (TL)
Yang Guo03e780e2020-06-17 10:18:0936
37_LGTM_: Must have
Michael Hablichc73ffd72020-05-18 12:05:2138
Yang Guo4b6120a2020-02-21 07:43:0339An LGTM is needed from the DevTools TLs, which are Benedikt Meurer ([email protected]) and Rob Paveza ([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.
Michael Hablich37becd02019-11-12 22:01:0140
41In the absence of the TLs, the EnReOw takes over the responsibility.
42
43### LGTM provider
Yang Guo03e780e2020-06-17 10:18:0944
45_LGTM_: Must have
Michael Hablichc73ffd72020-05-18 12:05:2146
Michael Hablich37becd02019-11-12 22:01:0147This is a person that is required to give LGTM. These are usually ICs which have significant knowledge about the areas in question.
48
49### “Random” reviewer of the document (RRotD)
Yang Guo03e780e2020-06-17 10:18:0950
51_LGTM_: Not required
Michael Hablichc73ffd72020-05-18 12:05:2152
Michael Hablich37becd02019-11-12 22:01:0153This is somebody who is simply reviewing and comment on the proposal. Their input should be considered, although their LGTM is not required.
54
55### The Eng Review Owners (EnReOw)
Yang Guo03e780e2020-06-17 10:18:0956
57_LGTM_: Not required
Michael Hablichc73ffd72020-05-18 12:05:2158
Michael Hablich37becd02019-11-12 22:01:0159Stuck 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:
Yang Guo03e780e2020-06-17 10:18:0960
Michael Hablich37becd02019-11-12 22:01:0161- An LGTM provider is non-responsive.
62- No consensus on the design can be reached.
Yang Guo03e780e2020-06-17 10:18:0963 The EnReOw can overrule non-LGTMs or LGTMs.
Michael Hablich37becd02019-11-12 22:01:0164
65## Detailed workflow
66
671. Start: IC decides to work on a feature/gets a feature assigned to them
681. IC sends out their early design doc/explainer/one pager to a few RRotDs
69 - Prototypes are considered part of the "design doc"
701. 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.
711. IC incorporates feedback.
721. TL adds more people to the list of LGTM providers.
731. 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).
741. IC collects the LGTMs. TL helps them.
Yang Guo03e780e2020-06-17 10:18:09751. 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).
761. Optional: LGTM providers can remove themselves from the list of LGTM providers and/or suggest other LGTM providers
771. IC and TL work to resolve the unresolved issues.
781. If all LGTM are gathered send an email to [email protected] (e.g. by pinging the original thread) and announce implementation.
Michael Hablich37becd02019-11-12 22:01:01791. Optional: If IC and TL are blocked and/or want to have a broader discussion they can escalate the issue to the EnReOw.
Yang Guo03e780e2020-06-17 10:18:09801. IC sends a mail to the EnReOw
81 1. TL in CC
82 1. Link to design doc in the mail
831. The EnReOw is obligated to review the doc and optionally add himself to the list of LGTM providers.
841. Next steps to unblock the feature are decided.
851. If the blocker is not resolved afterwards or new, unresolvable blockers are discovered, goto 8.
Michael Hablich37becd02019-11-12 22:01:01861. Optional: If "not LGTMs" are added after the feature was approved already, they should be treated like normal, unresolved issues.
Yang Guo03e780e2020-06-17 10:18:0987
88- IC and TL work to resolve the unresolved issues.
89
Michael Hablich37becd02019-11-12 22:01:01901. End: IC proceeds with the feature.
91
Yang Guo03e780e2020-06-17 10:18:0992_And always remember_:
93
Michael Hablich37becd02019-11-12 22:01:0194- Assume good intentions.
95- Be kind and civilized.
96- Be pragmatic.
97
98## FAQ
Yang Guo03e780e2020-06-17 10:18:0999
Michael Hablich37becd02019-11-12 22:01:01100### How to decide if the feature is worthy to have a design document?
Yang Guo03e780e2020-06-17 10:18:09101
Michael Hablich37becd02019-11-12 22:01:01102Some pointers when a design doc is appropriate:
Yang Guo03e780e2020-06-17 10:18:09103
Michael Hablich37becd02019-11-12 22:01:01104- Touches at least two components
105- Needs reconciliation with non-DevTools projects e.g. V8, Blink
106- Take longer than 1 week of effort to implement
107- It is a new web platform capability
108- Platform specific code will be touched
109- User facing (UX) changes or additions
Yang Guo03e780e2020-06-17 10:18:09110 When in doubt, ask the TL.
Michael Hablich37becd02019-11-12 22:01:01111
112### How to decide who to add to the list of LGTM providers?
Yang Guo03e780e2020-06-17 10:18:09113
Michael Hablich37becd02019-11-12 22:01:01114Some pointers when people should be added to the list of LGTM providers:
Yang Guo03e780e2020-06-17 10:18:09115
Michael Hablich37becd02019-11-12 22:01:01116- OWNERs of the source files/directories you anticipate to touch
117- Main component expert of the components you anticipate to touch
118- Downstream consumers of your changes e.g. when you change an API
119
120### Where can I find a template for design documents?
Yang Guo03e780e2020-06-17 10:18:09121
Michael Hablich37becd02019-11-12 22:01:01122[Here](http://bit.ly/devtools-design-doc-template).
123
124### What if something big changes?
Yang Guo03e780e2020-06-17 10:18:09125
Michael Hablich37becd02019-11-12 22:01:01126Make sure you still have the LGTMs e.g. by pinging the LGTM providers with a clear, reasonable deadline to veto.
127
128### LGTM providers don’t comment on my doc, what should I do?
Yang Guo03e780e2020-06-17 10:18:09129
Michael Hablich37becd02019-11-12 22:01:01130In this case you can follow this path of escalation:
Yang Guo03e780e2020-06-17 10:18:09131
Michael Hablich37becd02019-11-12 22:01:011321. Ping them directly via mail, chat or comment/assignment in the doc and specifically ask them explicitly to add an LGTM or non-LGTM.
1331. Get your TL involved and ask them for help.
1341. Escalate to EnReOw.
135
136### Somebody added me as an LGTM provider to a doc, what should I do?
Yang Guo03e780e2020-06-17 10:18:09137
Michael Hablich37becd02019-11-12 22:01:01138Chromium 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.
139If 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.
140
141### How does this work together with the Blink Intents process?
Michael Hablich37becd02019-11-12 22:01:01142
Yang Guo03e780e2020-06-17 10:18:09143The 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.