Agile Web Development

Martin Bauer
25/08/2004

Web development as an industry is barely 10 years old. Thanks to its youth and the dot-com boom, the industry is filled with a wide range of skills and mindsets, ranging from traditional software developers through to people with no development experience.There's also an impression that Web development is different -- less complex -- and therefore the old rules for software development don't apply. The end result is an immature industry with a vast range of approaches, none of which has yet emerged as the industry standard.

Although Web development is considered new, it's really an offshoot of traditional development with its own unique constraints. For example, it uses a new channel and client -- the Web and Web browser -- timeframes and solution lifespans are usually shorter; project sizes are often smaller; and there's a wide range of rapidly changing technologies.

It's clear that the traditional waterfall approach is not appropriate for Web development. Projects have to be delivered in the time that it would normally take to write requirements and draft specifications.Agile methodologies, however, are well suited to Web development.They are lightweight, easier to implement, and help to give focus and direction without the overhead of traditional approaches that are too rigid and cumbersome.

For example, Feature Driven Development (FDD) can easily be applied to Web development with great success.

Complexity

FDD is not complex; it is captured in five processes, each of which fits onto a single page. This is a great advantage in an industry with inexperienced people who resist applying anything too difficult to understand or use. This applies equally to clients who often have even less of an understanding of what's involved. Trying to apply a heavyweight methodology, such as RUP, for Web development is akin to using a sledge hammer to crush a walnut.

People

FDD clearly defines the roles and responsibilities required during each stage of the project. Although it might seem like common sense, this is something that is often missing from Web development projects. Each person may have a title, but he or she rarely has a clear definition of his or her role and responsibilities at each point in the project. This is particularly helpful in situations where there are people from different backgrounds, with different ideas of what each role is responsible for.

Timeframe

Traditional methodologies are aimed at larger projects on a longer timeframe. Time to market, especially on the Web, doesn't allow foryear-long projects; three months is more the norm. With FDD, the first process focuses on getting an overall model in a short time frame (e.g., one to two weeks). This quickly establishes the true scope of a project. If the project proves to be larger and more complex than expected, it can be broken down into smaller stages so that a working solution can be delivered to the market. This process also acts to educate the client to the true size of the project rather than leaving it until halfway through development, when it's much harder to manage.

Scale

The difficulty with scale is finding a process that can scale both ways. Normally, the question is: can a process scale up? With Web development, it's equally important for the process to scale down. Web development projects can range in size, but as the industry is still new, the size of projects tends to be smaller. As long as there's a project manager and a developer, which is often the case, FDD can work effectively. It becomes even more effective with teams of two or more developers, which allows for design and code inspections -- one of the most effective methods of defect removal.

Technology

FDD is technology independent; it is, however, object oriented, so there are some restrictions in which technology is appropriate. That being said, FDD will work well with many of the popular Web technologies, such as asp.NET and php. Even if the technology chosen is not object oriented, the simple approach of defining a project as a set of client-valued features is an effective way of managing development.

Summary

It's not surprising that an agile methodology such as FDD is so well suited to Web development. The entire agile movement is based onthe simple premise of finding better ways of developing software.The Web development industry, forced by the dot-com collapse, has no choice but to find better ways of managing development.What is surprising is that more people have not yet made the connection.