Agile Methodology
Nowadays we hear much about Agile Methodologies, especially in the context when we want to jumpstart any development quickly without the documentation part and where requirements are not very clear at the beginning.
To put it in simple words, this methodology is another style of software development that has been characterized by quick start on development, less documentation, change driven and iterative.

In other words, Agile software development is a conceptual framework for undertaking software development projects that can get developed fast without the strict classic guidelines of maintaining the entire life-cycle of the project.
All Agile methodologies generally engage in an iterative workflow and follow an incremental way to deliver software in short time-boxed situations. An iteration could be a small release of software or results being achieved at short intervals. Naturally in these time-boxed development situations, things like coding, design and testing will run in parallel and Iterations are typically a fixed length and this length will depend on the chosen methods under Agile. Each iteration can be referred as a cycle in this context of Agile Methodologies.
There are a number of agile software development methods, most of them give the same time-boxed iterations approach, which could typically last one to four weeks but again depends on the nature of the project. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation.
The most popular Agile methodologies in use today appear to be Extreme Programming (XP), Scrum, Feature Driven Development (FDD), Lean Software Development, Agile Unified Process (Agile UP or AUP), Crystal, and Dynamic Systems Development Method (DSDM).
Some of the principles behind the Agile 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
- Close, daily, cooperation between business people and developers
- Face-to-face conversation is the best form of communication
- Projects are built around motivated individuals, who should be trusted
- Continuous attention to technical excellence and good design
- Simplicity
- Self-organizing teams
- Regular adaptation to changing circumstances
Agile home ground:
- Low criticality
- Senior developers
- Requirements change very often
- Small number of developers
- Culture that thrives on chaos
Criticisms include:
- lack of structure and necessary documentation
- only works with senior-level developers
- incorporates insufficient software design
- requires too much cultural change to adopt
- can lead to more difficult contractual negotiations
Agile methods are sometimes characterized as being at the opposite end of the spectrum from “plan-driven” or “disciplined” methods. This distinction is misleading, as it implies that agile methods are “unplanned” or “undisciplined”. A more accurate distinction is that methods exist on a continuum from “adaptive” to “predictive”. Agile methods lie on the “adaptive” side of this continuum.
Some mistakenly believe that Agile methods avoid planning. This is a misconception, as Agile methods pay considerable attention to planning. However, Agile methods apply a planning process that is adaptive so as to accommodate inevitable change. Traditional, non-Agile methods tend to apply predictive planning that resists change and suffers the consequence of conflict between static plans and dynamic reality. Agile development has been widely documented as applicable to small, co-located development teams. 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, though there is no complete consensus on this point.







