Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update doc analysis criteria #286

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 91 additions & 68 deletions docs/analysis/criteria.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,61 @@
# Assessment criteria and examples

We recommend reading the
[CNCF sandbox project documentation primer](../sandbox-doc-primer.md) before
reviewing these criteria. The primer contains key definitions concepts that are
referred to in the criteria.

## Project documentation

### Information architecture

The overall structure (pages/subpages/sections/subsections) of your project
documentation. We evaluate on the following:
How your technical information is organized, laid out, and presented. This
includes structure (pages/subpages/sections/subsections), information types
(conceptual/instructional/reference), and matching documentation content to user
expectations.

- Is there high level conceptual/“About” content? Is the documentation feature
complete? (i.e., each product feature is documented)
- Are there step-by-step instructions (tasks, tutorials) documented for
features?
- Are there any key features which are documented but missing task
documentation?
- Is the “happy path”/most common use case documented? Does task and tutorial
content demonstrate atomicity and isolation of concerns? (Are tasks clearly
named according to user goals?)
We evaluate on the following:

- Is there high level conceptual/“About” content?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd avoid using using "about":

Suggested change
- Is there high level conceptual/“About” content?
- Is there high level conceptual content?

- Is the documentation feature-complete? (i.e., every product feature is
documented)
Comment on lines +20 to +21
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Is the documentation feature-complete? (i.e., every product feature is
documented)
- Is every product feature documented?

- Does the documentation define all user roles (personas) for the product?
- Are there instructions (tasks, tutorials) documented for features?
- Are there instructions for all major use cases for each user role?
- Are tasks organized by user role and use case?
- Does instructional content demonstrate atomicity — are individual tasks
clearly named according to their goals?
- Are tasks written as numbered step-by-step instructions?
- Do task descriptions in headings and the TOC describe the task with a verb
phrase?
- Is the documentation free of any key features which are documented but missing
task documentation?
- Is the “happy path” — the most common use case — documented?
- If the documentation does not suffice, is there a clear escalation path for
users needing more help? (FAQ, Troubleshooting)
users needing more help?
- If the product exposes an API, is there a complete reference?
- If the product has CLIs, are there complete references?
- Is content up to date and accurate?
- Does the documentation separate conceptual, instructional, and reference
information?

Example:

- <https://prometheus.io/docs>

### New user content

New users are the most avid users of documentation, and need content
specifically for them. We evaluate on the following:
New users are the most avid users of documentation and they have unique
documentation needs.

We evaluate on the following:

- Is “getting started” clearly labeled? (“Getting started”, “Installation”,
“First steps”, etc.)
“First steps”, or the equivalent.)
- Is there a “getting started” path for all user roles?
- Is installation documented step-by-step?
- Are different types of installation documented (development, test, production)
if necessary?
- If needed, are multiple OSes documented?
- Do users know where to go after reading the getting started guide?
- Is your new user content clearly signposted on your site’s homepage or at the
Expand All @@ -49,23 +72,31 @@ Example:
### Content maintainability & site mechanics

As a project scales, concerns like localized (translated) content and versioning
become large maintenance burdens, particularly if you don’t plan for them.
become large maintenance burdens if you don’t plan for them.

We evaluate on the following:

- Is your documentation searchable?
- Are you planning for localization/internationalization with regards to site
directory structure? Is a localization framework present?
- Are you planning for localization/internationalization as regards site
directory structure?
- Is a localization framework present?
- Do you have a clearly documented method for versioning your content?
- Is release-specific information documented in release notes?
- Is the documentation free of duplicate or nearly duplicated sections of
information?
- Do informational graphics add value by providing information in a way that
would be difficult in text?
- Will graphics require frequent modifications due to software changes, GUI
updates, or translation?

Example:

- <https://kubernetes.io/docs/>

### Content creation processes

Documentation is only as useful as it is accurate and well-maintained, and
requires the same kind of review and approval processes as code.
Documentation is only useful if it is accurate and well maintained. It requires
the same kind of review and approval processes as code.

We evaluate on the following:

Expand Down Expand Up @@ -101,11 +132,11 @@ to reach you.

We evaluate on the following:

- Is there a Slack/Discord/Discourse/etc. community and is it prominently linked
- Is there a Slack/Discord/Discourse or equivalent community prominently linked
from your website?
- Is there a direct link to your GitHub organization/repository?
- Are weekly/monthly project meetings documented? Is it clear how someone can
join those meetings?
- Is there a direct link to your GitHub project or repository?
- Can users find and join periodic (weekly or monthly) project meetings, if
applicable?
- Are mailing lists documented?

Example:
Expand Down Expand Up @@ -136,8 +167,9 @@ in easily?
We evaluate on the following:

- Do you have a community repository or section on your website?
- Is there a document specifically for new contributors/your first contribution?
- Do new users know where to get help?
- Is there a document specifically welcoming new contributors and documenting a
first contribution process?
- Can new users find where to get help?

Example:

Expand Down Expand Up @@ -174,48 +206,31 @@ Alternatively, files should be brought into the website repo via
If a project chooses to keep source files in multiple repos, they need a clearly
documented strategy for managing mirrored files and new contributions.

We evaluate on the following:

- Does the project have a single source for documentation? If not, is there a
reason?

### Minimal website requirements

Listed here are the _minimal_ website requirements for projects based on their
[maturity level][]: sandbox, incubating, graduated and archived.
[maturity level]: sandbox, incubating, graduated and archived.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep the trailing [], it helps tools like VS Code know that this is, for sure, a markdown link reference:

Suggested change
[maturity level]: sandbox, incubating, graduated and archived.
[maturity level][]: sandbox, incubating, graduated and archived.


Except for archived projects, requirements are cumulative through project
maturity levels so, for example, incubating projects must satisfy the
requirements for sandbox projects.

- **Sandbox**
- [Website guidelines](../website-guidelines-checklist.md): a majority of the
guidelines are satisfied
- **Project documentation** may or may not be present -- it is acceptable at
this maturity level to link out to documentation that hasn't yet been
integrated into the website
- _Example_: website with a single homepage, without any documentation or,
as was mentioned above, linking out to an external (preexisting) source
for docs
- _However_: consider reading the recommended practices in this repository
and implementing as many of the best practices as you can. This groundwork
will pay big dividends later when you need to upgrade your practices and
update your documentation as an incubating project. Assistance is
available from CNCF TechDocs anytime, including answers to individual
questions or a documentation workshop.
- **Incubating**
- [Website guidelines][]: all guidelines are satisfied.
- [Docs assessment][]: request an (re-)assessment through the CNCF [service
desk][]
- **Project documentation**:
- Stakeholders / personas are identified and their core needs (in terms of
docs) documented
- Hosted directly on the website (also see [Single-source requirement])
- Comprehensive, addressing most stakeholder needs
- **Graduated**
- [Docs assessment][]: follow-through actions from any assessment are complete
- **Project documentation** fully addresses the needs of key stakeholders
- **Archived**
- The website repo is in an [archived state][]
- The archived status of the project must be obvious to those visiting the
website, such as through the use of a prominent banner.
- If a successor project exists, link to its website and/or migration
documentation.
maturity levels. So, for example, graduated projects must satisfy the
requirements for incubating projects.

We evaluate on the following:

- Incubating: Are all [website guidelines][] satisfied? Graduated: Are all
guidelines satisfied?
- Incubating: Was a [docs assessment][] requested through CNCF service desk?
Graduated: All follow-up actions addressed?
- Incubating: User roles identified and doc needs documented? Graduated: All
stakeholder need identified?
- Incubating: Website hosted directly? Graduated: Hosted directly?
- Incubating: Is the [docs assessment][] comprehensive, addressing most
stakeholder needs? Graduated: Fully addresses needs of key stakeholders?
Comment on lines +223 to +233
Copy link
Collaborator

@chalin chalin Feb 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the breakdown that we had before. At a minimum, can you organize it in a list, with the first-level list items are maturity levels like we had before?

@nate-double-u WDYT?


[archived state]:
https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories
Expand All @@ -232,16 +247,23 @@ Most CNCF websites are accessed from mobile and other non-desktop devices at
least 10-20% of the time. Planning for this early in your website's design will
be much less effort than retrofitting a desktop-first design.

We evaluate on the following:

- Is the website usable from mobile?
- Are doc pages readable?
- Are all / most website features accessible from mobile -- such as the top-nav,
site search and in-page table of contents?
- Are all or most website features accessible from mobile -- such as the
top-nav, site search, and in-page table of contents?
- Might a [mobile-first] design make sense for your project?
- Are color contrasts significant enough for color-impaired readers?
- Are most website features usable using a keyboard only?
- Does text-to-speech offer listeners a good experience?

[mobile-first]:
https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Responsive/Mobile_first

Plan for suitable [accessibility][] measures for your website. For example:
Plan for suitable [accessibility] measures for your website. For example:

We evaluate on the following:
Comment on lines +264 to +266
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy-paste error here? It doesn't make sense to have two phrases ending in colons. Maybe you meant:

Suggested change
Plan for suitable [accessibility] measures for your website. For example:
We evaluate on the following:
Plan for suitable [accessibility][] measures for your website. For example, we
evaluate on the following:


- Are color contrasts significant enough for color-impaired readers?
- Are most website features usable using a keyboard only?
Expand All @@ -258,8 +280,8 @@ this is branding and marketing.

We evaluate on the following:

- Is there an easily recognizable brand for the project (logo + color scheme)
clearly identifiable?
- Is there an easily recognizable brand for the project (logo, font, and color
scheme) clearly identifiable?
- Is the brand used across the website consistently?
- Is the website’s typography clean and legible?

Expand Down Expand Up @@ -329,3 +351,4 @@ Example:

- Is your website accessible via HTTPS?
- Does HTTP access, if any, redirect to HTTPS?
- Are links to external websites or applications working and current?
Copy link
Collaborator

@chalin chalin Feb 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good addition! Actually, we want to know if links (be they internal or external) are valid.

Loading