Jan 01 2006

Agile Web Development

Published by Laurie Tagged as:,

Recently I have been trying to teach myself eXtreme programming. Without repeating all the ideas and concepts, one of their key arguments is “Do the most important stuff first, the rest can wait till later”. That’s all well and good, and I like the idea, I would even go so far as to say I agree with it, and think it’s a damn good idea.

As an example, Paso, the web software I am writing for IVDA needs some new features before it can go live. It needs to be able to have a forum board that only people at one university can see. That way all the people at Imperial College have a place for gossip, and team discussions, without allowing Oxford or Cambridge to read it and steal their ideas. In fact this is the one biggest thing that’s currently missing from Paso, so XP dictates that I should add that feature right now, as it provides the biggest business advantage.

Web development is different from other forms of development (sorry for the quick subject change, but it will make sense later – promise), and one of the key differences is URIs – those bits of text starting with http:// at the top your window when you are viewing a web page. Every single thing I want done has to be expressed as a URI, and sometimes, some extra data. We all know that cool URIs don’t change, ever!

Often, if you look at the URIs  you will see it contains long strings of numbers and implementation specific details  such as http://www.some-forum-site/viewtopic.php&topic=13487282. This is bad a bad URI! It says what software your site is written in (PHP – but do your users care?), lists what number that topic is (13487282) which is not something that anyone is going to remember. Its really good for your traffic if someone can grab a beer mat in the pub, and scribble down the URI for a topic they were reading, the person they give the beer mat too is much more likely to read the site, then if you say “go to some site, and search for a topic on blah”. Finally, that little “&” says to many search engines “ignore the rest of this URI”, so your actual content doesn’t get indexed. Lots and lots of missed searches – less traffic – bad!

So your site is doing to do better if your URL is something like http://www.some-forum-site/topic/what-fake-tan-is-best, but URIs of the first form are much much easier to develop. I’m using ruby on rails a lot at the moment, which for the most part, produces really nice URIs, but still falls into the trap of putting strings of numbers into the URI. This is probably the most minor of the URI issues, but still one I want to avoid.

The problem comes when you try and combine XP with web development. The business value side of me says “Get university boards up and running”. It’s more important than nice URIs, the part of me learning XP says “Do the university specific boards, then at a later date, sort them out with nice URIs”, the part of me that buys into the cool URIs don’t change mantra, says “ARGHHHHH”

So what to do? In my first few iterations I spent the time creating nice URIs from the beginning. It was great, Paso forums have really nice URIs, I’m very pleased with them, and proud of them. However it added lots of time to the development, and its still not done, The short names (what-fake-tan-is-best) need to come from somewhere, If I ask the users to type them in they are just going to bash away at the keyboard, and I’m going to get meaning less garbage. Auto generating them is a hard problem that will take a long time to get right. Already I’m thinking about how to solve a problem that not that important from a business value point of view. XP says that’s wrong.

My gut feeling is to think: sod it, this is still under development. I will have static URIs once the key features are fixed and done. But I have lots of cool things I want to add to Paso, and fighting with short-names and nice URIs are holding that up, the project becomes less fun, I get less motivated, and less productive. It’s a bad cycle. I know how I work, I really want nice URIs but I want a working site more. I want a site that people can use without caring about the URIs - to be honest, most people don’t. So I’m going to lay off on the nice URI mantra for now. And get the site working. Once that’s done, I will enjoy playing with it to get the URIs nice. And the dance community will enjoy using their new software, or at least, they will enjoy telling me what’s wrong with it :-)

Technorati Tags : , , , ,

Trackback URI | Comments RSS

Leave a Reply

For spam filtering purposes, please copy the number 1748 to the field below: