Commit 295a0219 authored by Mike Lewis's avatar Mike Lewis

Update with additional policy changes discussed with product

parent 8fe01378
...@@ -2,172 +2,159 @@ ...@@ -2,172 +2,159 @@
description: How to add docs for new or enhanced GitLab features. 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, - **Product Managers** (PMs): in the issue for all new and updated features,
PMs include specific documentation requirements that the developer who is PMs include specific documentation requirements for the developer, and, for new features,
writing or updating the docs must meet, along with feature descriptions they also include feature descriptions and use cases. They can bring in a technical
and use cases. They call out any specific areas where collaborating with writer for discussion or help, and can be called upon themselves as a doc reviewer.
a technical writer is recommended, and usually act as the first reviewer - **Developers**: author documentation and merge it by the feature freeze, leaving
of the docs. time for a doc review performed by the cross-functional team's assigned technical writer.
- Developers: author documentation and merge it on time (up to a week after - **Technical Writers**: review PM requirements in issues, help developers with any
the feature freeze). questions throughout the authoring/editing process, and review all new and
- Technical Writers: review each issue to ensure PM's requirements are complete, updated docs content before it's merged.
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.
## 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: Documentation must be delivered whenever:
- A new feature is shipped - 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 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 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 only and does not directly affect the way that any user or
administrator would interact with GitLab. administrator would interact with GitLab. For example, a UI restyling that offers
no difference in functionality may require documentation updates if screenshots
Documentation pages should follow the [structure](structure.md) guidelines. are now needed, or need to be updated.
NOTE: **Note:** NOTE: **Note:**
When refactoring documentation, it should be submitted in its own MR. 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 **Do not** join new features' MRs with those refactoring existing docs, as they
different priorities. might have different priorities.
NOTE: **Note:** 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, ## Documenting a new or changed feature
broken links, etc), it can be merged without the PM's and tech writer's review.
## Feature documentation workflow
To follow a consistent workflow every month, documentation changes To follow a consistent workflow every month, documentation changes
involve the Product Managers, the developer who shipped the feature, involve the Product Managers, the developer who shipped the feature,
and the Technical Writing team. Each role is described below. 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: 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 - 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. - 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 - 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 - 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`, `Deliverable`, `docs:P1`, and assign - Label the issue with `Documentation` and `docs:P1` in addition to the `Deliverable` label and correct milestone.
the correct milestone
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 in the documentation process ### 2. Developer's role
As a developer, or as a community contributor, you should ship the documentation 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, New and edited docs should be shipped along with the MR introducing the code.
alternatively, created from a follow-up issue and MR. 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 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/).
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.
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.
### Documentation shipped in the feature MR 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 developer should add to the feature MR the documentation containing: 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.
- The [documentation blurb](structure.md#documentation-blurb): copy the #### Including documentation in the feature MR (typical)
feature name, overview/description, and use cases from the feature issue
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. - Instructions: write how to use the feature, step by step, with no gaps.
- [Crosslink for discoverability](structure.md#discoverability): link with - [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 - 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: - [Screenshots](styleguide.md#images): when necessary, add screenshots for:
- Illustrating a step of the process - Illustrating a step of the process.
- Indicating the location of a navigation menu - Indicating the location of a navigation menu.
- Label the MR with `Documentation`, `Deliverable`, `docs-P1`, and assign - Label the MR with `Documentation`, `Deliverable`, `docs-P1`, and assign
the correct milestone the correct milestone.
- Assign the PM for review - Assign the PM for review.
- When done, mention the `@gl\-docsteam` in the MR asking 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 - **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) - 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>` - Label the issue with: `Documentation`, `Deliverable`, `docs-P1`, `<product-label>`.
(product label == CI/CD, Pages, Prometheus, etc) (product label == CI/CD, Pages, etc).
- Add the correct milestone - Add the milestone matching that of the feature issue.
- Create a new MR for shipping the docs changes and follow the same - Create a new MR for shipping the docs changes and follow the same
process [described above](#documentation-shipped-in-the-feature-mr) process [described above](#including-documentation-in-the-feautre-mr-typical).
- Use the MR description template called "Documentation" - Use the MR description template named "Documentation".
- Add the same labels and milestone as you did for the issue - Add the same labels and milestone as you did for the issue.
- Assign the PM for review - Assign the technical writer for review.
- When done, mention the `@gl\-docsteam` in the MR asking 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 - **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 Typically, if the documentation is not ready, this will block the feature
as well as other teams' priorities (PMs, tech writers, release managers, for the current GitLab release.
release post reviewers), so every effort should be made to avoid this.
Shipping documentation after the freeze is rare and requires approval of the PM, technical writer, and dev.
If you did not ship the docs within the feature freeze, proceed as Every effort should be made to avoid this, as it risks a poor user experience and affects the whole feature workflow, along with
[described above](#documentation-shipped-in-a-follow-up-mr) and, other teams' priorities (PMs, tech writers, release managers, release post reviewers).
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 If the aforementioned approval is given:
milestone. 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
The **due date** for **merging** `missed-deliverable` MRs is on the `missed-deliverable` in the issue and the MR.
**14th** of each month. 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 **Planning**
technical writer reviews the Product Manager's documentation requirements. - 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 - 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 - Clarity
- Relevance (make sure the content is appropriate given the impact of the feature) - 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) - Location (make sure the doc is in the correct dir and has the correct name)
- Syntax, typos, and broken links - Syntax, typos, and broken links
- Improvements to the content - Improvements to the content
- Accordance to the [docs style guide](styleguide.md) - Accordance to the [docs style guide](styleguide.md)
<!-- TODO: Clarify differences for completely new features vs. feature enhancemeents. May belong in structure doc. --> <!-- TODO: Clarify differences for completely new features vs. feature enhancemeents. May belong in structure doc. -->
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment