hmmm....: Task Management with Hiveminder and Perl

This is how I manage my tasks with Hiveminder on a weekly basis and the Perl script that helps me do it. I don’t really expect the Perl script to be useful to anyone as-is but portions of it may be useful to others, as well as the general work flow, so I’ve decided to share them.

At Linode we have a wiki page where we list 5 or more tasks we wish to accomplish during the week. There is a heading for each employee and below the heading we place our tasks. Throughout the week we can add additional tasks or mark existing ones as done.

I’ve used Hiveminder for some time. When we started the weekly task lists at Linode I found that taking a few minutes to figure out which tasks I wish to complete in the coming week works quite well for me. I started marking these tasks with the ‘week’ tag in Hiveminder. I quickly ended up writing a perl script, week.pl, to help me manage hem.

My Weekly Workflow

First thing Monday morning I run:

$ week.pl report

This prints a report with two sections. The first section lists tasks that currently have the ‘week’ tag with a line through the task ID if it is completed. This gives me a nice summary of what I planned on accomplishing the previous week and how I did. The second section lists all of my tasks currently visible in Hiveminder. I hide tasks that I know I’m not going to work on in the next few weeks so this list is usually no more than 20 or 30 items.

Sample report Image

I take this report into the Monday morning meeting with me. During the meeting, I’ll glance over this list and select items for the upcoming week. I also use this page to take notes on during the meeting, writing down any new tasks that come up in the meeting.

After the meeting, I add any new tasks generated in the meeting that I won’t be working on this week to Hiveminder.

$ todo.pl braindump

todo.pl comes from App::Todo, a command line Hiveminder interface. The braindump command launches $EDITOR where I add new tasks, one per line. The braindump syntax allows for specifying tags, setting priorities, and other things as well.

Next, I prepare the task list for the upcoming week:

$ week.pl edit
Carry over the following tasks?
bring about world peace (y or n) [default y] y
write some awesome pre
do some other cool stuff
create practical cold fusion (y or n) [default y] n
return library book

The edit command iterates over each task tagged with ‘week’ if the task is not marked completed. It prompts whether or not I wish to carry the task over to this week (leave the tag). Any tasks marked completed have the tag removed automatically.

$ week.pl add
Created:
        #YRVK write an awesome report for Tom [week dev]
        #YRVL test some new stuff for deployment [week admin]

The add command works the same as todo.pl’s braindump command except the ‘week’ tag is automatically applied to the newly created tasks. The full braindump syntax is available for specifying other properties of the tasks.

$ week.pl update https://path.to.trac/wiki/Tasks/2010-03-15
Sup dawg, I heard you like tasks so I did ur shit for you

The update command grabs my tasks tagged with ‘week’ and formats them one per line started with ‘ * ‘, a wiki bullet list. It grabs the current wiki page, finds my heading, substitutes the formatted task list under the heading, and submits the change. It also stores the path given in the YAML config file.

$week.pl go

This opens the stored URL for this week’s tasks wiki page in my default browser, allowing me to confirm week.pl did what it’s supposed to.

Later in the week once I’ve done something:

$ week.pl done tom
#YH7T bring about world peace [dev week]
#YRVL test some new stuff for deployment [week admin]
[DONE] #YRVK write an awesome report for Tom [week dev]

This retrieves the task(s) tagged ‘week’ that are not marked completed containing the given string. If there was only one match, the script marks it as done and then outputs the current state of tasks tagged ‘week’.

$ week.pl update
Sup dawg, I heard you like tasks so I did ur shit for you

Same as update before, except when no URL is given, the URL is read from the configuration file. This way I only need to worry about the URL once per week, the first time I update for the week.

Conclusion

So there you have it. If you are also using Hiveminder, maybe aspects of my work flow will make sense for you and pieces of the Perl script may be useful. If you aren’t using Hiveminder, maybe you will be inspired to check it out. I use michael@thegrebs.com on Hiveminder in case you feel the need to assign me a task or wish to gift me another year of Hiveminder Pro ;)

week.pl

pleia2's blog: Starting to settle in

The cats settled in faster than I am. This move to San Francisco brought a lot of change with it. I’m living in a city for the first time, I’m living with someone again, and although I didn’t change jobs, east coast company from the west coast has brought all kinds of challenges to my previously defined daily workflow.

But I love it here! It will take some time to adjust but I’m confident that within a few months I’ll feel very at home here. Part of feeling “at home” will be the ability to return to my previous state of high productivity. I think part of the challenge project-wise was that I really took a huge step back from all projects when I started planning my move. It gave me a lot of perspective as I start coming back to all my project work, sorting out where my talents can be best spent, but it’s also made it difficult to know when and where to jump back on to the moving train. I’m very fortunate to be working on projects with wildly supportive and productive communities, where taking a break is perfectly acceptable (and supported).

As for “moving in” here. there are still boxes everywhere, and probably will be until we get our storage situation sorted out. It will be so nice when the office is finally put together and I stop wondering “which box is that thing in…” when I am looking for things.

And getting adjusted to the city? I’m certainly enjoying the food in San Francisco! I am so used to living on the outskirts of Philly where the food choices tended to be pizzerias and Chinese takeouts – which I love, but do get a bit tiring, especially since I’m a bit of a foodie. Having so many cuisines within delivery (or walking!) distance is quite novel, it’s amazing that I haven’t gained weight since moving – indeed, all the walking I’m doing is starting to have the the opposite effect. People here are great too, I already know so many people in the area through open source and other things there’s no chance that I’ll end up bored or feeling isolated, in addition to meeting up for food/drinks with a couple people already, a couple members of the Ubuntu California team have suggested meetups and offered rides to local events. And I’ve never really used public transportation so I was apprehensive about not having my own car here, but it turns out that public transportation in SF so far is not scary or very difficult to maneuver, so it’s been very convenient.

Now, time for some lunch and a movie.

Planet Woozle: Big boys

My little guys are really growing up!! 

We went and had Dominic's picture taken in honor of his 4th birthday that is in just over a week.  He did great!!  He even picked out two of his trucks to pose with him.  I just can't resist his darling dimples. 

This first one has a retro finish:
 
  
  
and Mr. Serious...
 


Also, we ordered a "big boy bed" for Elliott for his birthday.  Thanks to Amy's idea, we went with a Maxtrix bed that should be sturdy enough to last for a while, modular enough to change around, has a great warranty, and should end up being "fun" for Elliott.  Not sure when I'm going to switch him, but the top of the crib rail is at his armpits, so it will probably be sooner than I expect.

Here's something similar to what we got:

 

The cool part about it is we can add all sorts of stuff later to make it look like this:  (with my luck, Dominic will want a bed like this instead of what he has, too!!)

 

Can't believe my babies are getting so big!!