Update with additional policy changes discussed with product
This commit is contained in:
		
							parent
							
								
									8fe01378b0
								
							
						
					
					
						commit
						295a02193e
					
				| 
						 | 
				
			
			@ -2,172 +2,159 @@
 | 
			
		|||
description: How to add docs for new or enhanced GitLab features.
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Feature-change documentation updates
 | 
			
		||||
# Documentation process at GitLab
 | 
			
		||||
 | 
			
		||||
At GitLab, before each release, developers contribute new or updated documentation along with their code, but product managers and technical writers also have essential roles in the process.
 | 
			
		||||
At GitLab, developers contribute new or updated documentation along with their code, but product managers and technical writers also have essential roles in the process.
 | 
			
		||||
 | 
			
		||||
- Product Managers (PMs): in the issue for all new and updated features,
 | 
			
		||||
  PMs include specific documentation requirements that the developer who is
 | 
			
		||||
  writing or updating the docs must meet, along with feature descriptions
 | 
			
		||||
  and use cases. They call out any specific areas where collaborating with
 | 
			
		||||
  a technical writer is recommended, and usually act as the first reviewer
 | 
			
		||||
  of the docs.
 | 
			
		||||
- Developers: author documentation and merge it on time (up to a week after
 | 
			
		||||
  the feature freeze).
 | 
			
		||||
- Technical Writers: review each issue to ensure PM's requirements are complete,
 | 
			
		||||
  help developers with any questions throughout the process, and act as the final
 | 
			
		||||
  reviewer of all new and updated docs content before it's merged.
 | 
			
		||||
- **Product Managers** (PMs): in the issue for all new and updated features,
 | 
			
		||||
PMs include specific documentation requirements for the developer, and, for new features,
 | 
			
		||||
they also include feature descriptions and use cases. They can bring in a technical
 | 
			
		||||
writer for discussion or help, and can be called upon themselves as a doc reviewer.
 | 
			
		||||
- **Developers**: author documentation and merge it by the feature freeze, leaving
 | 
			
		||||
time for a doc review performed by the cross-functional team's assigned technical writer.
 | 
			
		||||
- **Technical Writers**: review PM requirements in issues, help developers with any
 | 
			
		||||
questions throughout the authoring/editing process, and review all new and
 | 
			
		||||
updated docs content before it's merged.
 | 
			
		||||
 | 
			
		||||
## Requirements
 | 
			
		||||
Any of the above roles, or others in the GitLab community, can author documentation
 | 
			
		||||
improvements that are not associated with a new/changed feature, and must also typically
 | 
			
		||||
assign such changes to a technical writer for review.
 | 
			
		||||
 | 
			
		||||
## When documentation is required
 | 
			
		||||
 | 
			
		||||
Documentation must be delivered whenever:
 | 
			
		||||
 | 
			
		||||
- A new feature is shipped
 | 
			
		||||
- There are changes to the UI
 | 
			
		||||
- There are changes to the UI or API
 | 
			
		||||
- A process, workflow, or previously documented feature is changed
 | 
			
		||||
- A feature is deprecated or removed
 | 
			
		||||
 | 
			
		||||
Documentation is not required when a feature is changed on the backend
 | 
			
		||||
only and does not directly affect the way that any regular user or
 | 
			
		||||
administrator would interact with GitLab.
 | 
			
		||||
 | 
			
		||||
Documentation pages should follow the [structure](structure.md) guidelines.
 | 
			
		||||
only and does not directly affect the way that any user or
 | 
			
		||||
administrator would interact with GitLab. For example, a UI restyling that offers
 | 
			
		||||
no difference in functionality may require documentation updates if screenshots
 | 
			
		||||
are now needed, or need to be updated.
 | 
			
		||||
 | 
			
		||||
NOTE: **Note:**
 | 
			
		||||
When refactoring documentation, it should be submitted in its own MR.
 | 
			
		||||
**Do not** join new features' MRs with refactoring existing docs, as they might have
 | 
			
		||||
