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

etcd techdoc analysis #209

Merged
merged 10 commits into from
Feb 13, 2024
Merged

Conversation

dwelsch-esi
Copy link
Collaborator

@dwelsch-esi dwelsch-esi commented Jan 9, 2024

First draft of the etcd analysis and implementation.

Contributes to: #191

Copy link
Contributor

@jbogarthyde jbogarthyde left a comment

Choose a reason for hiding this comment

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

Overall looks great. A few typos and some minor rewrite suggestions.

assessments/0010-etcd/etcd-implementation.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-implementation.md Outdated Show resolved Hide resolved

***Upgrading etcd clusters and applications***: As far as I can tell, this page just lists the upbrade pages and isn't needed.

**Triage**: Suggest putting this information for users and contributors in the repo and providing a link from the documentation to create a cleaner separation of product documentation and project documentation. Put the link in the intro to the Troubleshooting section.
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe define product vs project doc concept in intro, as a general organizational principle.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Added to the recommendations outline in the intro.

assessments/0010-etcd/etcd-implementation.md Outdated Show resolved Hide resolved


**Quickstart**: Leave here. Rename to "Quick start" (two words). Add a "Prerequisites" section and revise the "What's next" section to focus on two separate paths, Development and Operations. For the developer path, link to the "Set up a local cluster" page rather than the install page.

Copy link
Contributor

Choose a reason for hiding this comment

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

The rest seems to imply that the two paths point to a named "Operations Guide" and "Developer Guide" -- if so, maybe make that explicit, and clarify that the audience for each section should be clearly stated.
Provide sample TOC?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Changed ToC to re-add Operator and Developer guides.

assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Show resolved Hide resolved
@thisisobate
Copy link
Collaborator

@dwelsch-esi @nate-double-u I just updated the website section as planned. Feel free to take a look

@nate-double-u nate-double-u force-pushed the etcd-techdoc-analysis branch 2 times, most recently from 03cdb07 to 7e0fbc5 Compare February 1, 2024 19:44
Copy link

@jberkus jberkus left a comment

Choose a reason for hiding this comment

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

In general, this is everything we were trying to get done in 2022. So overall a huge improvement.

I've got a couple questions/comments though, the biggest ones being:

  1. Need to understand the rationale of not including contributor docs in the main docs.
  2. Role split for admins

- Update and clarify quick start and new user workflows.
- Document key tasks as procedures rather than tutorials.
- Clarify which user roles (personas) each task is for.
- Going forward, write release notes for each major and minor release.
Copy link

Choose a reason for hiding this comment

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

Etcd does have release notes in the repository. Here, are you saying also copy those to the user documentation?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'm saying documentation best practice in my opinion would be to move the release notes into the documentation and take them out of the repo. My position as a technical writer is that release notes are part of the product documentation. It boils down to user role -- the release notes should be accessible to the software users -- in the case of etcd, developers and operators.

That said, this is an OSS project; these are suggestions, not mandates; and there could very well be reasons to leave the release notes where they are. Moving them might require effort better spent elsewhere, for example, or this project's contributors are used to looking for them in the repo. A graduated project should have a justification for doing anything that differs from documentation best practice, but one or two minor variations don't constitute a reason to condemn otherwise good documentation.

If it's OK with you, I'm going to leave this recommendation in and the community can evaluate and act on it in the context of the project. Feel free to close the issue as "will not fix" if that's the project consensus.

Finally, more important than where the release notes (or any other source of information) lives is the principle that it be a single source of truth: Don't maintain two copies of the release notes in two locations; instead, provide a link to them from the second (and any other) locations.

- Clarify which user roles (personas) each task is for.
- Going forward, write release notes for each major and minor release.
- Reorganize the documentation.
- Move *project* documentation (documentation for OSS contributors) to the etcd GitHub repo. Move *product* documentation (documentation for those who use the etcd software, in any capacity) to the technical documentation in the website repo.
Copy link

Choose a reason for hiding this comment

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

What's the benefit of moving contributor documentation to the main repository? I understand having it in its own section, but aren't there benefits to having it in the more readable & structured format supplied by doc publishing?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Again, it's a best practice designed to separate content for different user roles. By analogy with commercial software, you wouldn't put (presumably internal) developer documentation in your user manuals. I realize that in OSS there's no proprietary information to keep hidden, but there are other reasons to maintain that separation. A big one in my experience is to avoid confusing new users, who don't yet have a good mental model of the product and are relying on the documentation to build that understanding.

That said, in OSS projects the lines are sometimes blurred between contributors and certain users. And there are sometimes good reasons to put contributor docs on the website; your readability example is one. I recommend that If you do put contributor documentation in the tech docs, clearly label it as such and isolate it from the user documentation.


In an "Overview" or "Start here" page, outline etcd's user roles or personas. These probably include:
- *Evaluator*: Someone trying to determine whether etcd is appropriate for their product, project, or organization.
- *Admin or Operator*: Someonereponsible for setting up and maintaining a production etcd service.
Copy link

