Keeping Track of Time – Part 1 – Recognizing the Problem

I have a confession to make.  Like many other software developers, my time estimates are seem to vary from real time.  Yes, giving accurate time estimates are a difficult task, especially ones that are over long extended periods of time.  Add on top of that time seems like an illusion at times, and you have a perfect storm for inaccuracy.  However one of the hallmarks of a good senior developer are good time estimates.  So what to do?

Well you have to fix that problem like any else.  First lets do some research on the problem:

From the looks of it, the problem consists of breaking down a project or a problem into reasonable amounts.  Then one can build time estimates on the design, implementation, integration and testing of the components.  Sounds easy, yes?  Not quite, but that is a skill that can be developed.  How?  Well track the components needed to perform a certain task, measure the time it takes to finish the task and finally do analysis on the results.  Sure you can do this by hand, with nothing more than a pen, paper and stopwatch.  However this is far too tedious and onerus when developing.  Humanity invented and built computers for tasks just like this.  Again after a bit of searching online I found the following tools:

Over the next couple of days and weeks, I will play with each tool and try to figure out which works for me.  Finally I will write about which worked out the best for me overall.

Update – A Week in Review

This has been quite a busy week in hindsight.  I managed to build up my portfolio and work on my professional image.  I managed to restart my coding and writing projects.  And I’ve finished up on my correspondences.  I look back and I’m quite proud of my achievements.  I just wish I could move such mountains on a regular basis.

Clubbing In the Courthouse – Part 1

Today I had to go to a summons.  I’m grateful for living in a country with a “fair” judicial system, and I’m not going to try to avoid my “civic” “obligations”.  But it bothers me, why our dear tax-money fed bureaucrats can’t organize things properly.  I see no valid excuse why to flagrantly wasting people’s time by asking until the judges and lawyers graciously call us in.  Could such a waste of time and productivity not be fixed with a bit of advanced scheduling?  For one this would help the economy, and social morale.  It this waiting seems something of a hangover from ancient times, when the nobles could simply “ask” the peasants to put their lives on hold.  Or am I missing something?

Why not small pools of potential jurors?  Or calling them in at appropriate times?  Why ask to place things on hold in a systemic manner?

Inbound Tasks

I got up this morning, or rather crawled out of bed this morning.  I didn’t expect today to be the grandest of days.  Nor did I expect today as the worst of days.  I expected that for once I could relax this week, and just take it one day at a time.  When I logged onto my machine this morning, I noticed first a large number of e-mails.  Then the existing pile of tasks.  And the message from one of my friends, that I might have a huge event to go to.  A event that requires preparation, time and expenditure of financial resources.  In mortal terms, I have enough to keep me busy for this entire week.  And I’m a bit overwhelmed by the sheer magnitude of it all.  If I don’t roll up my sleeves and get to work soon, then I’m going to have a pack of snarling, salivating tasks all over me in the matter of a single day.  Help.

I’m not worried, cause I can handle the load.  (Assuming nothing else doesn’t pop-up.)  I’m a bit cross that I’m waking up this morning, to the realization that a shitload of work is heading me way.  Oh well, I need to be expedient, and hope for the best.   Wish me luck.

I’ll Be Right On It

It is a bit early in the morning to come up with material to write about.  And I did not get much sleep this night.  Today I probably wouldn’t be able to stop yawning.  And insane amounts of coffee will only keep me from trying to take a nap on the new office’s couch.  All that said, I am on track with my current work: personal, professional and long-term.  I’ve even managed to get to those much delayed tasks.  Yesterday I restarted my coding projects.  Today I will dedicate some time on building a portfolio: in writing, graphics and coding.  And I really need to clear the dust off my resume too.

The key statement for expressing the feel of these past few days should be: I’ll be right on it.  And I will.  Things get done and on time.  The only thing missing is sleep, but I’m sure that will return if I keep at it.

As an aside, I played Alpha Centauri this morning.  What a difference lower the difficulty a single level makes.  At the moment I’m kicking ass and taking names.  I can also verify that what they say about state theory is true.  It is all about power and domination over a territory.  It takes incredible restraint to not exercise aggressive military power, especially when you know you can get away with it.  Hmm… that should prove a great uncurrent theme in my novel.

