Thursday 11 October 2007

The agile approach

It seems that every conference I have attended this year has had several speakers passionately advocating an agile approach to web application development, something that a few years ago was the preserve of an evangelical geek sub-culture, now seems to have hit the mainstream with the next generation of Internet entrepreneurs.

I believe this is partly due to a shift in perspective, from seeing the web primarily as a data repository where the discipline of information architecture has primacy, to a vision of the web as an application platform which forces us to draw more heavily on interaction design and usability concerns in our designs. This has naturally favoured a shift towards development methodologies that focus on the user experience and which exploit usability testing to explore this realm.

Agile methodologies seem to align very well with the web 2.0 philosophy, centring around the customer as an integral part of the development process and allowing projects to evolve through usability testing and customer feedback rather than being up-front requirements driven. Agile also supports the rapid turnaround needed for web development, dovetailing effectively with the 'beta' culture and the drive to be first to market and hence to establish dominant market share. What would be difficult to implement in other businesses of packaged software development or critical b2b systems, is in its element with b2c projects over the Internet where rapid feedback and a 'release often' philosophy are underpinning a successful model of RAD development.

Partly this success seems also to be supported by the rise of a number mature web development frameworks such as Rails, often based around the MVC pattern, which support rapid prototyping and an approach which leverages the strengths of the HTTP protocol rather than necessitating reinvention (every web developer should be forced to read RESTful web services before developing any web app). This is all the more interesting for me in my work as we run a Microsoft stack throughout which is only now seeking to replicate this success within the .Net framework and is certainly aligned more with SOAP than REST.

Over the past few months my development team have been rolling their own agile methodology, combining elements from several sources but most closely aligned to extreme programming. This approach is now having its first outing to deliver a social networking project (currently in stealth mode) which we're due to launch at the start of next year. I will be acting as the customer proxy during development and will try and blog my learning from the inside as we give the new system a spin. Iteration one was this week and tomorrow will see our first bullpen as we evaluate the outputs and see how we've faired. I'll let you know how it goes...