no more rambling

new rule: draw before posting

Rather than just sitting down and writing whatever comes into my head, I've started drawing my thoughts out on paper.

I figure if I can't draw a picture of what I'm trying to say, I probably don't understand it well enough to post to the internet.

If I can draw a picture, then I know what I'm going to say, and I know when to stop.

Plus I think it'll make my blog look neat.

Inspiration: Dan Roam's awesome book, The Back of the Napkin. (Be sure to watch his talk at Google.)

life in the queues

The time slicing experiment is going well.

Here's my latest version of the chart:

(graph)

I think part of the reason that I couldn't get Getting Things Done working before was that I was trying to do too much.

If I've learned anything from Eli Goldratt, it's that if you have a queue problem, the answer is probably to cut the batch size. (The "agile" equivalent is to use short iterations.)

Time slicing is the small batch size / short iteration concept applied to time management.

Now that I'm on a schedule, GTD has magically started working. My 15 minutes of planning per loop has morphed into 15 minutes of maintaining and prioritizing my next actions list. The hour of "goal" time has morphed into just working off the list.

So, I think what's going to happen is change "goals" to "actions". Then if I drop the "errands" block (because errands are just actions) and trim an hour off my sleep time (since I keep waking up early), that gives me an extra loop and an extra 45 minutes of slack.

At least in theory. It's going to be a while before I get up to that speed. All this blogging today is coming out of the "fun" and "slack" times, as are meals and my walk this morning.

What I'm expecting is that I'll as the queues drain and I get better at this, I'll start to have more slack.

The reason I'll get more slack is that I won't usually need 15 minutes of planning or 15 minutes of support, and I'll be getting enough client hours in that I can drop them from the loop later in the day.

I'm going to try to keep a more detailed time log so I can graph my actual results vs the plan.

onward

Okay. So... Planning session. 15 minutes.

Support: I'm going to try and empty the entire queue as quickly as possible, even if I'm just sending out promises to do stuff that I can't do immediately.

Client work: I need to add something to this huge messy flash file. The guy that created it isn't around anymore, and understanding it has been a stumbling block. I'm just going to build my feature as a new flash file so the client can sign off, and then I'll figure out how to integrate it with (and possibly clean up) the other guy's mess.

Goal work: I'm just going to pick actions off my next actions list and get them done. There's a whole slew of very easy, very small stuff I can work on, and I'm just going go down the list and work through it.

Okay, that's it. That actually only took 5 minutes. I'll spend the rest of my ten working on GTD-style processing and clarification of my lists. (Perhaps that'll become my standard operating procedure.)

frustration in ten minutes

I'm completely frustrated right now. I've been up since 7:30. It's almost noon now and I haven't gotten a dang thing done.

No, okay, I went for a walk.

Yesterday was great at the start and then after the second loop things fell apart and I was off track the rest of the day. I went to bed frustrated and couldn't sleep.

Around 1 or 2 am, I got up, and I went to one of my zillion to-do lists, and I started cleaning it up using the principles from Getting things Done. It helped a lot and about half an hour later, I went to bed and was calm and collected and relaxed.

I woke up at 7:30 without an alarm clock. I've been eating better the past few days, and sleeping less.

I decided I should dedicate my "goal" chunks today to keep working through the GTD process.

I also decided I'd do my planning sessions on this blog. So I started my first loop and wound up getting into this long rant about what happened yesterday and the insights I learned from my experiences.

Then in the middle of writing, my Mom called. She's been on a trip the past week and I haven't talked to her much. She was telling me a lot of stuff about the family, and it was actually a really nice conversation, but the whole time I was feeling stressed because I'd been in the middle of writing. I would have enjoyed it so much more if I'd been able to finish writing before taking the call.

I guess that's why I'm frustrated. It's not really that big of a deal.

Anyway, I gave myself ten minutes to vent and I guess I do feel better now.

I saved the longer post as a draft and I'll get back to it some other time.

I think this blog is going to just be what it's always been - a tool to help me clarify my thinking through egocentric rambling. But I also have a lot more I want to write about in a more timeless way. Something that's not a blog. I'm going to start putting those ideas up as drafts on my other sites, and start refining them over time.

Okay, my ten minutes are up. I feel a lot better. Now I'll post it to the web so you can all laugh at my neurosis.

time slicing

I'm developing a new daily checklist, and as part of that, I'm setting a goal for how to allocate my time:

Lately I tend to swap between catching up on little things, then focusing for long periods on one thing, then scrambling to catch up again. I'd like to establish some balance.

So I'm going to start time-slicing.

time-slicing isn't always bad

Yeah, I know this kind of multi-tasking is bad for big projects. I've made the same argument numerous times.

Swapping within a project delays the flow of value by making projects take much longer to complete. (Joel on Software has a nice illustration.)

However, most of my work is not project-centric, but stream-centric.

support stream

Support, for example, is a constant stream of requests to answer. It doesn't take up a huge amount of time, but the longer I wait to answer each request, the more pain and suffering it causes for both me and the customer.

client work stream

My hourly contract work is also a stream, even though I spend the time working on a project.

That is, if I agree to work around 20 hours per week, it doesn't matter where in the week I allocate that time. I could pull two ten-hour days or I could work 3 hours a day, 7 days a week. (I set my own hours, so it doesn't have to be exactly 20.)

Similarly, I don't have to do those 3 hours all at once. I can do three one-hour sessions, or four forty-five-minute sessions, or six half-hour sessions. I picked 4 by 45 because that's enough time for me to accomplish something meaningful code-wise, but still small enough to seem doable "in the moment".

As long as my client measures deadlines in weeks instead of hours, my task-swapping doesn't change anything. (In fact, my actual delays have come from not getting enough hours in per week - it's been too hard to block out 3 solid hours to sit down and work.)

goal stream

I have lots of goals:

For me, these goals are the big rocks in the jar.

They're the things I want to spend most of my time on, but in practice, I hardly work on them at all because of all the "little stuff".

No more. Structuring my time this way guarantees that I'll have at least 4 1-hour sessions to spend on my goals. One of those hours will go to my goal of getting in shape, and the others I can allocate any way I want.

the plan

My earlier attempts at setting a schedule fell victim to constant interruptions and my erratic sleep schedule.

Even if I get my sleep back under control (another item on the checklist), I'd still prefer a more flexible schedule.

So the plan is to do four quick "loops" a day.

Each loop is 2 hours, 15 minutes:

Four loops will take up 9 hours. I'm also budgeting 2 hours for errands, 3 for fun, and 8 for sleep, leaving 2 hours of slack per day.

Any time I finish something early, the extra time goes into the slack buffer, and if I'm running late, I'll use up the slack.

Rather than being a workaholic, I want to optimize for fun. Once I've accomplished all the loops and errands, any remaining slack gets converted to fun time. If for some reason I exhaust the buffer, I'll try to postpone errands before eating in to my "fun" time.

What's my idea of fun? That's a good question. I don't really know yet. Some of my goals and projects ARE fun, so that's part of it. Having a social life also falls under this category.

The loops and sleep time are meant to be atomic. They don't get chopped up, and I'll do my best to avoid any kind of outside interruption. The fun and errand times can be chopped up as needed.

So that's the plan.

I don't know for sure that any of this is going to work, but it seems doable and (more importantly) something I maintain as a lifestyle.

My LinkedIn Profile atom feed
Michal (Nov 2007)

I'm the guy that runs:
cornerhost web hosting

archive

Learning to Delegate, part 1

The Predominantly Inattentive Type

Carmine is in Jail

refactoring gtd for email

a valuable lesson about li

attention surplus disorder

two card stud

game tools: haxe and scala

almost there

failure to launch

my programming story

python fruit basket

short-term programming work needed

old years day

testcase earworm

tests and meta tests

roles vs goals

a foolish consistency

crash

grouping by timeframe

lifetime hosting offer ending soon

Test Tweaks

fifty percent

Personal Unit Tests for Year 32

Reinventing the Wheel vs Making Your Own

Invoking AutoHotkey from Python

12 Strikes : Lessons Learned from Yearly Goals

effects of going open source

an encounter with the epoch bug

cruel python

feed list quality

Brickslayer Alpha

tricentennial project

trailblazing brickslayer

best of without an e

opening up

trailblazer jeopardy

clarifications on trailblazer

trailblazer and the curse of knowledge

Reddit Out, Reader In

