Wednesday, March 27, 2019

GTD Flow

I continue to iterate on my task management strategy. This is an update to my last post.

I occasionally use written journals for my daily diary and note taking, because I like writing, and I like the size and portability of A5 notebooks. Because of my interest in notebooks, I have been intrigued by the Bullet Journal ("BuJo") method. But I have never figured out a way to integrate BuJo into my GTD flows. My main limitations are that BuJo seems to:
  1. involve artistic talent, which I lack, as all of the BuJo examples I could find have a lot of artistry, rather than a minimalist functional design;
  2. does not seem to scale well for a very large volume of tasks
  3. does not seem to scale well for a large volume of recurring tasks
I also need a system to archive physical notebooks, preferably digitally, that would also make the contents discoverable/searchable.

After experimenting extensively with GTD, Todoist, and BuJo, my current workflow is:
  • Gmail is my collection point, where I receive my action items. Following the GTD methodology, these are either discarded, archived, acted upon, snoozed, scheduled in my calendar (for events), or added to my task list. This results in a nearly constant state of Inbox Zero.
  • Google Calendar is used for events, meetings, and recurring tasks. Recurring tasks involving multiple subtasks contain the subtasks in the description. When the recurring task surfaces, the task/subtasks are placed into my todo list for processing.
  • Google Keep replicates a physical notebook. When a note is no longer relevant or needed, I archive it. For long-term portability, notes can be exported to Google Docs or exported into HTML, and from there converted into text, Word, PDF, etc.
    • I have the following labels set up in Google Keep:
    • I assign the following colors to notes:
      • Blue: Personal Notes
      • Red: Work Notes

Tuesday, March 12, 2019

Bullet Journal Flow

I continue to iterate on my task management strategy.

I have always been intrigued by the Bullet Journal ("BuJo") method. But I have never figured out a way to integrate BuJo into my GTD flows. My main limitations are that BuJo seems to:
  1. require artistic talent, which I lack, as all of the BuJo examples I could find have a lot of... artistry, rather than a minimalist functional design; 
  2. does not seem to scale well for a very large volume of tasks
  3. does not seem to scale well for a large volume of recurring tasks
At the same time that I was researching BuJo, I had been exploring a spreadsheet-based task management approach on Google Sheets (which supports desktop and mobile use). My main desire to develop that system was to migrate off of Todoist, but still have a lot of the key functionality of Todoist that kept me organized:
  • categories
  • importance indicator
  • status indicator (completed, waiting)
  • a way to easily add new tasks to the list
  • a way to handle recurring tasks: my primary issue was that I could not solve for automating recurring tasks
And I continue to use written journals for my daily diary and notetaking, because I like writing, and I like A5 notebooks. I needed a system to archive these notebooks, preferably digitally, that would also make the contents discoverable/searchable.

My highly customized BuJo workflow (with key GTD/BuJo concepts in bold) is as follows:
  • Gmail is still my primary collection point, where I receive most of my action items. Following the GTD methodology, these are either discarded, archived, acted upon, scheduled, or added to my task list, resulting in Inbox Zero.
  • Calendar is used for events, meetings, and recurring tasks. Recurring tasks involving multiple subtasks contain the subtasks in the description. When the recurring task surfaces, the task/subtasks are placed into my todo list for processing.
  • Spreadsheet task list is used as my BuJo Future Log. The spreadsheet (in Google Sheets) contains two tabs:
    • Futurelog: 
      • Four columns: Bullet, Date, Task, Collection
        • Data Validation: Bullet and Collection must be one of the types from the Setup tab. Date must be a date, formatted as "mm/dd DDD". Data validation for date enables a calendar picker on the web and mobile. Task is a free text field.
        • Conditional formatting: Bullet column turns red if "* priority" bullet is used. Entire row turns yellow for tasks dated today.
        • Filter: By default, Bullet column is filtered to hide "x completed" tasks, and Collection is filtered to hide special project tasks that are not due for a while (e.g., Christmas Shopping).
      • I have a script (code below) that runs every hour, and upon opening, to perform sorting and hiding of my task list.
    • Setup
      • Two columns: Key and Collection
        • Key: The types of bullets.
          • . task
          • x completed
          • @ waiting
          • # recurring
          • * priority
        • Collection: A list of my collections (labels or categories for projects)
  • Daily Log: My journal (a physical A5 notebook), used for keeping daily notes.
    • I use the Notebloc app to scan each page into a black and white jpg within a document for each day, and then "share" the daily document to Journey
    • Journey, by 2appstudio, is the app I use to archive my daily journals, and access them from my phone and desktop. The data is stored in Google Drive, and the app has some key features that I find critical:
      • Location tagging, so I remember where I was that day.
      • Label tagging, so I can add some key labels to record what is contained in that day's journal, to do quick searches
      • Supports both text and image entry
      • Tracking of other data like weather and mood I find interesting but not critical
      • Data portability: Exportable into DOCX and XML
      • Great apps, for Android, iPhone, web interface, ChromeOS, Mac, and PC
Futurelog Script: 

function Cleanup() {
//  Sort by date
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('B1').activate();
  spreadsheet.getActiveSheet().getFilter().sort(2, true);
//  Filter to hide completed
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  var criteria = SpreadsheetApp.newFilterCriteria()
  .setHiddenValues(['x'])
  .build();  spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
};