43 Folders

Back to Work

Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.

Join us via RSS, iTunes, or at 5by5.tv.

”What’s 43 Folders?”
43Folders.com is Merlin Mann’s website about finding the time and attention to do your best creative work.

Programmers; are you using tools to program yourself?

Hi, All. I've been thinking a little about programming and productivity. Not in terms of me writing programs for my PC, but how much writing todo lists feel like writing programs for myself.

So let me break the idea into bits and see if you like any of them. I apologise to non-programmers for the syntax of what I'm about to write.

A simple todo list is like a straight procedural program;

SimpleToDo()
{
WalkTheDog();
PolishTheCat();
LookBusy();
LearnSwahili();
}

Projects are like function calls;

LearnSwahili()
{
/* Next actions in LearnSwahili Project */
GetBooks();
FindNativeSpeaker();
GiveUp();
}

Contexts are like conditionals;

switch(context)
{
case @HOME:
TidyTheSockDrawer();
case @WORK:
WasteTimeOnForums();
case @TOWN;
WasteMoneyOnCrap();
}

And maintenance tasks fall naturally into loops;

foreach(day in week)
{
TakeShower();
EatBreakfast();
ReadBlogs();
}

Interruptions and calendar items feel akin to event-based programming

Monday_3pm()
{
GoToMeeting();
}

Phone_OnRing()
{
PickUpPhone();
}

Lastly, methods like GTD provide a Main() function

GtdMain()
{
Collect();
foreach(item in inbox)
{
if (actionable)
{
DecideNextAction();
Do(item);
Delegate(item);
Defer(item);
}
}
}
... etc

So that's how I see things linking up. I realise it seems a little 'cute', but I think there's something lurking in it I'd like to explore. Something I am actually exploring.

I'm hitting on the idea of a compiler for productivity. It takes a source file, checks it for logical consistency and conflicts, and returns you a set of sequential instructions, just like a normal compiler.

Right now I have a format for GTD projects, actions, and contexts, and day-level calendar entries, the compiler for it, and a transform engine which outputs XML, Word documents, etc. I've yet to integrate in interruptions or 'main functions' like the GTD workflow, though.

I see several advantages of a system like this;

* WHAT NOW? The problem of figuring out what you should be doing right now, from your huge list of tasks, is decided for you by the source code and the logic of the program. You should never be uncertain what you should be doing right now. It makes procrastinating much harder, because you have a clear answer.
* CHECKING: It can do a significant amount of validation and calculation, making sure you're never double-booked, suggesting how long it should take you to get everything done, etc.
* AUTOMATING: The output can be used to feed other programs or processes. For example, it could feed reminders into an alarm app.

OK, that's a long post. For all you programmers out there, how much would you like to use your coding skills to get your life in order? Are there any fundamental flaws in the idea?

Any thoughts appreciated,

Steve.

stevecooper's picture

If you want to send...

If you want to send me your email address via , I'll get you a version to play with in a little bit.

 
EXPLORE 43Folders THE GOOD STUFF

Popular
Today

Popular
Classics

An Oblique Strategy:
Honor thy error as a hidden intention


STAY IN THE LOOP:

Subscribe with Google Reader

Subscribe on Netvibes

Add to Technorati Favorites

Subscribe on Pageflakes

Add RSS feed

The Podcast Feed

Cranking

Merlin used to crank. He’s not cranking any more.

This is an essay about family, priorities, and Shakey’s Pizza, and it’s probably the best thing he’s written. »

Scared Shitless

Merlin’s scared. You’re scared. Everybody is scared.

This is the video of Merlin’s keynote at Webstock 2011. The one where he cried. You should watch it. »