Scrum, Extreme Programming, Crystal and Adaptive Software Development are some popular agile software development processes. Others include Feature-driven Development, Dynamic Systems Development Method and Lean Software Development.
Scrum development occurs in a series of tasks, known as sprints, in iteration. Users are first consulted to determine system requirements. Activities to be carried out for a system to be functional are assigned to a sprint. A working system is then presented to the client at the end of a sprint for review. The software is released if all requirements are met; otherwise development continues.
Extreme Programming supports user feedback and dynamic user requirements. Developers and users interact to identify needs and come up with chunks of work. Frequent releases are made -- first on paper before actual coding occurs. Chunks of work are classified based on user priority, and high priority work is delivered first.
Adaptive Software Development is a four-step development process. The project proposal is first tabled and tests are carried out to determine viability. When the proposal is approved by the user, project requirements are determined. The requirements are validated using prototypes. Tests on individual modules and the whole system are conducted before releasing the software.
Crystal methodology offers a simple, lightweight and frequent release process of software development. Crystal addresses the unique needs and constraints of different projects through families such as Crystal Yellow and Crystal Orange.