Monday, October 1, 2007

Agile Software Development Method:

Agile Software Development is a conceptual framework for undertaking software engineering projects that embraces and promotes evolutionary change throughout the entire life-cycle of the project. There are a number of agile software development methods; most attempt to minimize risk by developing software in short time boxes, called iterations, which typically last one to four weeks. An agile software project intends to be capable of releasing new software at the end of every iteration particularly when the software is web-based and can be released easily.
Agile methods emphasize real-time communication, preferably face-to-face, over written documents. Agile methods produce very little written documentation relative to other methods.

Principles behind Agile methods
Some of the principles behind the Agile Manifesto are:
· Customer satisfaction by rapid, continuous delivery of useful software
· Working software is delivered frequently (weeks rather than months)
· Working software is the principal measure of progress
· Even late changes in requirements are welcomed
· Simplicity
· Regular adaptation to changing circumstances

Suitability of Agile methods
From a product perspective, agile methods are more suitable when requirements are emergent and rapidly changing; they are less suitable for systems that have high criticality, reliability and safety requirements.
The most important factor is probably project size. As size grows, face-to-face communication becomes more difficult. Therefore, most agile methods are more suitable for projects with small teams, with fewer than 20 to 40 people.
Agile development is expected to be particularly suitable for teams facing unpredictable or rapidly changing requirements.

Agile methods
Some of the well-known agile software development methods:

· Extreme Programming (XP)
· Scrum
· Agile Modeling
· Adaptive Software Development (ASD)
· Crystal Clear and Other Crystal Methodology
· Dynamic Systems Development Method (DSDM)
· Feature Driven Development (FDD)
· Lean software development
· Agile Unified Process (AUP)

No comments: