Monday, July 30, 2007

Annual Report: Hours Worked Graph

In honor of the fun idea from Feltron Seven to publish personal annual
, I'm tentatively planning on creating my own report for 2007. I
don't want to spend much (if any) time collecting data, so this annual report
also serves as an experiment in locating data recorded about me and
aggregating it in a useful, queryable fashion.

This is the first post, in a five-month (crossing my fingers) series preparing
for my future report. The purpose is to help me flesh out ideas for content
and some techniques for creating it. As a convenient by product, these posts
will also serve as a handy scratch paper to remind me of good ideas when it
comes time to actually write the report. Each entry in this series will be
tagged with the label annual report, so they'll be easy to find later.

Now on to the first idea. Following on the heels of my recent post about
programmer context switching, and stealing Feltron's good ideas
with graphs of work and vacation, I want to include a graph showing the hours
I've worked. The graph will be a stacked, bar graph where the total bar height
indicates the number of hours I worked during each week of the year. There
will be pieces in each stack: context switching time and productive time. This
one graph should nicely highlight seasonal fluctuations in my workload and help
me see whether my efforts have reduced the overhead cost of context switching.

The data should be easy to find. I need to query my time clock database for
the total hours per week. The best bet would be to convert each data point
into RDF something like:

y2007:week_1 work:total_hours "38" .
y2007:week_2 work:total_hours "42" .

I'll get into my reasons for tentatively choosing RDF in another post, but
in this case, it might be easier to just generate the graph directly. Time
will tell.

Context Switching

I'm working on a difficult programming task when the phone rings, "Oh, hi. I'm
doing well ..." Then when I'm done with the call, I inevitably ask myself,
"Now where was I?" When performing a mental task, one's mind has to hold
certain information (context). If that context is lost somehow, it must be
regained before continuing. The phone ringing required me to switch contexts
and then reestablish the former context when the call was done. The act of
reestablishing context is an overhead cost for mental work. Bryan Dollery
estimates the cost of a context switch at around 10 minutes. That's 10
minutes of wasted effort.

For business purposes, I keep track of which tasks I'm working on throughout
the day. Anytime there's a context switch that lasts longer than a couple
minutes, I record the changed focus so that I can bill my clients correctly. I
wrote a quick report against my time tracking application. Assuming that
reestablishing context takes about 5 minutes, here are my results for June

Total Duration         : 8998 min
Unique Tasks : 80
Context Switches : 219
Average Focus Duration : 41 min
Time Spent Switching : 1095 min
Switching % : 12%

During June, about 12% of every workday was wasted to context switching. In
any job, there is a certain amount of overhead, but this seems like an easy one
to reduce. Fortunately, most of that overhead is caused by one client, so I
just need to find a way to manage them more effectively.

Thursday, July 05, 2007

Apprenticed Trades

Too bad so many people think that a university education is mandatory after
high school. If my children show little interest in university studies, I'll
counsel them towards apprenticed trades like plumbing and electrical work.

We had a plumber and his apprentice show up today to fix some plumbing issues.
The plumber billed $67/hour and his apprentice billed $37/hour (including two
hours of drive time). I wish I made that kind of money while I was in school.
Are there many situations better than having someone pay you to learn a
valuable skill?

On top of the high wages, these two plumbers were scheduled two weeks out. The
wages and the backlog are the market trying to persuade people into this field.
Maybe it's a Wyoming boom-effect, but a young kid needs a serious reason not to
go into one of these two fields. After apprenticeship, you could live just
about anywhere you want, set your own hours and earn a comfortable living,
leaving you plenty of time for family and hobbies. The only cost is facing a
stigma about not attending university.

I'm all for less stigma and more heeding the market.