Frontend Vision Group
Write guidelines about frontend architecture practices we want to have on GitLab frontend in three years
Attributes
| Property | Value |
|---|---|
| Date Created | 2023-03-27 |
| Target End Date | TBD |
| Slack | #wg_frontend-vision (only accessible from within the company) |
| Google Doc | Agenda (only accessible from within the company) |
| Overview & Status | See Exit Criteria Progress |
Context
Currently, our frontend development guidelines only document features and practices we are currently using in production. There is no clear documentation about what we see as a desired state of the frontend at GitLab, nor guidelines regarding practices we plan to deprecate. It would be nice to define a set of high-level expectations regarding frontend architecture, tech stack, and best practices as we see them in the scope of three years from now. Here is a non-exhaustive list of topics we should discuss:
- Single-Page Application vs Multi-Page Application vs hybrid approach (multiple SPA’s that handle some functionality).
- Server-Side rendering
- Technical stack (frontend framework, state management approach, testing levels and tools)
- Real-time features, optimistic updates, frontend caching and “snappy GitLab experience” overall
- Exception process when certain group requires the tool that deviates from the main strategy
Exit Criteria
Updates are being tracked every other week within https://gitlab.com/gitlab-org/gitlab/-/issues/419576.
- Add introduction page to frontend documentation, explaining direction and high-level overview of the frontend codebase/architecture.
- Include evolution of codebase over three year horizon.
- List frontend technologies used and the design principals that guide the frontend team’s work.
- Explicitely define deprecation/removal plans, including why these features are being deprecated.
- Communicate outcome to the broader frontend functional group.
- Discuss and document communication plan, including frequency of updates from working group.
- Document the requirements for reusable components outside of GitLab UI.
- Determine DRIs around specific parts of frontend documentation.
- Determine how the exception to the main strategy process will work, and if there is a need for a separate area for “wild” ideas.
- Determine evaluation and decision-making process for RFCs.
Exit Criteria Progress
| Criteria | Start Date | Completed Date | Progress | DRI |
|---|---|---|---|---|
| Add introduction page to frontend documentation, explaining direction and high-level overview of the frontend codebase/architecture. | 2023-06-28 | 100% | @f_caplette | |
| Include evolution of codebase over a three-year horizon. | @ntepluhina | |||
| List frontend technologies used and the design principles that guide the frontend team’s work. | @leipert | |||
| Explicitly define deprecation/removal plans, including why these features are being deprecated. | ||||
| Communicate outcome to the broader frontend functional group. | @donaldcook | |||
| Discuss and document communication plan, including the frequency of updates from the working group. | 2023-08-07 | 100% | @donaldcook | |
| Document the requirements for reusable components outside of GitLab UI. | @pslaughter | |||
| Determine DRIs around specific parts of frontend documentation. | @andrei.zubov | |||
| Determine how the exception to the main strategy process will work, and if there is a need for a separate area for “wild” ideas. | @ntepluhina | |||
| Determine the evaluation and decision-making process for RFCs. | @f_caplette |
Roles and Responsibilities
| Working Group Role | Person | Title |
|---|---|---|
| Executive Sponsor | Christopher Lefelhocz | VP of Development (Delegating to Tim Zallmann) |
| Executive Sponsor | Tim Zallmann | Senior Director of Engineering |
| Facilitator | Donald Cook | Engineering Manager, Plan:Project Management |
| Functional Lead | Natalia Tepluhina | Principal Engineer, Plan |
| Member | Vitaly Slobodin | Staff Frontend Engineer, Fulfillment |
| Member | Paul Slaughter | Staff Frontend Engineer, Create:Remote Development |
| Member | Mark Florian | Staff Frontend Engineer, Manage:Foundations |
| Member | Lukas Eipert | Senior Frontend Engineer, Manage:Foundations |
| Member | Frédéric Caplette | Senior Frontend Engineer, Verify:Pipeline Authoring |
| Member | Andrei Zubov | Senior Frontend Engineer, Release |
| Member | Stanislav Lashmanov | Senior Frontend Engineer, Create:Source Code |
| Member | Florie Guibert | Senior Frontend Engineer, Plan:Product planning |
| Member | Paul Gascou-Vaillancourt | Senior Frontend Engineer, Manage:Foundations |
Last modified July 13, 2024: Renaming to Remote Development group with Workspace and WebIDE categories (
5f7de70f)
