{"id":45,"date":"2005-08-08T14:33:32","date_gmt":"2005-08-08T18:33:32","guid":{"rendered":"http:\/\/benjamin.smedbergs.us\/blog\/2005-08-08\/task-management\/"},"modified":"2005-08-08T14:36:01","modified_gmt":"2005-08-08T18:36:01","slug":"task-management","status":"publish","type":"post","link":"https:\/\/benjamin.smedbergs.us\/blog\/2005-08-08\/task-management\/","title":{"rendered":"Task Management"},"content":{"rendered":"<p>I have been trying to follow <a href=\"http:\/\/www.joelonsoftware.com\/articles\/fog0000000245.html\">Joel Spolsky&#8217;s advice<\/a>. Right now it is very hard to say &#8220;XULRunner 1.9 needs X hours of work to be ready for production use&#8221; 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 &#8220;it would take me 412 programming hours to complete them&#8221;, and even less the amount of debugging time to get to a final product.<\/p>\n<p>Bugzilla is a pretty good bug tracking tool, but it&#8217;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 <a href=\"http:\/\/benjamin.smedbergs.us\/blog\/2005-07-09\/nothing-in-the-pursuit-of-perfection\/\">doing nothing, waiting for bugzilla to get better<\/a>, 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.<\/p>\n<p>Actually, I&#8217;m lying. I wrote two different versions of this tool, each with its own problems. I&#8217;m posting both URLs for comments and suggestions:<\/p>\n<ol>\n<li>XUL version that uses server-side persistence &#8211; <a href=\"http:\/\/benjamin.smedbergs.us\/planning\/index.xul\">view<\/a>. 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 &#8220;save&#8221; functionality is password-protected. If enough people are interested, I&#8217;ll make a &#8220;playground&#8221; version.\n<li>Wiki-based version &#8211; <a href=\"http:\/\/benjamin.smedbergs.us\/docs\/XULRunner_tasks?action=raw&#038;ctype=text\/xml\">view<\/a> | <a href=\"http:\/\/benjamin.smedbergs.us\/docs\/XULRunner_tasks\">edit<\/a>. This version cannot be edited inline: you have to edit the wikimarkup manually&#8230; but the markup is pretty readable all on its own, so you don&#8217;t even have to use the &#8220;view&#8221; version if you don&#8217;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 &#8220;raw&#8221; in various mime types, see <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=300657\">bug 300657<\/a>.\n<\/ol>\n<p>Right now, I&#8217;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 &#8220;good enough&#8221; for my needs; I need to actually work on the data for XULRunner 1.9!<\/p>\n<p>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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have been trying to follow Joel Spolsky&#8217;s advice. Right now it is very hard to say &#8220;XULRunner 1.9 needs X hours of work to be ready for production use&#8221; 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-mozilla"],"_links":{"self":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":0,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"wp:attachment":[{"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}