Waves of Productivity

November 10th, 2010

Another reality is that energy and productivity come in waves.  Although those hyper-productive days feel great,  there is no substitute for steady output if you really want to move forward.  However, I do suspect that those hyper-productive days are probably also the cause of the low-energy weeks that will follow.    It are these low-energy weeks that are plagued with  procrastination (in all sorts and shapes).

I wrote about procrastination before, this time I’ll tell you what I found out doesn’t work:

“I’ll do it tonight” – Although it seems a good idea (and feels good at the time) to fix a time to do a task in the near future, it’s actually the worst idea and it is the essence of procrastination:  postponing things you could and should do right now.
There is an exception:  urgent tasks that come in while you are already really actively working on another task. However, make sure that you commit to it, by telling the other party as well that you WILL do it today.

Other times I try to trick myself in doing something: I tell myself I will do project A after I’ve finished (hard) project B, because B is more important. However, instead of speeding up B, this will usually result in feeling very busy and besides B still moving forward slowly, nothing happens on A either.  So:   if you are not really actively working on B RIGHT NOW, there is no reason not to work on A as well. There is just no way that you are dedicating all your effective time to that single important project, unless you are really close to a deadline.

Blurred Lines: Work, Idle or Leisure

November 8th, 2010

Being a business owner working from home makes the Seven Day Weekend very real to me. Although the book by Semler considers it as a positive thing,  I merely see it as a fact of my life.    As I started my business at 16 as a sidetrack while I was in school, since then I never had a clear separation of work days and weekend.    I spent time working on my business in the evenings,  spent time studying in the weekends, etc.

The last three years business has become a full time activity and without the structure of having to go anywhere the lines between work, idleness and leisure have blurred beyond recognition. This has serious consequences:  I feel busy all the time, but at the same time I feel I could create much more value in the same time.     If I look back, we have produced immense amount of work, but at the same time it does not live up to my ambition.  Which leads to the question:  how am I spending my time? The answer:  I have no idea.    Because all boundaries are gone,  I just lost track of time.

After this conclusion I decided it was time to really rethink everything. In order to feel confident about the choices I make considering the time I spend I need to be more aware of how I actually spend them.

My first observation: Sitting behind a computer does not equal work. As I started to develop some RSI related discomfort I believe I need to cut down on time behind the screen and therefore improve efficiency when I am behind the screen. Therefore I have invented a new rule:   You should only be behind a computer if it is either something you like to do, something that will increase revenue or something that is required by law.

Now I will have also have to live with the fact that not all work will move projects forward. Stuff like bookkeeping, recovering servers, etc. just needs to get done and will always take some of your time.

So, there are different categories of time spending:
Recharging – Sleep, Eat, Walk, Staring out of the window
Chores – Bookkeeping, Shopping, etc. (stuff that need to get done even if you don’t want to)
Tasks – Anything that moves a project in a predetermined direction, with a verifiable output
Urgent – Handling incidents
Expression – Writing, painting, drawing, etc.
Communication – Chatting, calling, etc.
Stuff – Checking E-mail, News, Stats, etc. without an immediate benefit

Now I assume that the best way to move forward it to maximize the time spend on tasks without cutting time from other important areas.   The amount of time spend on urgent matters and chores is probably roughly unchangeable. Although they feel like interruptions to your productivity, in reality I don’t think they are. They are just the easiest excuse for not having completed something more useful.

However, I won’t be sure until I measure.  Using the Pomodoro Technique I now have a fairly accurate way to measure the time spend on real tasks. And these first days,  it’s not that much, even though I am more productive than before, the actual time spend on the tasks is not that much.   Hence, there is room for improvement. Of course I’m doing some stuff that I not yet handle in a task-oriented way, but there is also time that seems to disappear and I really want to find that, so I will try to be much more aware of the time I spend besides finishing my tasks. One of them is obviously the busy/idle behaviour I described earlier. In order to find out more, I will ask myself often:
What is it that I’m doing?
Why am I doing this activity?
– Why am I doing this now?
– Is this an absolute requirement (e.g. by law)?
– Will this contribute to our revenue?
– Would there be a better way to spend this time?
(I believe some of these questions also appear in the Getting Things Done method)

