Manage Team

On this page

Manage

The responsibilities of this team are described by the Manage product category. Among other things, this means working on GitLab's functionality around user, group and project administration, authentication, access control, and subscriptions.

Planning

We plan in monthly cycles in accordance with our Product Development Timeline. Release scope for an upcoming release should be finalized by the 1st. We use the following timeline:

On or around the 24th: Product meets with Engineering Managers for a preliminary issue review. Issues are tagged with a milestone and are ready for estimation.

Issues will be pre-assigned to team members after this preliminary review for estimation. Most issues should be estimated by the 1st.

On or around the 28th: Product takes the reviewed scope to the larger team for discussion. This becomes the release scope for the next release.

On or around the 6th: Product meets with Engineering Managers for a pre-kickoff check-in.

Prioritization

Our planning process is reflected in boards that should always reflect our current priorities. You can see our priorities for backend and frontend engineering. Please filter these boards for the relevant milestone.

Priorities should be reflected in the priority label for scheduled issues:

Priority

Description

Probability of shipping in milestone

P1

Urgent: top priority for achieving in the given milestone. These issues are the most important goals for a release and should be worked on first; some may be time-critical or unblock dependencies.

~100%

P2

High: important issues that have significant positive impact to the business or technical debt. Important, but not time-critical or blocking others.

~75%

P3

Normal: incremental improvements to existing features. These are important iterations, but deemed non-critical.

~50%

P4

Low: stretch issues that are acceptable to postpone into a future release.

~25%

You can read more about prioritization on the direction page for the Manage stage of the DevOps lifecycle.

Estimation

Before work can begin on an issue, we should estimate it first after a preliminary investigation.

Separate issues should be created for each discipline that's involved (see an example), and scheduled issues without a weight should be assigned the "estimation:needed" label.

When estimating development work, please assign an issue an appropriate weight:

Weight

Description (Engineering)

1

The simplest possible change. We are confident there will be no side effects.

2

A simple change (minimal code changes), where we understand all of the requirements.

3

A simple change, but the code footprint is bigger (e.g. lots of different files, or tests effected). The requirements are clear.

5

A more complex change that will impact multiple areas of the codebase, there may also be some refactoring involved. Requirements are understood but you feel there are likely to be some gaps along the way.

8

A complex change, that will involve much of the codebase or will require lots of input from others to determine the requirements.

13

A significant change that may have dependencies (other teams or third-parties) and we likely still don't understand all of the requirements. It's unlikely we would commit to this in a milestone, and the preference would be to further clarify requirements and/or break in to smaller Issues.

Simple UI or UX change where we understand all of the requirements, but may need to find solutions to known questions/problems.

3

A simple change but the scope of work is bigger (lots of UI or UX changes/improvements required). Multiple pages are involved, we're starting to design/redesign small flows. Some unknown questions may arise during the work.

5

A complex change where other team members will need to be involved. Spans across multiple pages, we're working on medium-sized flows. There are significant open questions that need to be answered.

8

A complex change that spans across large flows and may require input from other designers. This is the largest flow design/redesign that we would take on in a single milestone.

13

A significant change that spans across multiple flows and that would require significant input from others (teams, team members, user feedback) and there are many unknown unknowns. It's unlikely we would commit to this in a milestone, and the preference would be to further clarify requirements and/or break in to smaller Issues.

As part of estimation, if you feel the issue is in an appropriate state for an engineer to start working on it, please add the ~"workflow::ready for development" label. Alternatively, if there are still requirements to be defined or questions to be answered that you feel an engineer won't be able to easily resolve, please add the ~blocked label. Issues with the ~blocked label will appear in their own column on our planning board (example), making it clear that they need further attention.

Once an issue has been estimated, the ~"estimation:needed" label can be removed.

During the release

If a developer has completed work on an issue, they may open the prioritization board for their respective area (backend or frontend) and begin working on the next prioritized issue.

Issues not already in development should be worked on in priority order.