Getting back to Getting Things Done

Getting Things Done (GTD) is one of those things I keep meaning to get back into but never really get around to. I used it for a couple of years when I was studying at university and it was a huge help. I never reached the "mind like water" level, but it helped me keep track of most of what was going on.

Lately I've been feeling a little too disorganized. There's a growing mountain of things I wanted to do and haven't, there are incomplete projects lying around and I've missed deadlines.

It's time to get things done.

A little bit about GTD

GTD centers around three important things:

  1. A well-defined process for handling incoming tasks
  2. A trusted system for organizing them
  3. A regular review for maintaining things

Sounds reasonable when it's written down, but what does it actually mean in the real world?

My daily routine

During a regular day I usually end up with one or more of the following:

  • Support tickets from clients. Some urgent, some not-so-urgent.
  • Chat messages asking for more immediate issues. Or just to ask questions.
  • Meeting requests.
  • Regular mail (usually bills).
  • Emails asking questions, requesting estimates, giving feedback or any other number of things.
  • Social messages (think "any plans for the weekend?")

And this list doesn't even include those random "oh yeah, I need to get X done" or "I really should fix that" thoughts that crop up during the day.

GTD calls these open loops.

If I let all of these pull me as soon as they come in, nothing gets done. But I also can't remember everything. A big source of stress for me is having to remind myself of what I should be doing and what important things I can't forget.

This is where the well-defined process and trusted system come in.

Without a process to sort things into the correct buckets, everything ends up going straight on the "must do now" pile. Without a system of organization that I know I'll use, I'll constantly worry about forgetting to do things.

Getting started

GTD breaks down into three stages:

  1. Capturing – getting things out of the brain and into a system.
  2. Processing – deciding on what to do with every single open loop.
  3. Reviewing – looking over everything tracked in the system and making sure nothing is left out.

The initial round can be extremely time consuming (and a little intimidating). Capturing every single open loop, processing them and storing them in the appropriate places takes time and patience.

It gets easier with experience.

I'm under no illusions that GTD is a perfect system or that it will solve every problem. I will probably never reach inbox zero or a mind like water, but even a limited implementation cuts down on some of the background noise in my mind.

This week I'm starting on the first step - capturing everything.

Posted in: GTD, Productivity | Comments (0)

Groundhog Day Resolutions - other goals for 2019

At the start of the year I set three big goals, but there are also lots of other things I'd like to achieve. I set up a goals tracker page to keep track of everything, but I expect the list to change as the year goes on. For now it's just a simple list, but in the future I'd like to add more detail to some of the more complex goals.

I don't expect to finish everything, but I'd like to at least make a dent in the list. Some of the more important ones I'd like to tackle:

Restart my GTD system
In recent years I've had more projects to track and things have slipped through the cracks. In the past GTD has helped me get a grip on things so I'd like to start using it again. I'm not looking forward to the initial collection stage, but I know it will help once I get going.
Rebuild Craft Roulette
Craft Roulette is a small project I released back in 2011. It took about a week to build and hasn't received much attention from me since then. It's never going to be hugely popular, but I'd like to clean up some rough edges and help it reach some of its potential.
Release pangolin.mod & sodaware.mod
These are two BlitzMax modules I've used for my personal projects. I'd like to properly release them with some better documentation and usage examples. This fits in with my goal of creating 4 games, as I want to release the source code along with them.
Release beeminder.el version 1.6
This is another project I created a long time that never reached its potential. I made some big improvements to it in 2018 and I'd like to finish the job in 2019. I'd really like to make viewing goals more user friendly.

Most of the other goals I have involve releasing projects I've created for personal use but haven't put online properly.

Posted in: GHD 2019 | Comments (0)

Groundhog Day Resolutions - January 2019

Not much time has passed since making my big three resolutions for 2019, but I've made some small progress.

I spent most of first week getting organized. I created a new Beeminder goal for tracking my running and signed up for a half-marathon in October. It's hard to get motivated to run when it's cold and miserable outside, but having a firm run date has helped.

I also created the 2019 Groundhog Day resolutions hub to keep track of everything. It's still quite rough around the edges, but I'm trying to avoid being stuck waiting for everything to be perfect.

Primary goals for January

1. Run a total of 15 miles

I'm still getting back into the habit of running after the holidays. My monthly mileage will have to increase closer to October, but for now I'd just like to build a decent aerobic base.

2. Decide on my first game for #1GAM

Stretching things out over three months gives a lot more time for thinking, but I don't want to be cramming development into the last few weeks. By February 2nd I'd like to have an idea solidified, and possible a prototype or two.

3. Start planning my ebook

At the moment I have a rough outline, but I want to tidy it up and come up with a plan for actually getting it written. I also need to research publishing, promotion and a million other things.

Secondary goals for January

1. Finish the hub page

There's a few big pieces I want to get finished:

  1. Update the "half marathon" goal page to list my recent runs and my total mileage.
  2. Add some detail to the "ebook" goal page. It's too early to track words/chapters written, but I'd like to track that eventually.
  3. Add details for secondary goals. Not all of them need detailed tracking pages.

Posted in: GHD, GHD 2019 | Comments (0)

Groundhog Day Resolutions 2019

There are a lot of things I wanted to get done this year. I didn't do many of them.

It's not all doom and gloom. I released new versions of blitzmax-mode and beeminder.el, wrote some posts, built some mini-sites and had a pretty good year freelancing. But I still didn't check off as much as I wanted.

For 2019 I'll be trying Groundhog Day resolutions again. They worked pretty well in 2016, although I didn't make it through the entire year. Frequently reviewing my larger goals, and breaking them into smaller ones helped me get more done.

There are a couple of large goals I really want to get done for 2019:

  • Release four small games, one each quarter
  • Run a half marathon
  • Write a small ebook on software development

I have plenty of smaller goals I'd like to work on too. I'm still figuring out the best way to organize and track their progress on them, so that will be my goal for the start of the year.

Posted in: GHD, GHD 2019 | Comments (0)

Per-project indentation with php-mode

php-mode supports several different coding styles out of the box:

  • default
  • drupal
  • pear
  • symfony2
  • wordpress

Each coding style has its own settings for indentation. For example, the drupal style uses 2 spaces for indentation, whereas wordpress uses tabs.

By using dir-locals.el, Emacs can automatically set a coding style on a per-project basis. This is /extremely/ helpful when working on different projects that need to be formatted in a particular way.

Here’s an example of a dir-locals.el file that will enable the wordpress coding style for PHP files:

((php-mode . ((php-project-coding-style . wordpress))))

The coding style value doesn’t need to be quoted (otherwise you might see a (wrong-type-argument symbolp wordpress)) error on startup.

If flycheck and phpcs are installed, they can be configured to highlight coding style infractions:

((php-mode . ((php-project-coding-style . wordpress)
              (flycheck-phpcs-standard . "WordPress-VIP")
              (flycheck-checkers . (php-phpcs)))))

The above code will setup php-mode to use tabs, and will also highlight any code that doesn’t meet WordPress VIP standards.

Posted in: Emacs | Comments (1)