One of the recurring themes in my quest to be organized is that of todo list staleness. Inevitably, the cycle looks like this:
I sit down, and in a burst of creative energy I create a beautifully crafted, perfectly organized todo list. It’s a thing to behold. Everything is broken down into nice orderly projects, each with a clearly identified next action. There are contexts assigned to everything: this one is an errand, this one needs to be done online, this one needs to be done in the kitchen. It is, without a doubt, the epitome of organization. And this time, it’s going to stick. I’m going to review it daily, weekly, monthly to make sure that everything is current. This todo list will give me productivity superpowers.
This generally lasts less than a week.
Fairly quickly, I stop reviewing the todo list. For reasons unknown, I’ve never been able to develop the habit of reviewing my lists on a daily basis. Once I stop reviewing the list, I stop putting things into it consistently. Often, I will write them down on paper (or in a text file, or perhaps in Evernote), and then do them without ever entering them into whatever tool I’m using. Once this happens, I end up using the simpler tool as my whole todo list. I stop organizing things in projects, I just write things down, and then do them.
The next stop on this train is that I stop reviewing things weekly. This inevitably creates a bit of anxiety. I know that there are things in there that I should be doing, but I’m not. I’m focused on the things on my little todo list. It’s a paradox, because on the one hand I feel productive checking things off of my little list. On the other hand, I know that this means I’m not making the best use of my time. It means that my todo list is skewed towards the most recent things that I’ve put on it, rather than things on the larger list that might have more strategic value. To borrow a phrase from Stephen Covey, it’s the urgent, not the important.
In the end, the list atrophies. It’s not updated anymore, and starts to resemble a decaying building that’s been left to sit for decades. It’s a mix of things that have already been completed but never checked off, projects that are long-past relavant but still sitting on the list, and poorly worded tasks, the context of which have long been forgotten. It’s Exhibit A in the argument for the Broken Windows Theory. I could go through and get everything up to date again, but I don’t. Mostly, I suspect, it’s just too overwhelming. There’s lots of stuff there and my eyes just glaze over when I look at it.
Inevitably, in a fit of productive frustration, the cycle begins again. Sometimes it’s a restart with the same tool, purging the old and busted, and replacing it with the new hotness. Quite frequently, however, it’s with a new tool altogether (I think I’m on my sixth or seventh system by now).
In the most recent cycle, I switched tools again. This time from Evernote (which is an awesome notetaking tool, but a very poor todo list manager, at least for people with more than a handful of things going on) to Omnifocus. I’ve watched Omnifocus for years and always viewed it with quite a bit of interest. I’m a GTD advocate (even if I frequently fall off the wagon) and it was designed from the ground up to work well with GTD. It’s got great mobile apps, and a top notch desktop experience as well. The reason I hadn’t used it before now is that I spend a good portion of my day using Windows. Not by choice, mind you, but it pays the bills. Without a solid cross platform experience, I didn’t really think I could be productive. But now that I work from home, and have easy and constant access to not only my iOS devices, but my Mac as well, it becomes a little more practical. So I plunked down my cash on the counter and bought into the entire ecosystem.
So far, Omnifocus has been great. But predictably, there are signs of the cycle repeating. I’ve gone days or weeks without even looking at it. I’ve got a small, hand-written list on an index card (the amazing Frictionless Capture Cards). There are things in Omnifocus that are certainly out of date, and there are projects that I’m working on that aren’t in there at all. The first window is shattered.
There’s hope though. Omnifocus has one thing that I have yet to see anywhere else, which is a review mode. It exists in the desktop app, but it really shines in the iPad application. It works like this: you tap Review, and Omnifocus takes you through every single project in your list, and presents it to you one at a time. You can look it over, check things off that have been completed, and add things that might be needed. Then you mark it as reviewed, and Omnifocus gives you the next item. It’s brilliant. You only see one project at a time, so it’s much less overwhelming (at least to me). Once I’m done with the review, everything is current and I feel much more relaxed. It doesn’t matter how long it’s been since the last review, in less than an hour I can be completely current.
So after decades of using tools that never stuck for long, I feel like I’ve finally found the one that works the way my brain does. And while it’s not perfect, it suits me well.
The cycle is broken (for now).
I am a huge fan of coffee and over the years I have tried a lot of
different means of preparing it. I currently own a french press, a drip
maker, and a stovetop espresso pot. All of these make good coffee, with
each having its own set of pros and cons. Last year, however, I
discovered the best method for brewing coffee:
Aeropress.
It makes delicious coffee, takes up almost no space in your kitchen, and
cleanup is easy.
The Aeropress works kind of like an espresso maker, though at a much
lower pressure. The coffee it produces is espresso strength. This means
you can drink it like an espresso or use it to create espresso-based
drinks like Cafe Au Lait or Capuccino. I add hot water to mine to make
an Americano.
Since getting the Aeropress, it’s been the only method I’ve used to brew
coffee. It’s replaced the drip machine in our kitchen. It takes up
almost no space, travels well, and produces consistently great coffee.
Perhaps the greatest feature is the one I haven’t mentioned yet: price.
It will set you back a little more than $20, much lower than a decent
home espresso machine or even a drip coffee maker. It’s great for
traveling or camping. Any place you can make hot water, you can make
coffee with the Aeropress.
One caveat: you will need a coffee grinder, or a place to buy beans that
will grind them for you. Coffee ground for a drip coffee maker won’t
work (which rules out pretty much all pre-ground coffee you would get at
the store). You need grounds that are somewhere between espresso and
drip. You’re really going to want a conical burr grinder, similar to
this one: I suspect if you’ve read this far than you either have one or
are willing to buy one.
In summary: If you enjoy great coffee, you need an
Aeropress.
To get an even better idea of how it works, check out this short video:
Like Marco Arment I’m
not qualified to eulogize Steve Jobs, but I owe a lot to him so I need
to say something.
My first computer was an Apple //c. 1985. I spent a lot of time on that
computer. A lot. Probably an unhealthy amount.
I was a nerdy kid to begin with, and I instantly fell in love with it. I
spent endless hours on that computer. Playing games, writing programs in
BASIC, and generally just exploring the new world that it opened up for
me. Those hours spent in front of the computer paid off. I went on,
years later, to write code professionally. It’s not an exaggeration to
say that owning that Apple //c shaped who I became.
I’ve admired Steve Jobs since I was old enough to know who he was. When
he founded NEXT, I desperately wanted one of those beautiful (and
expensive) systems. I’ve seen every movie Pixar has put out. I’ve been
inspired by his business sense, his design savvy, and his drive. He’s
accomplished more in his abbreviated lifetime than most people could
accomplish in ten. His Stanford commencement
speech
stands as one of the most inspiring things I’ve heard.
My latest computer is a MacBook Air. I spend a lot of time on that
computer. A lot. Probably an unhealthy amount.
Godspeed, Steve Jobs.
When budgets get tight, it can be difficult to provide adequate training
for your staff. Over the last couple of years, I’ve found some ways to
provide some training even in the face of a shrinking (or non-existent)
budget.
Regional conferences
If you still have some budget, but maybe just not as much as you are
accustomed to, look to smaller regional conferences as an alternative to
the larger national ones that are in major cities. If you’re fortunate
enough to live in a city where a conference is being held, you might get
out of having to pay for travel at all. This past year, the excellent
No Fluff Just Stuff
conference made a stop in our town, and I was able to send two
developers plus myself to it for a fraction of what it would have cost
to send them away somewhere and pay airfare and hotel on top of the
conference cost. I personally attended the Windy City
Rails conference this year which was a
single day for only $150. While the smaller conferences may not have
all the speakers you would get at a larger one, I’ve been really
surprised at the quality of the speakers that these conferences draw.
Books
My team has done this for the past year or so. I buy a copy of a book
for each person, and we meet once a week to discuss a chapter at a time.
Have people take turns leading the discussion. My experience has been
that these are most productive if you tackle a topic that your team
agrees is currently a pain point, as they can take the information they
learn and apply it to their current project. We’ve read through The
Pragmatic
Programmer,
Pragmatic Unit Testingin
Java,
and are going to move on to Don’t Make Me
Think
next.
Hashrocket has actually taken this a step further and broadcast these
live.
Videos
It’s become commonplace for conferences to record their talks and make
them available online for free. Additionally, a number of larger user
groups do the same. There are a nearly endless number of videos on a
wide variety of topics that are available online. Pick a video (maybe
two if they’re short), watch it as a group, and then discuss it
afterwards.
Here are a few sources I like:
Peer to Peer
We’ve done this even before our training budget shrank. Have people take
turns presenting on a relevant topic that they are passionate about.
This works well on a few levels: those listening get to expand their
knowledge, and those presenting will often develop a deeper
understanding of their topic. If a presentation is used, post it
somewhere so that people who join the company later can benefit.
So what have I missed? What do you do to keep your skills current when
you can’t get money for training?
In my time as a developer, and now managing a team of developers, I have
come to realize that there are two kinds of programmers: the Journeyman
and the Craftsman. These terms aren’t mine - I’ve seen them used other
places - but they describe the developers I’ve worked with pretty well.
The Journeyman
…knows one programming language.
…knows one operating system.
…can’t be bothered to learn something on their own.
…doesn’t know anything about the operating system or hardware their
applications run on: “Someone else takes care of that”.
…never masters his tools. “I know my way around my IDE, that’s good
enough”
…doesn’t refactor: “It’s ugly, but it works. Leave it alone!”
…only learns about the part of the system they are working on. No need
to learn the rest of the system: “That’s not my job”.
…doesn’t want to take on an unfamiliar technology: “I haven’t had any
training on x”.
The Craftsman
…knows a handful of programming languages, and is always on the
lookout for the next one he should learn. He knows that learning any new
language will stretch his mind and make him a better programmer in the
language he uses day to day.
…devotes time to learning about new technologies, and helps to make
others aware of them.
…understands the platform and operating system his applications run
on, because he knows that’s the only way to diagnose many problems.
…masters his tools. He can perform magic in his chosen editor, and is
always looking for ways to make himself more efficient.
…rarely passes up an opportunity to broaden his knowledge of the
system he is working on.
…is always willing to take on something he’s unfamiliar with. He can
pick up most things pretty easily, and enjoys the challenge of learning
something new.
One craftsman is worth three or four journeymen. Easily.
It’s the journeymen whose jobs often end up moving overseas (and
rightfully so, they add little, if any, value).
The longer I manage development projects, the more I value the craftsmen
I have around me.