Project Templates - Best Practices
Problem to solve
As new organizations and teams adopt GitLab, they must configure GitLab in order to adopt project management / GitLab best practices. Unless they intimately know the design trade-offs of how to use GitLab's features of Labels, milestones, CI pipelines, Issue Templates, etc, they are forced to learn on the fly and face a steep learning curve.
We recently implemented the ability to have a Compliance Framework
project template, and this is an opportunity for us to create other possible project templates to solve two specific problems:
- For Totally New GitLab users, a small set of pre-built
GitLab Project Templates
where the templates could be copied and applied for new projects, will make it easier for teams to set up and configure their GitLab projects. The templates should include:
- A set of scoped labels for specific workflows
- Prioritized labels to showcase how to prioritize work
- Milestones and/or iterations to pre-configure the use of sprints/time boxes
- Issue Templates (with the right folder structure etc) so they have templates
- A read.me file that explains the project configuration with key links
- Several boards to showcase different scenarios such as Kanban, Assignments, Milestones, etc
- Some reference to managing work through epics (even though they may not have epics in their account)
This configuration for Totally New GitLab Users might also have several variations for example
- Scrum
- Kanban
- Cloud-Native Development (or other specific technologies)
- Non Sw Development (like Marketing, events, etc)
GitLab would provide and define these best-practice templates for our future users.
- For Existing GitLab customers/users, this feature would be very, very valuable so that organizations could pre-define their Organizational project templates such that they could establish and encourage teams to follow/adopt their standard practices and policies. Such as:
- Define common issue templates for specific common issue types (bug, vulnerability, idea, etc)
- Reference other organization policies and standards in the read.me file
- etc.
Intended users
The typical user for this would be GitLab administrators and teams that are rolling out GitLab to larger organizations. Probably some mix of the following
- Cameron (Compliance Manager)
- Parker (Product Manager)
- Delaney (Development Team Lead)
- Devon (DevOps Engineer)
- Sidney (Systems Administrator)
User experience goal
Proposal
- In a Gitlab Group, administration, include a list of available 'Project Templates', where the Group Owner / Maintainer can manage the
Project Templates
- Effectively, a
Project Template
would be a hidden/invisible project in the Group UI.
- Effectively, a
- The Group Owner/Maintainer could
edit
a project template,rename
a template,copy
a template to create a new template, ordelete
a project template - SubGroups would have an option to Inherit the Parent Templates and have no specific templates, or they could add additional templates.
- When creating a new project, a user would be able to select from the list of
Project Templates
and then GitLab would create a new project as a copy of one of theProject Templates
Note:
-
Project templates
would ONLY drive project creation/definition. -
Project templates
would NOT be able to update or change existing projects.