One file to rule them all

My productivity app for the past 12 years has been a single .txt file

By Jeff Huang on 2020-01-31

The biggest transition for me when I started college was learning to get organized. There was a point when I couldn't just remember everything in my head. And having to constantly keep track of things was distracting me from whatever task I was doing at the moment.

So I tried various forms of todo lists, task trackers, and productivity apps. They were all discouraging because the things to do kept getting longer, and there were too many interrelated things like past meeting notes, calendar appointments, idea lists, and lab notebooks, which were all on different systems.

I gave up and started just tracking in a single text file and have been using it as my main productivity system for 12 years now. It is so essential to my work now, and has surprisingly scaled with a growing set of responsibilities, that I wanted to share this system. It's been my secret weapon.

Prerequisite: A calendar. The one outside tool I use is an online calendar, and I put everything on this calendar, even things that aren't actually for a fixed time like "make a coffee table at the workshop" or "figure out how to recruit new PhD students" — I'll schedule them on a date when I want to think about it. That way all my future plans and schedule are together, and not a bunch of lists I have to keep track of.

Making the Daily List: Every night before I go to bed, I take all the items on my calendar for the next day and append it to the end of the text file as a daily todo list, so I know exactly what I'm doing when I wake up. This list contains scheduled tasks (2pm meeting with Madonna, 4pm office hours), errands (sign a form, return a book), and work items (review a paper, prepare a presentation). It also lets me think about whether I've got the right amount of work for a day.

Anything I don't want to do tomorrow, I'll shuffle back into my calendar on later dates. After 12 years of doing this, I've gotten pretty good at estimating what I can finish in a day. Here's an example with names replaced so you can see what it looks like when I move a day's schedule from my calendar.

2017-11-31 11:00am meet with Head TAs - where are things at with inviting portfolio reviewers? 11:30am meet with student Enya (interested in research) review and release A/B Testing assignment grading 12pm HCI group meeting - vote for lab snacks send reminders for CHI external reviewers read Sketchy draft Zelda pick up eye tracker - have her sign for it update biosketch for Co-PI 3:15pm join call with Umbrella Corp and industry partnership staff 3:45pm advising meet with Oprah 4pm Rihanna talk (368 CIT) 5pm 1:1 with Beyonce #phdadvisee 6pm faculty interview dinner with Madonna

As a Record: That daily todo list is where I also take notes, so it's a to do list that turns into a what done list. The best thing about these daily lists is I keep them all in a single text file separated by dates, so I have a record of everything I have ever done and when I did it.

My current file was created almost 7 years ago when I started my current job. It serves as a research notebook, and as meeting minutes. I have 37,773 handwritten lines in one file now, documenting everything I have done as a professor, and nearly every person I have met with, along with notes about what we discussed or ideas I had. Here's what my list looks like at the end of the day, representing work accomplished.

2017-11-31 11:00am meet with Head TAs - where are things at with inviting portfolio reviewers? A: got 7/29 replies - need 3 TAs for Thursday lab - Redesign assignment handout will be done by Monday, ship Thursday 11:30am meet with student Enya (interested in research) - they're a little inexperienced, suggested applying next year review and release A/B Testing assignment grading 12pm HCI group meeting - automatically generate thumbnails from zoom behavior on web pages - #idea subliminal audio that leads you to dream about websites - Eminem presenting Nov 24 - vote for lab snacks. A: popcorn and seaweed thing got unofficial notification ARO YIP funding award #annual #cv read Sketchy paper draft - needs 1 more revision - send to Gandalf to look at? Zelda pick up eye tracker - have her sign for it update biosketch for Co-PI unexpected drop in from Coolio! #alumni - now a PM working on TravelAdvisor, thinking about applying to grad school 3:15pm join call with Umbrella Corp and industry partnership staff - they want to hire 20 data science + SWE interns (year 3), 4 alums there as SWE 3:45pm advising meet with Oprah - enjoyed CS 33 - interning at Facebook 4pm Rihanna talk (368 CIT) 5pm 1:1 with Beyonce #phdadvisee - stuck on random graph generating crash - monitor memory/swap/disk? - ask Mario to help? - got internship at MSR with Cher - start May 15 or 22 - will send me study design outline before next meeting - interviewing Spartacus as potential RA for next semester 6pm faculty interview dinner with Madonna (Gracie's) - ask about connection with computer vision - cool visual+audio unsupervised comparison, thoughtful about missing data, would work with ugrads (?), likes biking, teach compvis + graphics - vote #HIRE #note maybe visit Monsters University next spring, Bono does related work

Shortcuts and Features: I use a consistent writing style so things are easily searchable, with a few shorthands. When I search for "meet with", it shows that I have had over 3,000 scheduled meetings. I have some tags like #idea for new ideas to revisit when I want project ideas, #annual for things to put on my next annual report, #nextui for things to add the next time I run my next UI course.

A text file is incredibly flexible, and at any point, I can quickly glance to see what I've done that day and what's left. When a task is completed, which is the most common default, I just leave it. I can calculate aggregate statistics using the search box, or list all the lines containing a tag, and other operations using my text editor. I use Ultraedit because I'm familiar with it, but I imagine any text editor would have similar capabilities.

Email: Email is obviously a part of my workflow. Everyone has all sorts of productivity advice about handling it, but I find a simple flagging system is sufficient — flag Red if it's something I need to deal with, flag Orange if I need to deal with it eventually but requires some thinking or someone else to handle it, and flag Yellow for emails I send that I am waiting on a reply for, so I know to follow up later. I'll flag emails as they come in, whenever it's convenient.

At the end of the day, I'll do a quick review of the Orange and Yellows to see if any need to be followed up or should become Red. Some peoples' workflows revolve around obsessively cleaning their Inbox. I don't really care about keeping my inbox empty because then I feel like I have new work to do whenever email comes in.

So my daily routine looks like

  1. look at the daily todo list I wrote last night to find out what I'm doing today
  2. do scheduled things on that list during the day
  3. when I have free (unscheduled) time, do the floating tasks on my list and work on Red-flagged emails
  4. at the end of the day
  5. do a quick review of Orange/Yellow emails to see if they need any handling
  6. copy the next day's calendar items to the bottom of the text file

This process has a few nice properties:

My daily workload is completely under my control the night before; whenever I feel overwhelmed with my long-term commitments, I reduce it by aggressively unflagging emails, removing items from my calendar that I am no longer excited about doing, and reducing how much work I assign myself in the future.

It does mean sometimes I miss some questions or don't pursue an interesting research question, but helps me maintain a manageable workload.

So that's it. I would love to hear from you if you try my system, or have some ideas about it!