Skip to content

Commit 070f061

Browse files
authored
How to organize Google Docs effectively as a software engineer? (#112)
1 parent c4773de commit 070f061

File tree

5 files changed

+86
-3
lines changed

5 files changed

+86
-3
lines changed

.article_num

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
218
1+
219

_data/images.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
/assets/2024/pawel-czerwinski-fpZZEV0uQwA-unsplash.jpg:
2+
author: Pawel Czerwinski
3+
url: https://unsplash.com/@pawel_czerwinski
4+
height: 1920
5+
width: 1280
6+
license: Unplash License
7+
license_url: https://unsplash.com/license
8+
19
/assets/mika-baumeister-Wpnoqo2plFA-unsplash.jpg:
210
author: Mika Baumeister
311
url: https://unsplash.com/@kommumikation

_data/variables.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ sources:
5050
css: 'https://cdn.bootcss.com/gitalk/1.2.2/gitalk.min.css'
5151
valine: 'https://unpkg.com/valine/dist/Valine.min.js' # bootcdn not available
5252
mathjax: 'https://cdn.bootcss.com/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML'
53-
mermaid: 'https://cdn.bootcss.com/mermaid/10.9.1/mermaid.min.js'
53+
mermaid: 'https://cdn.bootcss.com/mermaid/11.1.0/mermaid.min.js'
5454
unpkg:
5555
font_awesome: 'https://use.fontawesome.com/releases/v5.15.1/css/all.css'
5656
jquery: 'https://unpkg.com/jquery@3.3.1/dist/jquery.min.js'
@@ -61,4 +61,4 @@ sources:
6161
css: 'https://unpkg.com/gitalk@1.2.2/dist/gitalk.css'
6262
valine: 'https//unpkg.com/valine/dist/Valine.min.js'
6363
mathjax: 'https://unpkg.com/mathjax@2.7.4/unpacked/MathJax.js?config=TeX-MML-AM_CHTML'
64-
mermaid: 'https://unpkg.com/mermaid@10.9.1/dist/mermaid.min.js'
64+
mermaid: 'https://unpkg.com/mermaid@11.1.0/dist/mermaid.min.js'
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
article_num: 219
3+
layout: post
4+
type: classic
5+
title: How to organize Google docs effectively as a software engineer?
6+
subtitle: >
7+
Bringing your documentation to the next level.
8+
9+
lang: en
10+
date: 2024-09-14 17:48:27 +0200
11+
categories: [documentation]
12+
tags: [documentation]
13+
comments: true
14+
excerpt: >
15+
This article discusses how to organize Google docs by adapting a 3-level framework, to use one
16+
single doc, one-level directory or two-level directory in Google Drive.
17+
18+
image: /assets/2024/pawel-czerwinski-fpZZEV0uQwA-unsplash.jpg
19+
cover: /assets/2024/pawel-czerwinski-fpZZEV0uQwA-unsplash.jpg
20+
article_header:
21+
type: overlay
22+
theme: dark
23+
background_color: "#203028"
24+
background_image:
25+
gradient: "linear-gradient(135deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .4))"
26+
wechat: false
27+
---
28+
29+
## Introduction
30+
31+
As a developer, you probably need to write a lot of documentation. You need to write specifications to architect your solution. You need to write release notes to share new changes with other people. You need to write manuals for users to get started and understand the features of your software. You need to write an operational guide to allow the team to operate the software effectively. You also need to write reference documentation to dive deep into each configuration exposed to the external API. It’s a lot of time and effort to manage them. Therefore, it is important to have some sort of framework to allow you to manage this effectively. Today, I’m going to share with you my thoughts and experience about managing and scaling documents in Google Docs.
32+
33+
## The 3-Level Framework
34+
35+
I think everyone should assume that documentation is not done overnight: instead, it grows with your software. At the beginning, the project was small, so there was little documentation to write. When the project becomes more complex, so does the documentation. Because people are not machines, they read docs rather than code. Therefore, it is crucial to think about the evolution of the documentation and adapt the structure of the documentation accordingly to the growth of the project. If you set up something too complex at the beginning, it will be over-thinking, but if you don’t evolve overtime, then documentation would “lag” behind and cannot fit the purpose and the complexity of your project anymore. Over the last years, I have been using a 3-level framework, which is working pretty well for me. L0 is writing documentation in a single document; L1 is to put multiple documents into a directory; and L2 is to put multiple documents into a two-level directory, either the top-level directory or the subdirectories. This sounds extremely easy, right? Now, let’s explore each of them individually.
36+
37+
Here, I am using the ChatGPT QuickSearch Extension as an example (internally, it's called Chatsearch).
38+
39+
```mermaid
40+
timeline
41+
title Evoluation of Chatsearch (CS)
42+
section L0 - Single Document
43+
CS Chatsearch Business Plan : Self
44+
section L1 - One-Level Directory
45+
CS Architecture : CS User Research : CS Operations
46+
section L2 - Two-Level Directory
47+
CS WebApp : CS Choosing UI Framework : CS Authentication in frontend
48+
CS User Survey : CS User Interview 1 : CS User Interview 2 : CS User Survey 1 : CS User Survey 2
49+
CS User Experience : CS Welcome Email : CS User Onboarding Process
50+
CS Browser Extension : CS Browser Extension UI : CS Browser Extension - Data Sync : CS Browser Extension in Chrome Web Store
51+
```
52+
53+
### L0 - Single Document
54+
55+
In the single-document pattern, you write everything in the same document. This is a standalone document containing all kinds of information related to your project. It works well when you have a limited amount of information related to this project. Perhaps you are a newcomer for the project and your current interest is limited since you are just learning. Perhaps you have an idea, so you want to describe the motivation, the problems and potential solutions, but you are not ready to implement it yet. Perhaps you want to understand the organization of the team, so you describe the structure and roles in a document. These kinds of information fit perfectly in single documentation. You don’t need a directory or an even more complex structure because one document is simple enough. If the situation evolves, you just need to add more paragraphs into that document. When the document grows a lot, like more than 5 to 10 pages, perhaps one single document does not fit it anymore. You will need a more complex structure to adapt the growth of your project.
56+
57+
### L1 - One-Level Directory
58+
59+
A one-level directory is a directory containing multiple documents, ideally more than three documents. Each document represents different aspects of the software. For example, one can be a getting-started guide while another explains the architecture from a technical standpoint, and the last one is an operational guide. All content inside this directory should be built around the same topic so that the content is highly cohesive. People will naturally be interested. If you think about your content from the readers’ respective, you typically have different kinds of readers for your documents: some readers may be product owners, some may be support engineers, sales engineers, or developers. Because their roles are different, so are their interests. Therefore, you can write your document by providing content that is highly relevant to some users. It makes the target audience clear. This will better attract their attention and provide more effective communication. Using a single document is not suitable anymore because people will be confused when navigating through the document and having a hard time to understand which part matters to them. For example, a getting-started guide is typically for users who start using your software, an operational guide (runbook) is typically for software engineers and devops who run the software, and a roadmap is typically for stakeholders of the project (managers, core team, etc).
60+
61+
### L2 - Two-Level Directory
62+
63+
Over time, the one-level directory structure probably won’t fit anymore because every aspect of your software grows and more people are joining the team. Your software may also become more complex. In this case, you can categorize them into different categories, and for each category, you create a separated directory for it. For example, if you have multiple requests for comments (RFCs), you can put them under the RFCs directory. If you have multiple operational guides, you can create another one called “operations” for running the service in production. You can create another directory for your users, talking about getting started with the software and how to be familiar with the core concepts. You can also create another one about the organization, including roadmap, OKRs, discussions etc.
64+
65+
### L3 - Three-Level?
66+
67+
What if the project is becoming even more complex? I would argue that a three-level directory is too complex for a project. If your project’s complexity goes beyond two levels, it probably means that you want to find another solution rather than making your documentation structure more complex. For example, you may consider creating another software in the microservice architecture. Or, re-architecturing your software into multiple layers so that you can move some of the pieces together into a higher-level layer or a lower-level layer, so that it can be either closer to the business or closer to the infrastructure. Growing the complexity into directories (as 3 levels) would be too complex and people would have a hard time finding information that they need. The only exception may be for archive purposes. When you want to collect data related to a short-term project, such as a research or an incident report, you may want to put evidence into a third-level directory where people can find them if needed. This is mainly for archive purpose.
68+
69+
## Conclusion
70+
71+
In this article, we discussed how to organize the work in Google Docs using a multi-level
72+
structure and change the structure based on the complexity of the project.
73+
Interested to know more? You can subscribe to [the feed of my blog](/feed.xml), follow me
74+
on [Twitter](https://twitter.com/mincong_h) or
75+
[GitHub](https://github.com/mincong-h/). Hope you enjoy this article, see you the next time!
139 KB
Loading

0 commit comments

Comments
 (0)