Task Management
I have been trying to follow Joel Spolsky’s advice. Right now it is very hard to say “XULRunner 1.9 needs X hours of work to be ready for production use” because basically nobody (including myself) has any clue what concrete tasks are needed to get from here to there. I have a pretty good mental overview of the tasks, but that is a far cry from “it would take me 412 programming hours to complete them”, and even less the amount of debugging time to get to a final product.
Bugzilla is a pretty good bug tracking tool, but it’s painfully unsuited at task management and software scheduling. Joel recommends a simple spreadsheet, but that has some serious problems when I need to expose the data for lots of people on the web, and probably need to allow multiple programmers to fill in data. Instead of doing nothing, waiting for bugzilla to get better, I have written a little tool to help me manage XULRunner. It uses a custom XML dialect and some XBL magic to create a hierarchical list of tasks, with estimated and actual times for completion, and automatic totals.
Actually, I’m lying. I wrote two different versions of this tool, each with its own problems. I’m posting both URLs for comments and suggestions:
- XUL version that uses server-side persistence – view. This version loads a XUL page directly into memory: the page can be edited inline and saved back to the server using the menu. If this were the final version, I would probably include auto-save functionality and maybe some other stuff. The big advantage of this version is that it persists the open/closed state of each item. The big problem with this version is when two people try to edit simultaneously: there is no collision detection, and there is no real possibility of smart-merge. Currently the “save” functionality is password-protected. If enough people are interested, I’ll make a “playground” version.
- Wiki-based version – view | edit. This version cannot be edited inline: you have to edit the wikimarkup manually… but the markup is pretty readable all on its own, so you don’t even have to use the “view” version if you don’t want to. The big disadvantes of this version are the lack of inline editing, and no persistence of the open-closed state. This version makes use of a special mediawiki patch that allows wiki pages to be viewed “raw” in various mime types, see bug 300657.
Right now, I’m going to use the wiki-based version. In the future I may try again with some special database-oriented system in the future, but this version is “good enough” for my needs; I need to actually work on the data for XULRunner 1.9!
What would be really nice is to make bugzilla less painful to use, and integrate this kind of project-management data into it, but that is a topic for another day.
August 8th, 2005 at 8:14 pm
Have you seen natzilla? There’s one set up at http://www.ximian.com/natzilla/ , though I can’t find Nat’s original writeup/description of it anywhere. It’s built on top of bugzilla (not sure how well it integrates with a bugzilla install, for linking bugs to tasks and whatnot), but it seemed pretty cool. I think at some point he sent it in as a patch for Bugzilla, but it got dropped on the floor… I could just be making that up, though.
August 8th, 2005 at 10:49 pm
I used Bugzilla; I came up with core tasks and then broke each one down into subtasks setting them as blocking. Bugzilla lets you list graph things out to a degree.
The only project planning software I’ve ever used is MS Project.
The key, of course, is being able to estimate how long it will take to complete a task (or fix a bug). I’ve never been good at that.
August 9th, 2005 at 5:34 am
Nice tool Ben! We could use something similar at MDG.
August 9th, 2005 at 3:59 pm
I have begun work on a similar utility which is to be based on a Bugzilla backend, but it is currently on hold until we implement… Bugzilla! :)
More info and a screenshot can be found here:
http://mikecaines.blogspot.com/2005/08/roadmap-view.html
August 13th, 2005 at 9:45 pm
Bugzilla does actually do time management (ish), see http://twpol.dyndns.org/temp/bz_tt_1.png – but naturally it is turned off on BMO. It seems, looking at my own Bugzilla install (current trunk CVS), that this feature has been improved since I took that screenshot, as there is now a Deadline box, and a link a page that summarises the time for the bug and ones that block it (though I can’t get anything out of it, for some unknown reason, and I get a Bugzilla internal error when setting the estimated time).
August 22nd, 2005 at 12:34 am
[…] It seems like everybody’s doing it. This next week before school starts up again, it’s about organization. I got fed up about a month ago. Last week I started some work on it. This week I get serious. Papers need to be filed (quite a bit laying around), CD’s need some organization (I got a stack of them sitting right under my display for some reason). All data on computers needs to be filed away (desktop is cluttered, everything is all over). I’ve still got old textbooks to deal with as well. […]