-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Add [Documentation] Proposed documentation ADR #30510
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
base: main
Are you sure you want to change the base?
Conversation
Proposal for new documentation structure
ih-codes
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me! 👍 Just a few thoughts.
Have you explored how we can get our own Confluence directory set up at Mozilla for the iOS team? 👀 I'm eager to give it a try but of course it might be closer to Christmas when things have slowed down a bit...
| - References to key external documents | ||
|
|
||
| - **Google Drive** will remain the workspace for in-progress and collaborative materials, including: | ||
| - Meeting notes and action items |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think most meeting notes make perfect sense to be in the team folder, but there may be some more sensitive 1:1 notes that should remain in personal folders with only the 2 parties involved.
| - Clear boundaries between collaborative, internal, and contributor-facing documentation. | ||
| - Reduced redundancy and confusion over document ownership. | ||
| - Improved onboarding and cross-team transparency. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another pro: confluence tagging and searchability should improve discoverability of documentation as well, especially compared to the GitHub Wiki!
| @@ -0,0 +1,67 @@ | |||
| # 6. Adopt Three-Tier Documentation Structure | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should adapt the adr/README as well
|
@ih-codes we already have a team confluence page. It is just very out of date and would need to be cleaned up. https://mozilla-hub.atlassian.net/wiki/spaces/Mobile/pages/21955148/Firefox+for+iOS |
cyndichin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for proposing this @Cramsden !! looks great, we used Confluence back when I was in Pocket so happy that we're bringing this here. I had one comment for clarity, but doesn't block this PR :)
|
|
||
| - **Confluence** will serve as the canonical home for finalized and evergreen documentation. | ||
| It will include: | ||
| - Engineering overviews and architecture |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would these also benefit to add to our wiki? It seems that our contributors can benefit from understanding our architecture. What about feature specific documentation (i.e requirements, architecture, figma design)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cyndichin I think the idea here is that you need some information on how to build a feature using the app's architecture in order to contribute but you don't necessarily need to do a deep dive in order to contribute and that sometimes too much information can be overwhelming/turn folks off of contributing. I think the idea is that we put in the wiki what we know contributors need and if there is any documentation they are missing we can learn from that and add it in. I suspect it will be a lot less than we think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense! Thanks for clearing it up, appreciate this ❤️
| - Documentation will be easier to locate and maintain. | ||
| - Clear boundaries between collaborative, internal, and contributor-facing documentation. | ||
| - Reduced redundancy and confusion over document ownership. | ||
| - Improved onboarding and cross-team transparency. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice 🔥
ih-codes
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will approve, just a few formatting nitpicks before merging though!
| - Meeting notes and collaborative planning documents | ||
| - Early-stage proposals or design explorations | ||
| - Research spikes and technical investigations | ||
| - Presentations and learning summaries shared within the team | ||
| - Cross-team collaboration documents |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Meeting notes and collaborative planning documents | |
| - Early-stage proposals or design explorations | |
| - Research spikes and technical investigations | |
| - Presentations and learning summaries shared within the team | |
| - Cross-team collaboration documents | |
| - Meeting notes and collaborative planning documents | |
| - Early-stage proposals or design explorations | |
| - Research spikes and technical investigations | |
| - Presentations and learning summaries shared within the team | |
| - Cross-team collaboration documents |
Inconsistent alignment
| When an investigation or proposal results in a technical decision, the responsible engineer will author an **ADR in GitHub** to record that decision. | ||
| After a decision is made, any resulting documentation that becomes part of long-term knowledge (e.g., implementation guides, architecture updates) will be written in **Confluence**, with optional links back to the relevant Drive documents for historical context. | ||
|
|
||
| Google Drive will therefore remain the home for **exploration and discovery**, while **GitHub ADRs** and **Confluence** represent **decision** and **documentation**, respectively. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| When an investigation or proposal results in a technical decision, the responsible engineer will author an **ADR in GitHub** to record that decision. | |
| After a decision is made, any resulting documentation that becomes part of long-term knowledge (e.g., implementation guides, architecture updates) will be written in **Confluence**, with optional links back to the relevant Drive documents for historical context. | |
| Google Drive will therefore remain the home for **exploration and discovery**, while **GitHub ADRs** and **Confluence** represent **decision** and **documentation**, respectively. | |
| When an investigation or proposal results in a technical decision, the responsible engineer will author an **ADR in GitHub** to record that decision. After a decision is made, any resulting documentation that becomes part of long-term knowledge (e.g., implementation guides, architecture updates) will be written in **Confluence**, with optional links back to the relevant Drive documents for historical context. | |
| Google Drive will therefore remain the home for **exploration and discovery**, while **GitHub ADRs** and **Confluence** represent **decision** and **documentation**, respectively. |
Just a suggestion to combine the first 2 paragraphs. But at the very least there's an extra newline in here.
| - How to test, run, and validate changes locally | ||
|
|
||
| The Wiki must remain self-contained so contributors can successfully engage without internal access. | ||
| Internal Confluence pages may be referenced in name only (e.g., “For Mozilla staff, see the internal Confluence page on Swift Concurrency for more details”) but should never be linked directly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Internal Confluence pages may be referenced in name only (e.g., “For Mozilla staff, see the internal Confluence page on Swift Concurrency for more details”) but should never be linked directly. | |
| Internal Confluence pages may be referenced in name only (e.g., “For Mozilla staff, see the internal Confluence page on Swift Concurrency for more details”) but should never be linked directly to ensure a good user experience for our contributors who can't access those documents. |
Just a suggestion to clarify the "why"
|
|
||
| We will **adopt a three-tier documentation structure** using Confluence, Google Drive, and the GitHub Wiki, each serving a distinct role: | ||
|
|
||
| - **Confluence** will serve as the canonical home for finalized and evergreen documentation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does evergreen means in this context?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is confusing. I will change it. evergreen is basically another word for a living document
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lmarceau I have updated this sentence to be more clear. Let me know what you think!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Evergreen is a synonym for something living, so in terms of documentation it usually refers to a document that will continue to be used, referenced and updated as needed. E.g. documents outlining process of all kinds tend to be living/evergreen documents, because they often continue to evolve over time.
💡 Description
Proposal for new documentation structure
🎥 Demos
Documentation Policy
To clarify where different types of documentation live across our tools: Confluence, Google Drive, and the GitHub Wiki.
Confluence — The Source of Truth
Use for: Long-term, finalized documentation that represents how we work and what we know.
Examples:
Notes:
Google Drive — Collaboration & In-Progress Work
Use for: Drafts, meeting notes, planning docs, and any document still under discussion or requiring frequent collaboration.
Sub-sections:
Team-Meetings
Planning
Interviewing
Cross-Team Collaboration
GitHub Wiki — Contributor & Repository Docs
Use for: Information external contributors or new engineers need to build, test, or contribute to our project.
Examples:
Notes:
Archiving and Maintenance
📝 Checklist