Monday, February 5, 2007

How rarely we do what we know we should

It's interesting that as a result of building SimpleRoster I've had time to think about just how often we, as web application developers, fail to do what we know we should when it comes to efficiency.

It's a bit of a premature-optimisation question certainly. When you're on a tight deadline, you're not going to sit there fiddling with something that will take 200ms off a page load, especially when some designer who doesn't know better has added 12 images to the page at various places causing massive loading problems for todays non-pipelining browsers.

In constructing SimpleRoster, I had the benefit of no real deadline. It was done when I felt it was done - a rare luxury. And I was the designer :)

As a consequence, it has a number of simple, elegant design decisions that result in a nice fast page load, removing the need for me to utilise ajax to provide responsiveness, and instead only provide it when it's needed for intuitive operation.

An incomplete list of the various things I took the trouble to do:
  • HTML based logo, reducing image loads
  • Careful stylesheet design to minimise overly complex html
  • Setting of expiry times and caching details for static content to reduce requests
  • A real, valid robots.txt preventing individual rosters from getting indexed by accident
  • Where ajax is used, the support library (Mochikit) has been properly packed with the provided tool to reduce size, and it's only included on pages that need it
  • Use of cookies or url-encoded state information to store user data, allowing the web app to remain sessionless.
Of course, this means that my silly little application is probably more capable than most much more useful apps of dealing with a large volume of traffic - something it will almost certainly never attract :)

SimpleRoster

Well, during the development of another project, I hit a delay while I got approved for various bits and pieces. So I spent the time playing supreme commander developing another application based on the same technology.

SimpleRoster is a simple rostering application with the sole purpsoe of trying to be more useful than paper/excel for the purposes of constructing and organising weeky rosters.

It wasn't as easy as it sounds. A weekly roster just isn't that complicated a beast for the most part, and it's difficult to find places where you can actually advance on a piece of paper and a pen.

The major feature is simply that it's always up to date, and accessible from most places. This was the inspiration for the solution, since it was faced by a client of Red Spider and they were after a solution, too many last-minute changes to rosters meant that reception rarely knew where someone was to forward their calls.

To be quite honest, I don't expect it to be a terrific success, it just isn't that "wow" a problem/solution. It did, however, give me a chance to get a lot of new tech (Turbogears based) out and live so that I could be sure I had got all the bugs out.