Agile methodology is a conceptual framework for undertaking software development project. Software is developed in short time line called iterations. One iteration includes overall process of software development from user requirements, analysis, design, coding, testing and implementing. It may takes 2 to 3 weeks to complete one iteration. At the end of each iteration, the team re-evaluates project priorities.
Agile methods emphasize real time communications rather than written documents. It also emphasize working software as the primary measure of progress.
Principles of Agile Methods
Frequent deliverables , completely developed and tested
Close cooperation between business people and developers
Self-organizing teams
Changes can be done during the project progress
Continually improving the system flaws
Regular adaptations to changing circumstances
Continuous attention to technical exellence and good design.
Comparison with other methods (Waterfall model)
Waterfall model can result in substantial integration and testing effort toward the end of cycle , a time period typically extending from several month to several years. The size and difficulty of this integration and testing effort is one cause of project failure. Agile, in contrast produce completely developed and tested features every few weeks or months.
Extreme Programming
XP is the most prominent among the several agile methodology. XP uses the concept of user story which is the requirement of users gathered during the conversation between the developers and users. Developers then sort out the stories, estimating the points or how much time it will take to accomplish each story. Then, several user stories will be grouped in first iteration that may take several weeks. After that, they come out with the release plan depending on the project size. Upon completion of the first iteration, user can calculate the velocity or the total points of user stories completed. The next iteration's velocity must be less than or equal to the velocity of first iteration. At this point, user can roughly estimate how long they can completely deliver the system.
source: wikipedia