Choose a reason for hiding this comment

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

It's worth splitting Admin into two sub-roles: (a) Admin using Etcd embedded in Kubernetes (b) admin using Etcd on its own.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

That's an excellent suggestion. I'll need to collaborate with a contributor who understands the differences between the sub-roles in order to update the implementation plan.


## Write release notes

Write release notes for each major and minor release going forward. Release notes should include:
Copy link

Choose a reason for hiding this comment

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

See comment above

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yup, I wasn't aware of the release notes when I wrote this item. We can remove this as an issue.


In an "Overview" or "Start here" page, outline etcd's user roles or personas, including:
- *Evaluator*: Someone trying to determine whether etcd is appropriate for their product, project, or organization.
- *Admin or Operator*: Someonereponsible for setting up and maintaining a production etcd service.
Copy link

Choose a reason for hiding this comment

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

Same comment as on etcd-implementation

Copy link
Collaborator Author

@dwelsch-esi dwelsch-esi left a comment

Choose a reason for hiding this comment

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

Addressed @jberkus 's review comments. Excellent questions; I've tried to address them from a tech writer's perspective. Let me know what you think.

assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0010-etcd/etcd-analysis.md Outdated Show resolved Hide resolved
assessments/0008-backstage/backstage-issues.md Outdated Show resolved Hide resolved
- Update and clarify quick start and new user workflows.
- Document key tasks as procedures rather than tutorials.
- Clarify which user roles (personas) each task is for.
- Going forward, write release notes for each major and minor release.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'm saying documentation best practice in my opinion would be to move the release notes into the documentation and take them out of the repo. My position as a technical writer is that release notes are part of the product documentation. It boils down to user role -- the release notes should be accessible to the software users -- in the case of etcd, developers and operators.

That said, this is an OSS project; these are suggestions, not mandates; and there could very well be reasons to leave the release notes where they are. Moving them might require effort better spent elsewhere, for example, or this project's contributors are used to looking for them in the repo. A graduated project should have a justification for doing anything that differs from documentation best practice, but one or two minor variations don't constitute a reason to condemn otherwise good documentation.

If it's OK with you, I'm going to leave this recommendation in and the community can evaluate and act on it in the context of the project. Feel free to close the issue as "will not fix" if that's the project consensus.

Finally, more important than where the release notes (or any other source of information) lives is the principle that it be a single source of truth: Don't maintain two copies of the release notes in two locations; instead, provide a link to them from the second (and any other) locations.

- Clarify which user roles (personas) each task is for.
- Going forward, write release notes for each major and minor release.
- Reorganize the documentation.
- Move *project* documentation (documentation for OSS contributors) to the etcd GitHub repo. Move *product* documentation (documentation for those who use the etcd software, in any capacity) to the technical documentation in the website repo.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Again, it's a best practice designed to separate content for different user roles. By analogy with commercial software, you wouldn't put (presumably internal) developer documentation in your user manuals. I realize that in OSS there's no proprietary information to keep hidden, but there are other reasons to maintain that separation. A big one in my experience is to avoid confusing new users, who don't yet have a good mental model of the product and are relying on the documentation to build that understanding.

That said, in OSS projects the lines are sometimes blurred between contributors and certain users. And there are sometimes good reasons to put contributor docs on the website; your readability example is one. I recommend that If you do put contributor documentation in the tech docs, clearly label it as such and isolate it from the user documentation.


In an "Overview" or "Start here" page, outline etcd's user roles or personas. These probably include:
- *Evaluator*: Someone trying to determine whether etcd is appropriate for their product, project, or organization.
- *Admin or Operator*: Someonereponsible for setting up and maintaining a production etcd service.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

That's an excellent suggestion. I'll need to collaborate with a contributor who understands the differences between the sub-roles in order to update the implementation plan.


## Write release notes

Write release notes for each major and minor release going forward. Release notes should include:
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yup, I wasn't aware of the release notes when I wrote this item. We can remove this as an issue.

dwelsch-esi and others added 10 commits February 9, 2024 17:40
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: dwelsch-esi <dwelsch@expertsupport.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
A list of issues to add to the website repo to implement the doc improvements.

Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: thisisobate <obasiuche62@gmail.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Signed-off-by: thisisobate <obasiuche62@gmail.com>
Signed-off-by: Dave Welsch <116022979+dwelsch-esi@users.noreply.github.com>
Copy link
Member

@nate-double-u nate-double-u left a comment

Choose a reason for hiding this comment

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

Thanks for this @dwelsch-esi, and thanks for the reviews everyone!

@nate-double-u nate-double-u merged commit 783e1c9 into cncf:main Feb 13, 2024
1 check passed
@dwelsch-esi dwelsch-esi deleted the etcd-techdoc-analysis branch February 20, 2024 18:09
@nate-double-u nate-double-u added the Docs analysis CNCF technical documentation assistance label Jun 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Docs analysis CNCF technical documentation assistance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants