My Current Productivity System

Feb 23, 2017 18:45 · 762 words · 4 minutes read productivity snippet

I’m a bit of a productivity junky. I can spend hours looking for the best way to handle the day-to-day requests for information that I get. It’s a strong method of procrastination for me.

Thankfully, I’ve been building up a new system over the last month. It’s working out very well and, with any luck, should be the end of my search.

What’s Important

I don’t actually need my system to do much. Most of it is doing or delegating tasks, keeping notes for ongoing projects, and reminding me about stuff I’ve done.

I need to:

  • take notes
  • do and/or delegate tasks
  • track projects
  • quickly remember what I was doing on a certain day
  • quickly remember what happened to a certain system during the day
  • reminded myself of recurring events

A lot of this information is kept in JIRA or confluence. For the things that aren’t I need a decent system.

Stuff I’ve Used in the Past

I used to use evernote quite extensively, but I stopped after they started playing around with the account plans. It suddenly wasn’t really worth it to me.

From there I went to oneNote. I had used this a bunch when I had windows machines and I thought it might do the trick. Unfortunately, the mac version of oneNote was disappointing compared to the windows one.

And so…

Plain Text

Sometimes I have a blind spot regarding technology I use everyday. I use a UNIX-like shell every day during development and administration. I am constantly using chainable tools suck as sed, awk, vim, less, etc. to manipulate text files on a number of systems. I’ve been moving all of my productivity bits to plain text.

I should have done this years ago.

Tools

Tasks

For my tasks, I use todo.txt. It’s crazy simple and it works with the stripped down GTD I use. I’ve pared down the number of projects I currently have in the system, but it handles contexts the way I want them handled. I use the priority flags as well:

  • A: currently doing (in case I get called away)
  • B: to do today
  • C: to do this week

I pretty much ignore all of the other priorities. I also use @waiting as a context for filtering.

Reminders

I’m currently using remind to keep my recurring tasks in check. All of my other time based things are in google right now, so I’m not too sure if I’m going to continue using this.

I’m not a big fan of the syntax, but it’s definitely effective.

Notes

For note taking, I just use the native file system. It’s easily searchable and I can handle modification with the tools I’m already familiar with.

I generally format everything in markdown so I can pretty print them later if I need to. If I want tags, then I can just add a line like tags: foo, bar, qux somewhere in the file.

Journal

I’ve decided to model my day-to-day journal after a log file. For my purposes, I need it to let me know exactly what I was doing at a certain point in time. Was I building out a system, responding to an alert, or doing some administrative task? If this information can’t be found in git or JIRA, then this answers those questions for me.

I’m shocked that I haven’t been using this format for years. It’s simple and effective, and it’s paid for itself a number of times in the last month:

#!/bin/bash

# Appends a log line to a given file
# 
# > ./journal.txt this is a journal idea
# > cat $HOME/journal.txt
# > 2017-01-09 Mon: this is a journal idea

DATE=`date +"%Y-%m-%d %a"`
FILE=$HOME/journal.txt

echo "$DATE: $@" >> $FILE

I’ve aliased it to j

$ j completed foo reports

Storage

For storing all of my text files I’m using a personal ownCloud, although this could easily be something like dropbox. This makes it easy to set up syncing between devices and platforms. It rely on my platform backups (Time Machine etc.) for the rest.

Display

I’ve added a desktop display for stuff that’s important throughout the day. I’ll post more about that later.

Conclusion

Honestly, given the number of times that I’ve asked people to use plain text for configuration, I’m surprised that I haven’t been doing this for longer. It handles everything I can throw at it and it fits into my developers mindset exceedingly well.

If you try this (or if you already work this way), let me know. I’d love to hear more about how other people work.