Implementing Software Schedules with XML and XSLT
I recently picked up the Joel on Software book. After reading his chapter on "Painless Software Schedules", I decided that the schedules could be done with a simple XML file and a nice little XSLT to transform it into (X)HTML.
Considering that transformation is built into all of the most popular browsers, anybody should be able to view it without the need to run Excel. Avoiding the startup time for Excel just to view a schedule is just a bonus.
The main benefit is, 10 seconds in a text editor to update a schedule means you can spend more time working instead of playing with schedules.
Even if you only use this as an individual developer, it gives you something to point to when a manager asks, "how's the project going", or "where are we on implementation". You can read this as, let the managers look at a web page instead of interupting your work. If they want daily project status emails, use a cron job to email the link to them ;-)
I've tested this on Firefox 1.5, Opera 9 and IE6 and it appears to work well. Attempting with Konqueror failed, so I can only assume that it doesn't come with and XSL transformer built in. This probably means it won't work in Safari on the Mac either since Konqueror and Safari share the same code base. If anybody has a Mac and wants to try it, let me know.
The demo can be seen here. If you hit view source, you'll see that the XML is pretty simple and should be just as simple to edit. The XSL template is here. Feel free to use, edit, throw away, or whatever. I suppose that if someone were really motivated, they could create a schema for the XML. I think its probably too trivial to bother with.
You can download a zip file containing the demo and xsl file here.
The template takes care of the simple subtraction to populate the time remaining column, and it adds it all up for the total time remaining as well. Providing different views of the data should be a simple matter of writing different XSL files. I think one of the main benefits of this type of thing is the XSL can be reused among lots of schedules pretty painlessly, and an org can have their own look and feel. On the security side, putting this up on a web server allows more people to be able to view it. Since, according to Joel, only the developer should be editing it, it just adds another layer of protection. Personally, I'd rather share information on an internal web server than a shared drive. Just call me paranoid.
More information on workin with XSL and XML can be found in the links below.
- W3.org - the source
- w3schools - little tutorials
- Learning XSLT - by Michael Fitzgerald (amazon)
- XSLT Cookbook - by by Sal Mangano (amazon)
- XSLT - by Doug Tidwell (amazon)
Comments can be left here.