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 |