Agile methodologies views software development in a different perspective. It does not compromise on quality but at the same time makes it interesting for developers and architects.(This I personally feel the waterfall model fails to do.)
I would breifly describe the striking concepts of Agile and then give the links to better and exhaustive documents for you to explore. I strongly feel that this way of software development should be interesting and also is worth experimenting on. Test Driven Development
Write the test cases first and then start developing. Tools like JUNIT are used here.
Iterative Software Development
Software is developed in cycles.
Every cycle produces a production quality, running, integrated software although with a limited functionality.
Typical iteration cycle even for large-scale projects ranges from 2 to 3 weeks.
Upfront Design
Customer is a part of the development team.
No Elaborate design.
Design for a small functionality is discussed and the development is started right away.
The design actually happens while coding and integrating.
Lot of code gets eliminated in this process but the final product is of good quality. (OS’ like Unix and Linux was designed this way!)
Design patterns are used extensively during implementation.
What about quality?
There is a quality team involved in every iteration.
They check the code, how it integrates and also the test cases.
No Elaborate Documentation.
Documentation is done but it is done to the minimum.
UML is used.
The code is written in such a way that the variable names,method names etc are self-explanatory.