Final aside: I have to rewrite the first chapter of my novel.  I can’t adapt any of my previous writing to it, in any real degree.  I can use some ideas and elements here and there, but regretably it looks like the first chapter needs a rewrite.  The overall plot and characters feel strong.  The setting needs some thought, since the terrain in reality does not work a 100% with my idea.  Anyways, I plan on just writing the rough drafts first.  Then I brace for painful edits later on.

Best Laid Plans

My best laid plans always seem to flow so well together.  But give things a bit of time, and then complications arise.  And with complications come delays and reschedules.

I planned on being further along with my writing today.  Also I planned on having already dealt with a number of tasks.  Finally, I planned on moving forward with my summer vacation plans.  Instead I slept, and made a long-term investment.  All well and good, but not planned for at all.  However the inflexible only complain, the flexible reschedule and replan.  Thats what I’m doing this morning.  I plan on moving forward today, possibly badgering a few idle people in the process.  Also I will redo my vacation plans.  As for the writing, I think I will find ample time to write in the afternoon.  Everything all due to circumstances beyond my control.  All I can do is work around the obstacles and work with what I have.

Measuring Progress

I apologize for the lack of an earlier update.  A writer with a mindnumbing case of writer’s block, is  a terrible thing to behold.  Hence I put off writing until I regained my bearings and inspiration.  Thinking before writing should apply to all who write.

I want to touch upon something I write about often: time management.  The question that often comes to my mind, is how effective are my techniques.  Do I gain anything from them?  Or do they simply hinder me from achieving what I planned to achieve?  How can I judge if a technique that I apply to my life hinders or helps?  I claim there is a manner in which one can measure if a technique works or not.

But how should measure effectiveness?  I rather not use the metric of amount of free time.  The simplest way to attain free time, is to get rid of work.  Rather we need a metric of work achieved.

Measuring work in general is a tricky business.  If it were a simple task, we could then attempt to measure the value of work.  And then we could base a sane economic model on work performed based various criteria.  Regrettibly the Austrian school of business shows that this is a difficult if not impossible task.  Also work for the sake of work is foolish.  And one of the root causes of the present economic crisis, is the fallacy of Keynes, that so long as people and capital work and are consumed, all will be well.  Hence, we indirectly valuate work by pricing the services rendered and good produced by said work, against other goods and services.  I propose we approach our original problem in a similar, indirect fashion.

Lets measure effectiveness not only by the number of tasks completed.  We could weight the task by their complexity, size and difficult in realization.  But even such a weighing is not the true cost of a task.  I noticed an improvement to simply measuring tasks.   We include measurements how quickly one can work on those important but oft-put off projects and goals.  If a technique lets one approach more such long-term projects and goal than before, then the technique is effective.

I am happy to report, that I put effective time and spatial organizational techniques into practice.  The ones that I could maintain or could help me, I stopped using.  And I know they are effective, since I can finally get to work on all those important projects and goals.  And all those projects I put off for months and years, I can now approach.  So I can comfortably say that progress is being made.  And these techniques do pay off.

Task Logs – Managing Fragmented Time

As promised last week, an update to my self-experiment. After a week of battle testing, consulting with Lina (my university counsellor) and observing myself, I can report success in with my self-experiment. But first, lets backtrack to the “theory” behind my idea.

Last Friday, I came up with an idea to deal with creating continuous spans of work time in an environment that distracts and fragments time into sections. Fragmented time caused by distractions, creates a feeling of disorganization, confusion and frustration between switching. The greatest problem I found with switching between small tasks and my main (course) work, was the inability of getting back to the work. After some problem, I realized that I encountered this problem and a solution in another place, operating systems design.

Modern operating systems seem capable of multi-tasking. Yet the majority of computers have only one or two processors (hyperthreading and multi-core acting as two processors each in some degree). So how can a single processor run two servers, a media player, a web browser, and office suite at once? It doesn’t! The operating system switches between individual tasks rapidly creating the illusion of multi-tasking.

The CPU can switch between tasks without loosing its place by logging. Before the processor switches tasks, the operating system notes what the processor worked on, how far it got and other relevant information. I applied this same idea to enable fast personal context switching.