In a few weeks I will update you on the results.

PHP: How to generate URLs in your webapps

October 31st, 2010

With SEO becoming more and important, it is critical that you produce the exact same URL from the same piece of content everywhere.  Furthermore, the URL structure is often decided upon only after you’ve started development. Our experiences from the last few years have led me to believe that the ultimate method for generating the proper URLs time and time again is to use a separate function for each different URL  in th following pattern:

function my_url($data_object, $context=array()){
  return root_url(    
           "my_url_page/".$context['category']['name']
           ."/".$data_object['seo_slug']
          );
}

This has the following advantages:

  • If you decide you need different fields from your data object to generate the URL, you only need to change it in one place
  • If you need extra context information,  it is easy to search where you call this function
  • One place to check if you are properly urlencoding everything
  • Avoids generating multiple urls for the same page

Because we also want it to be easy to remember, we put them together into an object:

class My_URL{
  function root($str=""){ return "/".$str; }
  function my($data_object, $context=array()){
    return $this->root(    
                    "my_url_page/".$context['category']['name']
                    ."/".$data_object['seo_slug']
                   );
  }
}
function urls(){ return new My_URL(); }

$myurl = urls()->my($data_object, array('category'=>$category) );

To  make it a bit more fancy and less work,  you can create a bit of magic for common cases:

class My_URL{
   // ... same as above. Plus: ...
   function __call($method,$args){
     $url = $this->root($method);
     if(sizeof($args)>0) $url.="?id=".urlencode($args[0]['id']);
     return $url;
   }
}

You can make it as fancy as you want, for example in some projects we have one big __call function that uses a configuration file to determine the urls based on the method name and data objects. Furthermore you can use functions to normalize urls like upper/lowercase conversion and anything else that will help you generating better and more consistent URLs.

Todo lists : Do and Don’t

October 22nd, 2010

Every time I’m unhappy about my progress I resort to Todo lists. Basically there are two types:  personal  and per-project.  Often a per-project todo list is implemented as a bug or issue tracking system.   These are very useful to keep everyone on the same page and not forget about things that do need to happen.  There is not a single reason why you should be using some sort of system to keep track of the future of your project.

The personal todo list is another thing (Gmail has a very nice and easy to edit one. )   Although they seem essential for a task-oriented approach to time-management,  I found there are many mistakes you can make.

The first and most important one is to let them grow:  You start enthusiastically with the first day, write down your tasks for that day and complete them.  However, not all days work out as well,  so  you will not always complete your tasks.  And here comes the danger of a todo list:  you tend to put the tasks you did not complete onto the next day.  So after a while your list gets full of tasks that you keep shifting forward.

The other danger is to put tasks on it that are not really tasks.  E.g.  ‘finish project X’.    That’s not something you can do now ‘right now’.  It’s something that has an undefined start, duration and ending. No wonder that it’s impossible to cross anything off for days. And nothing makes you feel worse than having a todo list and not crossing anything off.

The final problem is  adding tasks that are not for  today.  Often you have stuff that you need to do that feels convenient to put on your todo list. However,  if you are like me, you have a lot of these ideas and after a while it becomes more like an e-mail inbox up till the point that it seems impossible to finish everything.

So, learning from these mistakes I have decided that the best solution is to keep the Todo Today on paper and make a new one every morning. Furthermore the unfinished tasks from yesterday can not be at the top of your new day. Having it on paper will  encourage to not just re-edit yesterday’s list.

Focus

October 21st, 2010

Just as I’m busy improving my time management skills I came across  a nice book that touches a lot of the subjects I wrote about (and plan to write about n the near future). An interesting thing I got out of it is the use of rituals to get focused.   As I usually don’t have a problem staying focused once I really get started. So I will definitely try to incorporate that in my life.

The book has a free (and hassle free) PDF version as well, so I highly recommend it as well as the blog I found it on: zenhabbits.net.