different priorities.
 | 
			
		||||
**Do not** join new features' MRs with those refactoring existing docs, as they
 | 
			
		||||
might have different priorities.
 | 
			
		||||
 | 
			
		||||
NOTE: **Note:**
 | 
			
		||||
[Smaller MRs are better](https://gitlab.com/gitlab-com/blog-posts/issues/185#note_4401010)! Do not mix subjects, and ship the smallest MR possible.
 | 
			
		||||
[Smaller MRs are better](https://gitlab.com/gitlab-com/blog-posts/issues/185#note_4401010)! Do not mix subjects (e.g. multiple unrelated pages), and ship the smallest MR possible.
 | 
			
		||||
 | 
			
		||||
## Review process
 | 
			
		||||
 | 
			
		||||
The docs shipped by the developer should be reviewed by the PM (for accuracy) and a Technical Writer (for clarity and structure).
 | 
			
		||||
 | 
			
		||||
### Documentation updates that require Technical Writer review
 | 
			
		||||
 | 
			
		||||
Every documentation change that meets the criteria below must be reviewed by a Technical Writer
 | 
			
		||||
to ensure clarity and discoverability, and avoid redundancy, bad file locations, typos, broken links, etc.
 | 
			
		||||
Within the GitLab issue or MR, ping the relevant technical writer for the subject area. If you're not sure who that is,
 | 
			
		||||
ping any of them or all of them (`@gl\-docsteam`).
 | 
			
		||||
 | 
			
		||||
A Technical Writer must review documentation updates that involve:
 | 
			
		||||
 | 
			
		||||
- Docs introducing new features
 | 
			
		||||
- Changing documentation location
 | 
			
		||||
- Refactoring existing documentation
 | 
			
		||||
- Creating new documentation files
 | 
			
		||||
 | 
			
		||||
If you need any help to choose the correct place for a doc, discuss a documentation
 | 
			
		||||
idea or outline, or request any other help, ping a Technical Writer on your issue, MR,
 | 
			
		||||
or on Slack in `#docs`.
 | 
			
		||||
 | 
			
		||||
### Skip the PM's review
 | 
			
		||||
 | 
			
		||||
When there's a non-significant change to the docs, you can skip the review
 | 
			
		||||
of the PM. Add the same labels as you would for a regular doc change and
 | 
			
		||||
assign the correct milestone. In these cases, assign a Technical Writer
 | 
			
		||||
for approval/merge, or mention `@gl\-docsteam` in case you don't know
 | 
			
		||||
which Tech Writer to assign for.
 | 
			
		||||
 | 
			
		||||
### Skip the entire review
 | 
			
		||||
 | 
			
		||||
When the MR only contains corrections to the content (typos, grammar,
 | 
			
		||||
broken links, etc), it can be merged without the PM's and tech writer's review.
 | 
			
		||||
 | 
			
		||||
## Feature documentation workflow
 | 
			
		||||
## Documenting a new or changed feature
 | 
			
		||||
 | 
			
		||||
To follow a consistent workflow every month, documentation changes
 | 
			
		||||
involve the Product Managers, the developer who shipped the feature,
 | 
			
		||||
and the Technical Writing team. Each role is described below.
 | 
			
		||||
 | 
			
		||||
### 1. Product Manager's role in the documentation process
 | 
			
		||||
### 1. Product Manager's role
 | 
			
		||||
 | 
			
		||||
The Product Manager (PM) should add to the feature issue:
 | 
			
		||||
 | 
			
		||||
- Feature name, overview/description, and use cases, for the [documentation blurb](structure.md#documentation-blurb)
 | 
			
		||||
- New or updated feature name, overview/description, and use cases, for the feature's [documentation blurb](structure.md#documentation-blurb)
 | 
			
		||||
- The documentation requirements for the developer working on the docs
 | 
			
		||||
  - What new page, new subsection of an existing page, or other update to an existing page/subsection is needed.
 | 
			
		||||
  - Just one page/section/update or multiple (perhaps there's an end user and admin change needing docs, or we need to update a previously recommended workflow, or we want to link the new feature from various places; consider and mention all ways documentation should be affected
 | 
			
		||||
  - Suggested title of any page or subsection, if applicable
 | 
			
		||||
- Label the issue with `Documentation`, `Deliverable`, `docs:P1`, and assign
 | 
			
		||||
  the correct milestone
 | 
			
		||||
  - Suggested title of any page or subsection, if applicable <--!TODO: Add this and previous bullets in some form to issue/MR templates-->
 | 
			
		||||
- Label the issue with `Documentation` and `docs:P1` in addition to the `Deliverable` label and correct milestone.
 | 
			
		||||
 | 
			
		||||
### 2. Developer's role in the documentation process
 | 
			
		||||
Anyone is welcome to draft the items above in the issue, but a product manager must review and update them whenever the issue is assigned a specific milestone. 
 | 
			
		||||
 | 
			
		||||
### 2. Developer's role
 | 
			
		||||
 | 
			
		||||
As a developer, or as a community contributor, you should ship the documentation
 | 
			
		||||
with the feature, as in GitLab the documentation is part of the product.
 | 
			
		||||
with the feature; the documentation is an essential part of the product.
 | 
			
		||||
 | 
			
		||||
The docs can either be shipped along with the MR introducing the code, or,
 | 
			
		||||
alternatively, created from a follow-up issue and MR.
 | 
			
		||||
New and edited docs should be shipped along with the MR introducing the code.
 | 
			
		||||
However, if the new or changed doc requires extensive collaboration or conversation,
 | 
			
		||||
a separate, linked issue and MR can be used.
 | 
			
		||||
 | 
			
		||||
The docs should be shipped **by the feature freeze date**. Justified
 | 
			
		||||
exceptions are accepted, as long as the [following process](#documentation-shipped-late) and the missed-deliverable due date (the 14th of each month) are both respected.
 | 
			
		||||
For guidance, see the documentation [Structure](structure.md) guide, [Style Guide](styleguide.md), the [main page](index.md) of this section, and additional writing tips in the [Technical Writing handbook section](https://about.gitlab.com/handbook/product/technical-writing/).
 | 
			
		||||
 | 
			
		||||
### Documentation shipped in the feature MR
 | 
			
		||||
If you need any help to choose the correct place for a doc, discuss a documentation
 | 
			
		||||
idea or outline, or request any other help, ping the Technical Writer for the relevant
 | 
			
		||||
[DevOps stage](https://about.gitlab.com/handbook/product/categories/#devops-stages) in your issue or MR, or write in `#docs` on the GitLab Slack.
 | 
			
		||||
 | 
			
		||||
The developer should add to the feature MR the documentation containing:
 | 
			
		||||
The docs must be shipped **by the feature freeze date**, otherwise the feature cannot be included with the release.
 | 
			
		||||
In rare exceptions with the approval of the PM, dev, and technical writer, documentation can be
 | 
			
		||||
merged through the 14th of the month if the [following process](#documentation-shipped-late) is followed. <!-- TODO: Policy/process for feature-floagged issues-->
 | 
			
		||||
 | 
			
		||||
- The [documentation blurb](structure.md#documentation-blurb): copy the
 | 
			
		||||
  feature name, overview/description, and use cases from the feature issue
 | 
			
		||||
Documentation changes commited by the developer should be reviewed by:
 | 
			
		||||
* a technical writer (for clarity, structure, and confirming requirements are met)
 | 
			
		||||
* optionally: by the PM (for accuracy and to ensure it's consistent with the vision for how the product will be used).
 | 
			
		||||
Any party can raise the item to the PM for review at any point: the dev, the technical writer, or the PM, who can request this at the outset.
 | 
			
		||||
 | 
			
		||||
#### Including documentation in the feature MR (typical)
 | 
			
		||||
 | 
			
		||||
The developer should add to the feature MR changes to the documentation, typically containing the following for new features:
 | 
			
		||||
 | 
			
		||||
- The [name, description, and use cases](structure.md#documentation-blurb): copy these from the feature issue
 | 
			
		||||
where were provided or reviewed by the product manager.
 | 
			
		||||
- Instructions: write how to use the feature, step by step, with no gaps.
 | 
			
		||||
- [Crosslink for discoverability](structure.md#discoverability): link with
 | 
			
		||||
  internal docs and external resources (if applicable)
 | 
			
		||||
internal docs and external resources (if applicable).
 | 
			
		||||
- Index: link the new doc or the new heading from the higher-level index
 | 
			
		||||
  for [discoverability](#discoverability)
 | 
			
		||||
for [discoverability](#discoverability).
 | 
			
		||||
- [Screenshots](styleguide.md#images): when necessary, add screenshots for:
 | 
			
		||||
  - Illustrating a step of the process
 | 
			
		||||
  - Indicating the location of a navigation menu
 | 
			
		||||
  - Illustrating a step of the process.
 | 
			
		||||
  - Indicating the location of a navigation menu.
 | 
			
		||||
- Label the MR with `Documentation`, `Deliverable`, `docs-P1`, and assign
 | 
			
		||||
  the correct milestone
 | 
			
		||||
- Assign the PM for review
 | 
			
		||||
- When done, mention the `@gl\-docsteam` in the MR asking for review
 | 
			
		||||
- **Due date**: feature freeze date and time
 | 
			
		||||
the correct milestone.
 | 
			
		||||
- Assign the PM for review.
 | 
			
		||||
- When done, mention the team's technical writer in the MR asking for review (or `@gl\-docsteam` if you are not sure who that is).
 | 
			
		||||
- **Due date**: feature freeze date and time.
 | 
			
		||||
 | 
			
		||||
### Documentation shipped in a follow-up MR
 | 
			
		||||
#### Including documentation in a separate MR
 | 
			
		||||
 | 
			
		||||
If the docs aren't being shipped within the feature MR:
 | 
			
		||||
If the docs aren't being shipped within the feature MR, but are still being shipped on time (by the feature freeze):
 | 
			
		||||
 | 
			
		||||
- Create a new issue mentioning "docs" or "documentation" in the title (use the Documentation issue description template)
 | 
			
		||||
- Label the issue with: `Documentation`, `Deliverable`, `docs-P1`, `<product-label>`
 | 
			
		||||
  (product label == CI/CD, Pages, Prometheus, etc)
 | 
			
		||||
- Add the correct milestone
 | 
			
		||||
- Create a new issue with the Documentation template and mention "docs" or "documentation" in the title, plus the feature name. 
 | 
			
		||||
- Label the issue with: `Documentation`, `Deliverable`, `docs-P1`, `<product-label>`.
 | 
			
		||||
(product label == CI/CD, Pages, etc).
 | 
			
		||||
- Add the milestone matching that of the feature issue.
 | 
			
		||||
- Create a new MR for shipping the docs changes and follow the same
 | 
			
		||||
  process [described above](#documentation-shipped-in-the-feature-mr)
 | 
			
		||||
- Use the MR description template called "Documentation"
 | 
			
		||||
- Add the same labels and milestone as you did for the issue
 | 
			
		||||
- Assign the PM for review
 | 
			
		||||
- When done, mention the `@gl\-docsteam` in the MR asking for review
 | 
			
		||||
- **Due date**: feature freeze date and time
 | 
			
		||||
process [described above](#including-documentation-in-the-feautre-mr-typical).
 | 
			
		||||
- Use the MR description template named "Documentation".
 | 
			
		||||
- Add the same labels and milestone as you did for the issue.
 | 
			
		||||
- Assign the technical writer for review.
 | 
			
		||||
- When done, mention the team's technical writer in the MR asking for review (or `@gl\-docsteam` if you are not sure who that is).
 | 
			
		||||
- **Due date**: feature freeze date and time.
 | 
			
		||||
 | 
			
		||||
### Documentation shipped late
 | 
			
		||||
#### Shipping documentation after the freeze (rare)
 | 
			
		||||
 | 
			
		||||
Shipping late means that you are affecting the whole feature workflow
 | 
			
		||||
as well as other teams' priorities (PMs, tech writers, release managers,
 | 
			
		||||
release post reviewers), so every effort should be made to avoid this.
 | 
			
		||||
Typically, if the documentation is not ready, this will block the feature
 | 
			
		||||
for the current GitLab release.
 | 
			
		||||
 | 
			
		||||
If you did not ship the docs within the feature freeze, proceed as
 | 
			
		||||
[described above](#documentation-shipped-in-a-follow-up-mr) and,
 | 
			
		||||
besides the regular labels, include the labels `Pick into X.Y` and
 | 
			
		||||
`missed-deliverable` in the issue and the MR, and assign them the correct
 | 
			
		||||
milestone.
 | 
			
		||||
Shipping documentation after the freeze is rare and requires approval of the PM, technical writer, and dev.
 | 
			
		||||
Every effort should be made to avoid this, as it risks a poor user experience and affects the whole feature workflow, along with
 | 
			
		||||
other teams' priorities (PMs, tech writers, release managers, release post reviewers). 
 | 
			
		||||
 | 
			
		||||
The **due date** for **merging** `missed-deliverable` MRs is on the
 | 
			
		||||
**14th** of each month.
 | 
			
		||||
If the aforementioned approval is given:
 | 
			
		||||
1. Use the instructions above for [Documentation shipped in a separate MR](#including-documentation-in-a-separate-mr) and,
 | 
			
		||||
in addition to the usual labels and correct milestone, include the labels `Pick into X.Y` on the MR (where X.Y is the GitLab version) and
 | 
			
		||||
`missed-deliverable` in the issue and the MR.
 | 
			
		||||
2. Obtain a review, as usual.
 | 
			
		||||
3. Ensure that the MR is merged by the 14th of the month.
 | 
			
		||||
 | 
			
		||||
### 3. Technical Writer's role in the documentation process
 | 
			
		||||
### 3. Technical Writer's role
 | 
			
		||||
 | 
			
		||||
- **Planning**
 | 
			
		||||
  - Once an issue contains a Documentation label and the current milestone, a
 | 
			
		||||
  technical writer reviews the Product Manager's documentation requirements.
 | 
			
		||||
**Planning**
 | 
			
		||||
  - Once an issue contains a Documentation label and an upcoming milestone, a
 | 
			
		||||
technical writer reviews the Product Manager's documentation requirements
 | 
			
		||||
  - Once the documentation requirements are approved, the technical writer can
 | 
			
		||||
  work with the developer to discuss any documentation questions and plans/outlines, as needed.
 | 
			
		||||
work with the developer to discuss any documentation questions and plans/outlines, if needed.
 | 
			
		||||
 | 
			
		||||
- **Review** - A technical writer must review the documentation for:
 | 
			
		||||
**Review**
 | 
			
		||||
- Every documentation change beyond minor clarifications and corrections requires a Technical Writer review, with greater exceptions in place for GitLab Support.<!--TODO: link-->
 | 
			
		||||
This should apply to docs for every new or changed feature. The technical writer will ensure that the doc is clear, grammatically correct,
 | 
			
		||||
and discoverable, while avoiding redundancy, bad file locations, typos, broken links, etc. The technical writer must review the documentation for:
 | 
			
		||||
  - Clarity
 | 
			
		||||
  - Relevance (make sure the content is appropriate given the impact of the feature)
 | 
			
		||||
  - Location (make sure the doc is in the correct dir and has the correct name)
 | 
			
		||||
  - Syntax, typos, and broken links
 | 
			
		||||
  - Improvements to the content
 | 
			
		||||
  - Accordance to the [docs style guide](styleguide.md)
 | 
			
		||||
 | 
			
		||||
<!-- TODO: Clarify differences for completely new features vs. feature enhancemeents. May belong in structure doc. -->
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue