Have you ever started your work day and had a lingering feeling that you were supposed to do something but you can’t quite remember what it was?
How about that time last week when you were in a very productive meeting where decisions were made that resulted in some action items landing on your plate but now you can’t quite piece it all together?
- How many action items are you responsible for?
- What exactly do they entail?
- What was the detailed approach the team landed on again?
Has something important fallen through the cracks for you to only realize much later?
These scenarios can be alleviated through effective note-taking (even if/when there isn’t a designated meeting notetaker).
Here are some aspects of my personal note-taking approach (refined over many years) that help me with information retention and action item completion!
10 Tips with Examples#
1. Use a single Markdown file for all daily notes#
I originally started with plain text notes but quickly transitioned to using Markdown to bring structure and emphasis. Benefits include:
- Markdown is easy to learn, easy to write in almost any text editor/IDE, and a very capable markup language. If on macOS, I’d recommend looking into MacDown.
- Simple search within a single document vs using external CLI / tooling to search for relevant notes taken in the past (although those approaches can still be used if desired). If using a GitHub repository, you can make use of GitHub Code search if desired.
- Portable, no vendor lock-in, and able to be backed up / distributed via git.
Example: general_notes.md
2. h1
headings designate each work day#
Allows each work day to be at the root (hierarchically) with all of the day’s activities / notes listed underneath.
# 01-29-24
...
# 01-30-24
...
General callout on using headings to structure data (applies to Markdown headings as well as headings in Confluence, Jira, etc).
- Hierarchy emphasizes organization, creates structure, and groups related content.
- If no hierarchy is used, it becomes more difficult to spot where notes from one activity stop and another activity begin.
3. h2
headings create sections under a given work day#
Typical sections include meetings, work activities (blocks of time spent to brainstorm, research, or work towards completion of an action item), or general to-do lists.
# 01-29-24
## Android Team Sync
...
## Pro Tips - A Smorgasbord presentation
...
4. h3
, h4
, and h5
headings add sub hierarchies to sections#
Use these to create appropriate hierarchy for the discreet sections within a presentation, meeting, or activity.
# 01-29-24
## Android Team Sync
### To Mention
...
### Notes
...
## Pro Tips - A Smorgasbord presentation
...
### Helpful tools you may not be aware of
...
#### Chrome custom search engines (built-in)
...
##### Quick Jira ticket lookup
...
##### Quick Confluence page lookup
...
### TextBlaze Autocomplete (Chrome plugin)
...
5. Proactively add a To Mention
section with items you want to bring up prior to the start of the meeting#
For meetings where you have info to share, add a ### To Mention
section listing my talking points followed by ### Notes
section where general meetings notes are captured
Take some time to ideate questions, assertions, observations, and parking lot items you want to raise prior to meeting start as this preparation:
- Helps you cover things you want to raise but may forget in the moment during the meeting.
- Allows you to actively listen, resulting in better and more effective note-taking since you’re not trying to mentally collate or remember what you need to raise while the meeting is in progress.
...
## Android Team Sync
### To Mention
* Discussions with Design Team on updated App Icon and Splash screen with new branding - <https://company.atlassian.net/browse/ANDROID-1234> - I'll update AC
* Completion of SL API assessment - shared findings with Product, no development likely for the next 6 months or so - <https://company.atlassian.net/wiki/spaces/KB/pages/3349000000/New+Shopping+List+API+Proposal>
* Had a discussion with Jane/Xavier - documented outcome in <https://company.atlassian.net/wiki/spaces/KB/pages/3288727550/Feature+Foo#API>
...
### Notes
* Leah - fixed splash screen timeout
...
6. Associate the person sharing information with the notes captured#
During meetings or asynchronous messages (Slack, email), prefix a line of notes with the name of the person to link the note to the person sharing it.
This gives context to who provided the information relevant to the notes your capturing.
...
### Notes
* Leah - fixed splash screen timeout in ANDROID-1234
* James - wrapping up zendesk ticket ANDROID-4321
* Sergio - bug fixes, mainly on bug related to ksp for annotation processing - ANDROID-5678
...
7. Capture action items along with priority information#
h1
headings comprised of AI
followed P[0–3]
denote an internal action item followed by relative priority
Priorities are categorized as follows:
- P0 — Critical
- P1 — High
- P2 — Medium
- P3 — Low
- In general, tracking personal action items in your notes maintains a single source of truth for both and provides temporal/spatial context of the action item in relation to the surrounding notes.
- Using
h1
headings brings attention to the action item, especially when viewing the notes in a text editor supporting inline markup OR viewing rendered Markdown output. - Defining a priority helps personal prioritization of things that need to be done, regardless of what point in time the action item is identified. Additionally, CLI scripts can be written and executed on the well structured Markdown notes file contents to generate reports for things like priority grouping of action items for simpler personal action item awareness / triage. See Priority Report Generation Script in the section below for an example.
# * AI P0 Write and submit self assessment by EOD
# * AI P1 Document/share shopping service behavior on Android with web lead
# * AI P2 Write review for Sergio on LinkedIn at some point early next week
# * AI P3 Create logo grid for all brands I've worked on and add to LinkedIn
8. Mark action items as completed with additional info#
Successfully completed action items are signified by removing the h1
heading, changing AI
to **AIC**
to denote completion, and postfixing relevant additional info / links
- Removing the
h1
heading but bolding theAIC
visually brings some attention / differentiation to completed action items, but much less so than with open action items. - Adding additional details postfixed to the action item line can help you locate relevant information (including links to Slack threads, Jira tickets, Confluence updates, etc) when referring back to the action item in the future.
* **AIC** P0 Write and submit self assessment by EOD - done on 1-29-24
* **AIC** P1 Document/share shopping service behavior on Android with web lead - shared <https://company.atlassian.net/wiki/spaces/KB/pages/3368600000/Shopping+List> in Slack
* **AIC** P2 Write review for Sergio on LinkedIn at some point early next week - done on 1-30-24
* **AIC** P3 Create logo grid for all brands I've worked on and add to LinkedIn - done on 1-31-24
9. Create completed action items for non-trivial work#
For non-trivial tasks, it can be beneficial to track work you’ve done by adding AIC
when completing the work, even if you didn’t initially create an action item. This provides some history in your internal notes when you complete some work that you didn’t necessarily intend OR as byproducts of other action items that you can reference without needing to reference the external thing (Jira ticket, confluence ticket, slack thread, etc).
There may be value in bringing these items up during standup or other agile meetings, they could be used as reference points when performing self evaluations for work you’ve completed, or they could be purely for personal initiative tracking.
* **AIC** Created <https://company.atlassian.net/wiki/spaces/KB/pages/3368000000/Technology-Glossary>
10. Close obsolete action items with reason why#
All other action items are closed by removing the h1
heading and appending the reason to AI
- Rather than marking the action item as completed with
AIC
, it makes sense to list alternate reasons why the action item no longer applies. - The action item may no longer be needed OR another solution may have been found that obviates the need for the action item.
* **AINotNeeded** Share sample json files with Jane/Xavier - shared sample json snippet in Confluence instead
* **AINotDone** Respond to testing comment on ANDROID-7089 - leah already commented
Sample Notes File#
Here is a short example showing what your notes will end up looking like:
# 01-29-24
* **AIC** Created <https://company.atlassian.net/wiki/spaces/KB/pages/3368000000/Technology-Glossary>
* **AIC** P0 Write and submit self assessment by EOD - done on 1-29-24
* **AIC** P1 Document/share shopping service behavior on Android with web lead - shared <https://company.atlassian.net/wiki/spaces/KB/pages/3368600000/Shopping+List> in Slack
* **AIC** P2 Write review for Sergio on LinkedIn at some point early next week - done on 1-30-24
# * AI P0 Complete peer reviews
* **AIC** P3 Create logo grid for all brands I've worked on and add to LinkedIn - done on 1-31-24
## Android Team Sync
### To Mention
* Discussions with Design Team on updated App Icon and Splash screen with new branding - <https://company.atlassian.net/browse/ANDROID-1234> - I'll update AC
* Completion of SL API assessment - shared findings with Product, no development likely for the next 6 months or so - <https://company.atlassian.net/wiki/spaces/KB/pages/3349000000/New+Shopping+List+API+Proposal>
* Had a discussion with Jane/Xavier - documented outcome in <https://company.atlassian.net/wiki/spaces/KB/pages/3288727550/Feature+Foo#API>
### Notes
* Leah - fixed splash screen timeout in ANDROID-1234
* James - wrapping up zendesk ticket ANDROID-4321
* Sergio - bug fixes, mainly on bug related to ksp for annotation processing - ANDROID-5678
## Pro Tips - A Smorgasbord presentation
Presenter: Jared Stockton
### Helpful tools you may not be aware of
#### Chrome custom search engines (built-in)
* A way to create keywords that you type into the address bar in Chrome followed by a query that is used as the value in a preconfigured URL with `%s` in the place where the query should go.
* Increases efficiency
# * AI P1 Configure jira/confluence search engines
##### Quick Jira ticket lookup
* Live demo: In address bar, type j tab ANDROID-1234
##### Quick Confluence page lookup
* Live demo: In address bar, type c tab technology glossary
### TextBlaze Autocomplete (Chrome plugin)
* Pre-canned text auto-expanded after typing keyword.
* Increases efficiency
# * AI P2 Install and configure TextBlaze
## Sprint Refinement
* **AINotNeeded** Share sample json files with Jane/Xavier - shared sample json snippet in Confluence instead
* **AINotDone** Respond to testing comment on ANDROID-7089 - leah already commented
# 01-30-24
## ToDo
# AI Update mind map with new initiatives that can be closed vs themes
# AI P3 Create mobile design 101 presentation
...
# 01-31-24
...
# 02-01-24
...
Priority Report Generation Script#
This is a quick and dirty function I’ve written and added to my macOS .zshrc
to allow for usage of gpl (not that GPL 😉) via command-line to generate a Markdown report bucketing the action items by priority to help triage open action items.
YMMV: Take/tweak as you see fit.
## Generate Priority List - Searches for all open priorities in markdown notes, generates a new file that lists them out for easier triaging, and opens the file
## Usage: gpl "~/notes/general_notes.md"
function gpl {
if [[ $# -eq 0 ]] ; then
echo 'Invalid path specified. Add the full path to the markdown file as an argument - ex: gpl "~/notes/general_notes.md"'
return 0
fi
local notesFile="$1"
# -h removes filename prefix
# -n adds line number prefix
# tail -r - reverses the line order so that the highest numbered lines are listed first (latest in the notes file)
# sed 's/.*/* &/' - adds a bullet point prefix: https://unix.stackexchange.com/a/251414/330215
local np=$(grep -nh 'AI [^P]' $notesFile | tail -r | sed 's/.*/* &/')
local p0=$(grep -nh 'AI P0' $notesFile | tail -r | sed 's/.*/* &/')
local p1=$(grep -nh 'AI P1' $notesFile | tail -r | sed 's/.*/* &/')
local p2=$(grep -nh 'AI P2' $notesFile | tail -r | sed 's/.*/* &/')
local p3=$(grep -nh 'AI P3' $notesFile | tail -r | sed 's/.*/* &/')
cd ~/temp
printf 'Do not modify this file as it is auto-generated by the `gpl` command. Modify the source to have changes reflected here.\n\n' >pl_generated.md
printf '# P0\n%s' "${p0}" >>pl_generated.md
printf '\n\n# P1\n%s' "${p1}" >>pl_generated.md
printf '\n\n# P2\n%s' "${p2}" >>pl_generated.md
printf '\n\n# P3\n%s' "${p3}" >>pl_generated.md
printf '\n\n# NP\n%s' "${np}" >>pl_generated.md
open pl_generated.md
}
Sample Generated Priority Report#
This is an example generated report using the Sample Notes File content mentioned earlier:
Do not modify this file as it is auto-generated by the `gpl` command. Modify the source to have changes reflected here.
# P0
* 7:# * AI P0 Complete peer reviews
# P1
* 27:# * AI P1 Configure jira/confluence search engines
# P2
* 35:# * AI P2 Install and configure TextBlaze
# P3
* 44:# AI P3 Create mobile design 101 presentation
# NP
* 43:# AI Update mind map with new initiatives that can be closed vs themes
Try incorporating some of these tips to improve your own note-taking journey!