Keep a Daylog
Created On: 2016-07-24
I don't remember where I first learn about daylogs. But it's such a useful tool that I think I will replicate the idea so more tech people know about it.
A daylog is a file where you write what things happened and what things you did in everyday when you are working. Typical information that I keep in daylog includes todos, meeting schedules, talk topics, project progresses, bug reports, debug logs, tips, server or desktop configuration changes, office equipment, hardware, network changes, business travel plans etc. The essence is to write down what you did and what you are about to do, review it every now and then. This way, if you encounter a problem that has hit you in the past, you know exactly how to resolve it without struggling. If you want to know what you did 6 month ago, you don't need to think hard, just check the daylog for those months.
Since I keep daylog for so many things, it's natural they spread in more than one file. Each big project has their own daylog file which is committed to a private git repository. Project daylog usually contain deadlines, milestone goals, working-on items, bug reports, meeting preparation and conclusions. Note that I am not suggesting to replace dedicated project management tools by daylog. You continue to use whatever you or your company is using. You just write down what you did or will do in a daylog. For example, a detailed bug report maybe submitted in JIRA. In daylog, when you decided to work on a bug, you just write down the bug ID, title, and link to the Jira issue. While you are working on the bug, write down all references and solutions in daylog. When you solve the bug, update JIRA and mark the daylog entry as DONE. Server administration should have a separate daylog. It doesn't matter the change is made in git repository or not. Just write why and what you did to the servers. Keep everything in a daylog allows you easily learn changes without searching for files scattered in varies places.
Daylog have some required elements: date, title, details. Optional elements that may be helpful includes setting TODO status, schedule time and deadline. Daylog should always support full-text search. Different tools can be used for daylog, such as plain text files, a wordpress blog, a CMS, a wiki, a Trello board, Evernote, OneNote etc. One tool that I strongly recommend is org-mode in emacs. It makes taking and managing notes so much easily. But I won't recommend it to new emacs users. Since if you are already busy, learning emacs may be too harsh.
To give you an concrete example, here are the some titles for a server's daylog. Daylog details and confidential information is removed.
- daylog of xxx
- 2016-06-18 mount / with noatime,nodiratime
- 2016-06-06 salt-minion has upgraded to 2016.3
- 2016-06-03 DNS change: xxx A record no longer use cloudflare SSL/CDN.
- 2016-05-17 config mail server on xxx.
- 2016-05-05 move xxx websites from xxx to xxx.
- 2016-04-18 move apache2 to localhost:2080. make smokeping work after this change.
- 2016-04-18 use ntpdate instead of ntp service.
- 2016-04-18 config backup to xxx.