Tracking Your Work with Daily Notes
As a developer, remembering what you worked on last week - not to mention last year. By keeping a daily log of what you work on, you’ll have less to remember and more information to help you do your job.
Organizing Your Notes
Organize your notes in a folder for each year and a separate file for each day you work:
2022 2023 ├─ 2023-01-02.md ├─ 2023-01-03.md ├─ 2023-01-04.md ├─ 2023-01-05.md ├─ 2023-01-06.md
What to Track
Track every meeting you attend during the day. Make sure to document what was discussed, any decisions that were made, and any links to relevant documentation or resources.
# January 05, 2023 ## Meeting: Discuss Root Cause of Last Week's Outtage Met with the team to discuss the root cause of the 12/15/2022 outtage. Steve walked us through the [Splunk logs] and the [New Relic data] and highlighted the Spike in bot traffic that occured shortly before the site went down. Based on these findings, we're going to set up a follow-up meeting with the Security team to go over our findings and see what solutions they recommend. : https://url-to-splunk-logs : https://url-to-new-relic-data
Not every meeting can (or should) be clearly documented. Meetings that are fairly routine or where sensitive information is discussed should be noted as simply occurring:
# January 05, 2023 ## Meeting: Ticket Grooming Groomed tickets in the backlog. ## Meeting: One-on-one with Manager Met with my manager for our 1:1.
Document every ticket you worked on during the day, even if the work spans multiple days. Each day you work on a task, document what was completed, what problems you ran into, and any relevant conversations:
# January 05, 2023 ## [TCKT-9867]: Add New Headers to Standard Fetch Library [Touched base with Carl] and got clarity around the requirements. Started updating the unit tests to reflect the new headers. : https://jira.com/browse/tckt-9867 : https://url-to-slack-conversation
# January 06, 2023 ## [TCKT-9867]: Add New Headers to Standard Fetch Library Finished updating the unit tests. Ran into issues with CORS requests failing due to upstream services not being prepared to handle the new header values. I've [reached out to the services team] to get a timeline for the updates on their end. : https://jira.com/browse/tckt-9867 : https://url-to-slack-conversation
# January 07, 2023 ## [TCKT-9867]: Add New Headers to Standard Fetch Library Now that the upstream services can handle the update, I was able to complete my testing and open and [MR]. : https://jira.com/browse/tckt-9867 : https://url-to-merge-request
# January 08, 2023 ## [TCKT-9867]: Add New Headers to Standard Fetch Library Release this [to production]. : https://jira.com/browse/tckt-9867 : https://link-to-production-release
A task is anything you were asked to do that didn’t have a ticket assigned to it:
# January 08, 2023 ## Task: Update Expired Certificate in Dev Environment [Susan asked me] to update the expired certs in our dev environment. : https://url-to-slack-conversation
If a task ends up taking multiple to days to complete, convert it into an official ticket for better tracking.
Answering questions for your fellow engineers takes time. Since a lot of this work is ad-hoc and not necessarily tied to a particular ticket, document it separately from other work:
# January 08, 2023 ## Support: Help Chuck Debug His Release Pipeline [Chuck asked me for help] debugging their pipeline issues. Turns out that the logs were being truncated. Once we dug through the Splunk log, we were able to to see the actual authentication error causing the pipeline to fail and update the credentials. : https://url-to-slack-conversation
If you accomplish something worth mentioning during a performance review, mark it with a gold star (⭐):
# January 07, 2023 ## [TCKT-9837]: Fix Bundle Size Issues ⭐ I released the changes [to production]. This reduced the main bundle size by 90KB. : https://jira.com/browse/tckt-9837 : https://url-to-merge-request
When your manager asks you for a list of major accomplishments for the last 6 months or year, you’ll be able to quickly search your notes for the ⭐ symbol and generate a list of noteworthy items.
Link Back to Everything
Whether it’s a Slack thread, Jira ticket, or merge request, make sure you link to it in your notes for later reference. Linking to relevant external resources will help provide context if you’re ever asked (and you will be) about why a particular decision was made or task done.
If you decide to use Markdown, I recommend you use reference style links to make notes with a lot of links more legible.
Be Careful What You Document
Consider your notes to be public (internally to your company). Don’t document anything you wouldn’t want to be read outloud at the company Christmas party. Don’t document anything confidential (e.g., feedback for your peers, notes from interviews, customer data, etc.,)
There’s a lot of ways to document your daily work. Whatever you format you choose to use, make sure it’s consistent and that you document everything you work on, no matter how small.
Choose a format your comfortable with. I use Markdown but Confluence pages or even plain text files also work.
Avoid Third Party Tools
As tempting as it may be to store your notes in applications like Evernote or Notion, I strongly advise against it. Because your notes could include proprietary information, you may run into trouble if that data ends up being stored on servers that don’t belong to your company. An exception could be made if your company has an account with one of these third-party vendors.
I store my notes in a git repository hosted on my company’s servers.
Documenting everything you work on every day sounds like a lot of work. At first, it may seem like it’s not worth it. But the longer you take daily notes, the more valuable they become. Recently, I was asked by leadership when a project had launched, why certain design decisions were made, and who was involved in those decisions - from 2019. Because I had consistently documented the project (every meeting, every task, every ticket), I was able to gather all the relevant documentation (including Slack threads) and deliver the information in minutes.