Automating habits

I’ve started many habits in the past, most of which didn't stick.

Exercise, eating patterns, sleep, reading - you name it, I’ve tried it.

Like most of us, I struggle with my willpower. It takes a lot for me to start a workout session if I’m tired or stressed. It's very hard to go to bed when there's a long TODO list waiting to be tackled.

But one of the big lessons I’ve learned from great writers like Tim Ferriss and Leo Babauta is that we can greatly increase the chance of creating a habit by automating some part of it.

A couple months ago I started journaling (again) using a technique called the five-minute journal. You can read about it here (Note: I don't use the physical notebook, and rely on Evernote instead).

But the one thing I did differently this time was this: I automated the creation of the daily journal entries. I used IFTTT to create a new Evernote note every day at 1am. And then I set a calendar reminder at 6am and 9pm to fill in the journal entry. This is what it looks like:

==== MORNING ====
- 3 things I'm grateful for
- 3x What would make today great?
- 2 Daily affirmations

==== EVENING ====
- 3 amazing things that happened today
- How could I have made today better?

Now, this automation might save me 5 seconds a day. Not a whole lot. But somehow, there’s a small psychological push when I see that calendar notification - I know the note was already created on my Evernote account, so I might as well take a minute to fill it in.

I’ve been more successful with this attempt at journaling than ever before. And it's being helpful at staying focused, which is very useful at this point in my career.

In software, we talk about automation constantly, at all levels of the Software Development process. But we often talk about the value in time saved, rarely in terms of the willpower energy we don’t have to spend doing something that’s automated.

A good example of this is code formatting plugins, like scalariform. If code formatting is corrected at compile time, developers don’t need to worry about the exact formatting rules the team prefers - it just happens automatically.

Another interesting example might be Trello’s card aging feature - you can configure a board to show a visual indicator of a card’s age. Cards that sit around for too long are a bad sign, specially in Agile. Instead of relying on the users’ memory and willpower to identify them, make it automatically obvious.

I love automation, and I’m realizing how powerful it can be to help those of us that struggle with the willpower to do certain things.