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.
- 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.
So shall we get Agile….