newfound focus

continuous testing made easy

narrative testing and alphabetized code

neurolinguistic gruntwork

little bit of a breakdown

progress report

a debate

popular demand

What python looks like naked

When you read code, imagine typing it by hand.

the lython stirs

embrace the heresy

ecdysis

damn you, haskell!

writing for real

PyPE : a python programmer's editor

baked potato bags

twenty four inches

take my turcanator, please

beware of forward chaining

i tried cocaine

rambling goal review

all about sendmail

feng shui and phantom goals

where the hell is the tape?!?

the night i became an atheist

burnout

breakfast with cron

inelegant design

Once I Built a Timesheet

three month mark

last day for donations

outsourcing the workshop, part 2

dcd hosting

training the monkey

eighty sixed

outsourcing the workshop

nice relaxing weekend

dear amazon

color my code

prototypin'

red hot pawn

opportunity cost

brickslayer

let someone else do it

systematic marketing

calculus

the turcanator

one month checkin

the view from saturday

platonic refactorings

Input Envy

The End of Secret Holds in the Senate?

askdjfladjflkajf

The Twelve Goals of Old Man Wallace

mispoken

thirty miles and some physics

the guy in back

c sharp run

clipless

Listen to me clearly now I said...

all kinds of stuff

vegging on cyberspace

freedom vs discipline

smacking my head

gabe and alex

monroe

boring journal entry

making nice with rails

another stab at blogging

quadrupal your productivity with greasemonkey

I hate Rails, I hate Nails

a bigger pond

training for consistency

always on

narrative strongbox?

identity crisis complete

learning lisp

sugar free

baby blogs

testing

short day

inner vision

blog on demand

code consolidation

timelog

life balance

elliptical

being quiet

making a list

recovering

i feel like crap

fuzzy logic

programming with outlines

sleep deprivation

three months to live

november review

cooking dinner

speak simply

and now a word from our sponsor

tempted by firefox

research and marketing

setting a date

trailblazing nodak

tree grids

control freak

display logic

use cases

virtual notecards

three little pigs

goals for the book

tinderbox

the flake effect

gimp costume, and other crap

rise of the rantelope

on not writing a novel

a lean workday

200 calorie root beer float

everything hurts

many faces, fat and skinny

hurricane wilma

the old blog returns

biking to stone mountain

doubt and faith

a story

on trust

libertarian thoughts on the election

mental leaks

time flies

comments and permalinks

voting with my feet

next action inventory cap

common ground and puppies

into the fishbowl

cleaning house

isomorphic engine

grumbling and use cases

slow motion

simple mind

work, macs, visual thinking

bug bite

working

what all be up in here

goals and issues

new wheels

planning with altos

still kickin'

Zen Master Chi

sweeping

spacevarmints.com

registration and multiple windows

palm pilots at sunrise

walk the earth

LETSBank!

sea level retraction

pirate update

the next thing

10 questions

a darn good question

enslaved by spamcop

pirate week (again)

your marketing sucks

future fat days

weight-time

money-time

critical chain

parkinson and murphy

crunch time, scope creep, and constraints

web wizards

dilemma

how to fix the internet

rat's nest

dumb mistakes

ambient orb

billing and signup week

pirate 0.01 alpha (click to check it out)

last day on pirate (for a while)

college roomies from hell

feng shui

ambience

on to c

list comprehensions!

commitment and debt

pimp

goals are expensive

the diamond age

next action

green day!

pirate

i am rantelope, hear me roar

24 hr novel: post mortem

greed sex and murder

scene and summary

blogathon / greed sex and murder

crayons

step one: bitch

devin and alice

whatever

rantelope revised

a rant about rantelope

circuit vendor

thinking physics

tachyon ethernet

north korea

big

still kicking

things to do

pick one

the other side

ugly deer and shareware comics

vector space search engines and the stock market

doodled in flash while listening to tony robbins

rotflmao!

a story

chapter one

body for life: take 7,394

the adventures of sleepyhead

failure to communicate

better browsers through porn

the real story

a day in the desert

angelina

a tale of two twains

python and OpenEEG

leadership forum

don't be a thug.

drawing cars

carbon

dividend taxes: just say no

the quiz

popular

time for a change

without an e


this is rufus