26 June 2016

Create a realistic plan for the day from Things and Calendar (OS X/macOS)

For the past few years, I've been trying to use the Getting Things Done philosophy with Cultured Code's application Things to manage my tasks and todos.

My two biggest problems preventing success have been (1) Maintaining an Inbox Zero philosophy, where at least daily, I get my Inbox to zero, by deleting messages, doing a very quick reply, or immediately creating a task for a message that requires more than 2–5 minutes to take care of, and (2) being realistic about the number of tasks that I can possibly say yes to and have the time to actually do.

Sometimes, I can maintain Inbox Zero for six or eight months.  Other times, I get way behind on Inbox Zero and need to resort to an Inbox DMZ to reset the obligations that I have. Usually the thrill of an empty inbox at that point will let me get out of DMZ in a few weeks.  Maybe someday I'll write about how this happens to me and how I break the cycle (at least so I can read this post again later), but at this moment, I'm almost out of Inbox/Email Hell.  So my big problem lately is the second one.

When I was a graduate student, or just starting out as a professor, I was so thrilled that someone was asking little ol' me to be on a committee, help them with a problem in my field ("Can you transcribe this medieval song?"), or, big honor, fly out and give a talk at their school.  I am still honored to be asked, but fortunately or unfortunately, at this point in my career, I'm asked to do far too many things that I could possibly do.

One of the hardest parts about saying "no," is that I have always been far too much of an optimist about how long a particular task will take.  Sure, it'd just take twenty minutes to write that recommendation letter, IF I were in the right mental state, not distracted, had all my ducks in a row, etc.  Realistically, I've never gotten one done in under an hour, and three hours is more usual.  An article review? I need to learn that I write far too many notes to the author, duplicate too much of the research, order sources from ILL, etc., and so eight hours is a realistic timeline for me for a twenty-page review.

I've figured that I have about sixty hours of work in me per week (not just academic work but also counting certain stressful obligations, such as being a trustee, dealing with a plumber, etc. that I don't consider fun time). Of those sixty hours, I know that recurring obligations such as teaching and advising will take up about 30 hours a week most of the year.  This leaves about 30 hours per week (1500 hours per year) to do everything else I've either agreed to do, or need to do to continue to develop as a professor (researching and writing articles and books, developing music analysis software, etc.).  Twenty letters of recommendation and ten article reviews per year eats up 10% of that time.  Joining a board is probably 50 hours a year.  Etc. etc.  Adding it all up and it's easy to see why the years when I say "No" often, I can write, say, two chapters and three articles, and those that I don't, I'm lucky to get a single article out.

(And then there's the damage I do to others when I say "Yes, sure!" and then end up stretching or breaking deadlines or needing to cancel later; this is the worst of all possible options.)

I've been trying to find tools to help me manage this time better, but there's nothing I could find, so I finally took four of those 1500 hours and wrote a script to help me.  (Maybe I'll get half those hours back since I did learn a new skill of Javascript for Automation).  

Each day I try to create a realistic plan for the day during a morning review.  It always begins with Inbox zero as a task.  (Since 2012, I've tried to make every task begin with an action verb. "Inbox zero" has somehow remained as an exception, since I always know what to do about it).  Each task usually has two tags attached to it, a location tag ("@Any" is the most common.  "@Home", "@MIT" also appear), and a time tag ("5 min," "15 min", "1 hr", etc.).  When I've organized the ToDos in a good order for the day, and adjusted the times to what I think are realistic, I run the thingsToCal.scpt which puts all the todos on the calendar, making sure that they don't interfere with any events already in the calendar.   The results are below:



I can now see that, hmm... given that it's my turn to cook, I'm going to need to be willing to work until around 9:30 if I'm going to get all these things done; for a weekday, that's fine.  For Sunday night, I think I'd rather not.  Something (probably that "Get an Outline" for Tuesday's talk event) will need to go till to tomorrow.  (And that was before I added an hour-long "Blog about this system" todo).  After rearranging, etc., I rerun the script and the events for the day get removed and readded in the new order.

I'm hoping that this system works well.  If you are geeky and want to try it out, the code is at this link. It runs only with Things (if Time tags are set up properly) and OS X/macOS Calendar (with a calendar called Things) and you'll need to use it at your own risk (Sorry if something gets screwed up in your calendar), hence I'm not providing installation instructions beyond this link. But if I can get it to run faster (currently, figuring out my existing schedule on Calendar takes 20-30 seconds) and perhaps to work with next items beyond today (and maybe preserving non-working hours, etc.) then I'll make it a nicer script.

Wish me luck! Especially if you've been waiting on a reply or for me to do something for you.