It works okay-ish, but it's a bit arduous, and the tracking isn't great: I can find out what I was doing on a given date, but that's not particularly useful information.
What systems does HN use? I'm sure my system can be improved tenfold, I'm open to any suggestions.
I'll also reorganize and reorder the todo list as priorities change. I indent sub todos under their logical parent task.
Sometimes I'll break whole sections of todos out into a smaller %task_name%.todo file when they're no longer critical and can be somehow grouped together.
But when people ask me, "Describe a bug you recently solved" I can't remember. So maybe I could have a "greatest hits" file and copy some of those todos into there.
Sometimes I also put the todos into GitHub issues, either as separate issues, or as check lists in a single issue.
And sometimes for multiple projects and tasks across work, life, etc, I'll make a todo list in my Gmail, then leave it at the top of my inbox, and reply with DONE %todo desc% when I complete one.
I guess another idea I came up with now is have a master todo repo, that only contains todo lists, and can organize them by project, etc. Then all todos and dones are in one place and in a github repo. But I need email as well sometimes. Meh...;P ;) xx
I do the same for building in public - changelog on my website, and a super long twitter thread (https://twitter.com/RozenMD/status/1364881512500404224?s=20 for example)
Every morning I write a list of 5 things I want to accomplish in an index card. Any appointments I have are also written down. This allows me to easily figure out what I need to and what I have to do.
5 is a good number of tasks for me as long as some tasks take 30 minutes or less. This is not only work tasks, but life tasks as well, it's kind of what I feel I need to accomplish today.
Then I have a day.md file open for work. I prefer markdown because it's easy to render anywhere, email, wiki pages, gitlab etc. My day.md is a single file that expands for a year. Each year I start a new one.
day.md has all my meeting notes and all work projects worked on. The reason why I prefer an electronic document for this is speed. It's fast to write things in, it's a single place so I don't have to figure out where I put my notes or whatever. Most importantly being a file I can search for things, re-arrange projects, current project being worked on is always on top.
This helps with my planning as well. I feel that a lot of times as a dev we tend to get overwhelmed with all the things we have to do to solve a project. So I break things down, usually it starts abstract and as I get a better understanding it becomes more in depth.
My index card gets ripped up at the end of the day. It makes me feel good for completing all the tasks on it. :)
That being said - do you not find the duplication of tasks from the index card to day.md to be annoying/unnecessary? I know if I was rewriting the tasks from the index card to the .md file every day I'd get irritated and eventually just resort to the .md file, but maybe I need to learn to be a little more patient :)
For a real example, my index card says "Abstraction Tweaks".
My day.md looks like this:
# <story-id> - SPIKE: Investigate the best way to abstract common Jenkinsfiles
* Look at current Jenkinsfile types
* Identify commonalities
* If workflows had to change, what would that look like in a code change
* Write a less abstract version, how does that change future code change approach and readability
* Test
* Write a more abstract version, how does that change future code change approach and readability
* Test
* How easy is it to read current code vs your new abstraction
So my index card is more like a pointer to the day.md story I am working on. Right now, perhaps it's obvious, I just started working this story. My breakdown of the work to be done is rather generic. As I start working on the first part "Look at current Jenkinsfile types", I will see the types, and then update that section with the different types as a note. This help me downstream when I am ready to make changes, I can make sure my abstractions in this case would work for all cases.Here is an example of a done task, including my thoughts, verbatim from my day.md. It's the worst case scenario when I get stuck. By convention, "" means action, ">" means thought. Markdown renders it nicely.
* DONE Test `withEnv` removal - it fails
* If it breaks move it into the rhel7-gradle Dockerfile
* Test change - it fails
* Test w/o gradle opts - success
* Test w/o gradle user home - failure
* Test w/o gradle home - success
> how is this possible? Empty gradle user home or defined works, removing it fails...
* Test no GRADLE_USER_HOME in Dockerfile ENV withEnv GRADLE_USER_HOME= - success
* Test no GRADLE_USER_HOME in Dockerfile ENV no withEnv GRADLE_USER_HOME= - failure
* Test GRADLE_USER_HOME in Dockerfile ENV no withEnv GRADLE_USER_HOME= - failure...container env points to /app/jenkins/.gradle...w/ Dockerfile ENV defined...
* Test GRADLE_USER_HOME in Dockerfile ENV withEnv GRADLE_USER_HOME= - success...container env points to /home/gradle/.gradle which matches Dockerfile
> Looks like the witEnv is shielding the ENV Dockefile definition from an override, where is it coming from?
> Still need to test withEnv only surrounding gradleWorkflow, I don't think the docker workflow needs it
* Jenkins Globals overwrite ENV variables. Removed them from test and everything worksHow do you measure accomplishments and results? Those often are different from the tasks required to achieve them.
I use Remember the Milk for keeping track of personal todos that need to be done by a specific date. When I collaborate with others, it's whatever tool fits the work and the workflow. This could mean GitHub Issues, Jira, or Trello, for example.
Otherwise, I use Bear for noting down particular achievements I consider, well, noteworthy.
* I want to be able point to past achievements and see the value I'm adding (both for personal well-being and also CV writing/interviewing)
* I want to be able to see what I've done in a day/week/month/quarter to see if I'm performing well and delivering what both I and (potentially) my manager expects.
* If asked why X hasn't been done yet, I want something concrete to point to so I can provide my reason, without fumbling around for excuses or reasons I can't remember.
Is there any reason you chose RTM specifically? I happen to use Bear for my daily notes, but I'm wondering if perhaps just a to-do tracker (Kanban, RTM, whatever) and a single achievements.md file might be better.
It still meets my requirements. I've tightly integrated it into my processes and automations (via Zapier), e.g. when it comes to automatically creating tasks for things like payment reminders for outgoing invoices.
Same! In addition, twice a month I go through the daily logs and pull out highlights of accomplishments. Those "highlights" I use to write my self-evaluation during my performance review (to list what I accomplished since the last review).
Anyway, love the highlights idea, think I'll be pinching that!
Outside of that, I have no need for a permanent list of my "done" items. I'm not saying it is a bad idea, I'm just not sure what goal is behind it. I'm genuinely curious why one would keep such a thing?
RE: keeping the DONE list, for me it's not about knowing exactly what I did at 11am on date XX/YY, but it's more about proving both to myself and the company (if asked) what I've provided/achieved, and to hopefully be able to better understand my rate of work (this one is still a WIP - I haven't done any analysis yet and doubt I ever will, but it's nice to know I could!)
<shameless plug> I then use https://sharetheboard.com to share my handwritten notes online (in real time), when needed.
The key, for me, is having something deliberately physical to counterbalance the laptop. The other key characteristic is temporariness - the ability to toss the paper or wipe the board.
*Mental shift*:
1. I shifted from deterministic to probabilistic. Being deterministic meant I had to do these tasks. If I didn't, I felt bad about it. Being probabilistic meant that there is a high chance that I would do these tasks but if I didn't that's okay. Probability doesn't account for outliers.
2. I started using my tool as more of a *reminder* as compared to a *guide*. My world is too chaotic sometimes, as I have to attend online zoom meetings, solve bugs and guide junior developers etc. My priorities would change from morning till evening. So, I decided not let a rigid framework control me but let the tool remind me that hey there is a task you jotted down to work on - do you have time to work on it?. I also realized that some tasks dry up or become irrelevant with time as universe take care of themselves.
3. I started planning my weeks before my days. I realized that at a macro level, I can't control my day but I can control my week. So, I make a priority list of what to be achieved at end of this week(abstract goals). Each week is a different page or note in my tool. I do reflective thinking after week end as on what I was able to achieve, what new things came on my plate, what came in between etc. This helped me in marking down my accomplishments.
4. I plan on day level as well but I don't keep admiring my tracker. I realized that after thinking through what tasks need to be done in the morning after looking at my tool planner, I can continue working on them. I mark ticks at the end of day.
5. I jot down bugs solved or programming or business wisdom achieved in the entire day in my notes as well. This helps me to recall easily in case someone asked me - what did you do on that day or week.
*Framework*:
1. After a lot of trial and error, I ended up with a modified version of Eisenhower matrix. It generally consists of four quadrants:
- Urgent and Important
- Urgent but not Important
- Not Urgent but Important
- Not Urgent Not Important
2. However, I ended up modifying it. I replaced word Important with impactful and added subcategories of simple, medium and hard under each quadrant as follows: - Urgent and Impactful
- Simple
- Medium
- Hard
3. I keep different todo list for different projects and assign priority to projects. I ask myself the following: If someone put a gun on my head and ask me to choose one project priority-wise which one would I choose. Then, choose the second project and on. Of course, I prioritize Urgent and Impactful ones across all projects.*Choice of tool*:
1. I used google calendar, keep, one note etc. Now, I have finally settled on Evernote. Sometimes, I get urges to switch to Notion or Trello as well but Evernote is working for me now.
PS: I derive a lot of inspiration from *My Effectiveness* app. You can have a look at it as well: <https://play.google.com/store/apps/details?id=com.andtek.sev...>