Waterfall development model divides the application development process into the following distinct phases
- Requirement Analysis
In contrast to the waterfall model ,in agile application is delivered in iterations.After each iteration there is a working software which contains new features.
Following are the advantages of Agile methodology
Changes are easy to accommodate
Waterfall model is rigid. A phase should be completed before next phase can begin.So the first phase should be completed before the next phase can begin.The main problem with this approach is that there is no scope whatsoever to accommodate future changes.So far example once a design phase is completed and implementation phase has started ,there is not much scope for changes in the design.
This is the most important advantage provided by Agile.Agile development model supports further changes.Requirement changes can be easily accommodated in any stage of application development.
Early delivery of working software
Another advantage offered by the Agile model is that a working software is developed early.This gives customers the opportunity to verify and give their feedback.
Software developed using the waterfall model on the other hand is available only after all the phases are complete.So there’s not much scope for the customers feedback in the project lifecycle.Its kind of black box as the customer can see all or nothing.Either customer can access all the features or none of the features.
Defects are discovered early
Unlike waterfall model in which testing is done after implementation phase,in Agile model testing is done in each iteration.This means that software is more robust.
Scope for improvement
In Agile process team can learn from their mistakes and correct in the future development stage.For example in scrum process if there are any challenges in an iteration then team can learn from it in the retrospective.These can be rectified in the future iterations.
Common Agile Frameworks
Agile consists of a group of frameworks.A framework should be chosen based on the project requirement.
Following are some of the common agile frameworks
Extreme Programming(XP) Focus on technical aspects of the application
Lean software development Focus on eliminating waste
Scrum Focus on product delivery
Kanban Focus on product delivery without overburdening the developers
Crystal Based on the concept that each project may require a tailored set of processes.
Dynamic Systems Development Method which is based on the MSCW for requirements
- M Must have requirements
- S Should have requirements ,if at all possible
- C Could have requirements, but not critical
- W Won’t have in the current version