Friday, August 20, 2004

Why I like agile software development

I'm a fan of agile software development methodologies, it says so on my business card. I believe they represent a better way to write software than more traditional heavyweight methods for a lot of projects. Another reason I have to admit I'm such a fan is because I've inherently a lazy man. Agile methodologies don't require you to write enormous requirements and specifications documents before you start coding which is something I'm quite happy to live without. Judging by the recent popularity of agile methodologies there are plenty of other lazy people out there who are just as happy about that as I am.

Some of them are even happier about that than I am, mainly because they think being agile means having no process at all. They think it's a green light to just hack away at code until it works giving minimal or no thought to requirements gathering, design, testing, and overall code quality.

Why do they think that? Well one reason is because when you read some of the agile methodology books that is the message you can come away with. That is, it's the message you can come away with if you choose to ignore all the high discipline practices that are also described in those same books.

I have known companies who claimed to practise development under the agile banner. In actually they were practising plain old seat of the pants code and fix development. They kidded themselves into believing they were practising agile development simply because they had no formal requirements or design specifications. While a lack of formal requirements and design specifications can be a characteristic of agile development projects it is also a characteristic of unplanned, undisciplined and chaotic code and fix type projects. The practices that prevent an agile development project from descending into a one of these chaotic code and fix operations are strict adherence to rigorous quality control processes. A project that does not implement these quality control processes is simply not practising agile development.

I can foresee an inevitable backlash against agile methodologies, just as there has been a backlash against heavyweight methodologies. One reason for this backlash will be that the reputation of agile development will have been tarnished by companies such as these who claim to be agile but in reality are following no discernible process. As their "agile" projects continue to fail and come in way over budget, agile methodologies will be unfairly seen as offering no improvement over code and fix development.

Practising an agile methodology is difficult, perhaps as difficult as practising more traditional heavyweight methodologies. In agile development all processes are essential to the final outcome so agile practitioners must maintain a high level of concentration at all times. Quality control processes in agile projects must be strictly adhered to without exception or the project will degrade into a hacking free for all. Several agile methodologies espouse development processes that are contrary to established ways of working such as pair programming where two programmers work at the one computer and test driven development where test cases are written before the actual application code.

If an organisation lacks the discipline to be able to implement a traditional heavyweight methodology then I believe it is questionable whether they will have the discipline to successfully implement an agile methodology.

So if it is as difficult to implement an agile methodology as it is to implement a traditional heavyweight methodology then what is the advantage in going agile?

In my opinion there are two main advantages. The first is that all processes in agile development have a direct influence on the final output of the project. If a process does not move the project closer to its final goal it will be eliminated. Consequently the final goal can be achieved in less time than using a heavier methodology.

The second advantage is the agile philosophy of always meeting customer expectations and accomodating their changing requirements at all phases of the development process. It acknowledges that customers can't possibly know exactly what they want at the commencement of a project. Rather than punish customers for their fuzzy requirements, agile development involves them throughout the development process to ensure that the end result matches their evolving expectations. An agile development team will never hear the words "That's not what I asked for", or "It's what I asked for, but it's not what I want." If they do they simply aren't practising agile development.

4 Comments:

At 9:53 PM, Anonymous Anonymous said...

It's always interesting to see how some projects give so much importance to agile way of programming(pair programming, Daily builds etc) but spends less time on requirement gathering. It's really a mystery to me how the time we spend on requirement can be waste even if it may evolve around time.
-Manoj Kumkumath

 
At 5:09 PM, Anonymous Anonymous said...

| Buy diazepam | Buy diazepam online | Cheap diazepam | Cheap diazepam online | Diazepam | Diazepam 10 | Diazepam discount | Diazepam dosage | Diazepam drug | Diazepam medication | Diazepam online | Diazepam overnight | Diazepam presciption | Diazepam side effects | Generic diazepam | Order diazepam | Recreational diazepam | Rectal diazepam | Valium diazepam | What is diazepam | Abuse carisoprodol | Buy carisoprodol | Buy carisoprodol online | Buying carisoprodol | Carisoprodol | Carisoprodol 350mg | Carisoprodol cheap | Carisoprodol discount | Carisoprodol dosage | Carisoprodol headache | Carisoprodol online | Carisoprodol overdose | Carisoprodol shelf life | Carisoprodol side effects | Carisoprodol tablets | Carisoprodol watson | Carisoprodol withdrawal | Effects of carisoprodol | Soma carisoprodol | Buy tadalafil | Cheap generic tadalafil | Cheap tadalafil | Cialis tadalafil | Discount tadalafil | Generic tadalafil | Generic tadalfil | Order tadalafil | Tadalafil | Tadalafil alternative | Tadalafil daily | Tadalafil generico | Tadalafil no prescription | Tadalafil online | Tadalafil softtab | Tadalafil soft tab | Tadalafil without a prescription

 
At 11:53 PM, Anonymous Anonymous said...

If you don't know where you're going, you'll probably end up someplace else

 
At 3:50 AM, Anonymous Anonymous said...

sex cam porn webcam cams web cam webcams nude webcam cams web cam webcams live webcam cams web cam webcams girls webcam cams web cam webcams free webcam cams web cam webcams chat webcam cams web cam webcams adult webcam cams web cam webcams sexcam free sex webcam web cam adult webcam web cam nude webcam web cam porn webcam web cam sex cam live sex webcam web cam sexcams web cam webcam girls sex cams sex webcam teen webcam web cam sex web cam sex webcams chat webcam web cam xxx webcam web cam

 

Post a Comment

<< Home