So, in todays blog I’m going to be looking at the some of the alternatives available to Agile Software Development (ASD).
Personally, I love the Agile method of software development – all it’s features and characteristics. I don’t see how any other method could “better” it in any way!
ASD’s main “rival” if you like, is most definitely the Waterfall Model“
The Waterfall Model is a design process, often used in software development processes, in which progress is seen as flowing steadily downwards – just like a waterfall! It goes through the different phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance. It is most common in the construction and manufacturing industries. When the Waterfall Model first came on the scene it wasn’t specifically meant as a software development process but since no formal software development methodologies existed at the time, this hardware-oriented model was simply adapted for software development.
When comparing the two methods against each other, the focus is on the different practices that distinguish them from each other i.e – pair programming, TDD Versus functional spec, big up-front design etc.
Realistically, in practice the Waterfall method is a bad idea!
It is impossible for any non-trivial project to finish a phase of a software products lifecycle perfectly before moving to the next phases and learning from them.
For example, clients may not know exactly what requirements they need before reviewing a working prototype and commenting on it. They may change their requirements constantly. Designers and programmers may have little control over this. If clients change their requirements after the design is finalised, the design must be modified to accommodate the new requirements. This effectively means invalidating a good deal of working hours, which means increased cost, especially if a large amount of the project’s resources has already been invested in Big design upfront.
Another major alternative to ASD is The Spiral Model. This model involves combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts.
For me, those are the two main competitors of Agile Development. As I said at the start of this blog – I love ASD as a method and I don’t think that anything could change that! I researched in more detail the Spiral and Waterfall models in preparation for this blog but it’s safe to say my opinion hasn’t changed!