43 Folders

43 Folders feed subscription icon - Shiny!Time, Attention, and Creative Work. After 4 years and a lot of productivity pr0n, we’re shifting gears. Re-learn how to use 43 Folders. Then back to work. [»]

”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.

About stevecooper

 
EXPLORE 43Folders THE GOOD STUFF

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

Inbox Zero

The original 43 Folders series looking at the skills, tools, and attitude needed to empty your email inbox — and then keep it that way. Don’t miss the free video of Merlin’s Inbox Zero presentation.

Making Time

3-part series on attention management for artists and makers. Read Bad Correspondence, The Job You Think You Have, and One Clear Line.