Before I switched from a major task to another one, I logged what I worked on. The log details the task, what I needed to do next and any ideas I wanted to remember. In its basic form (one form I use along with an activity log) I note the name of the task, what I was to do next in the task, and a bullet form list of notes. Additionally you can jot down the importance, due date, urgency and personal emotion (look at my modified activity log sheets) on the task log.

When I discussed this with Lina, she was quite impressed. She pointed out that this method, deals with the three issues in time management: organization, motivation and prioritization.
The task logs firstmost are organizational tools. They behave sort of like more advanced todo lists, and help you organize your thoughts about a task. Task logs also help motivate you. They show your progress, set your mindset toward the task and motivate you to finish off the task quickly. Finally task logs help with prioritization. Sitting with number of task logs in front, can help you decide which needs the most attention in a given time. In the short I have used them, task logs helped me switch between activities efficiently.

I like task logs, in that by helping me switch from and to a task, I can work on different tasks without a long “warm-up” period. Anyone who deals with lots of writing knows how difficult it can be to put pen to paper. And if something interrupts you, when you come back to writing you need to get back into the mindset of the task. The task log shortens the warm-up time, effectively “stitching” my shorter fragments of time into a single time span. With a task log, I don’t have to sit and think “What do I need to work on again? And what did I want to do?”. Instead I can look, and say “I did this, I need to do that… so… lets work on that task now.”

But even a super-fast CPU finds switching between tasks expensive. Taking task logs takes more time than doing without them, if you never needed to switch between tasks. In an ideal world, we could work on one thing at a time. Unfortunately, the ideal does not exist and so we need to deal with issues like fragmented time. And I believe task logs can help with fitting long term projects into shards of times and making me more productive.

Check out this page on on activity logs.
I will post a sample of “emotional” activity log and and a sample of my task log, sometime tomorrow.

Self-Experiment: Fast Personal Context Switching

Time for a self-experiment, where I get to play the part of the guinea pig. And you get to observe the final results. Speaking of time, this university semester I felt rushed and busy like never before. I found myself with six assignments/exercises a week, and in a constant lack of time. In response I started going to time management counselling. Armed with calendars, todo lists, activity logs, my trusty PDA and advice from, I felt I could do no wrong.

I discovered a problem that kept holding me back from achieving more. At home, with all things going on, my time become extremely fragmented. The fragmentation frustrated my attempts at coming up with a coherent schedule and sticking to it. And getting into the mood and mindset of performing school work – assignments that I tried to avoid – felt like climbing Mount Everest again and again. However when I interrupted and continued games between chores, I did so without missing a moment. Why could I do one well but not the other?

When you look at my situation, it resembles the life of a CPU. Why a CPU? Take a look at your computer. Your computer with one CPU can multitask well. The CPU seems to work on many things at the same thing. In reality, one CPU can only do one thing at a time, but the operating system switches the tasks for the CPU. Under Linux – the OS I use and understand best – every program (process and thread) becomes a task. The OS allocates a certain amount of time for executing a task, and then switches between them. Whenever the OS switches, it stores a record of what task it was working on, how far did it go into the task, and any extra information it needs to restart the task later. The OS then starts or continues another task. Eventually, the OS gets back to the stored task, retrieves it, figures out what to do, and executes the task until the next switch. So what?

Well, I often have to drop one thing and pick up another. Just like an OS, I switch from one task to another. Yet when I re-start my previous work, I sit trying to get into the work again. Being the distractible type, I get fed up and wander off to game instead of homework. And I need continuous blocks of time to do work in. So what to do?

Remember how the OS stores some information of its work in one task, before it switches? Well this week’s experiment is do the same. Before I go off on another task, I will write down the following:

Task: (what was I working on)
Working on: (which part or section I was working on)
Self-Progress: (how I am progressing through this section – well, badly, struggling, etc.)
Next work: (what I need to do next)
Notes: (any important things I need to jot so I don’t forget them)

Well this work or is useful? I have a pad of paper and pen ready, and we will see. Next week, I will post any interesting developments and results of this self-experiment.