“Agile” is not another buzz word used to describe the software development, in fact it tells of effective ways to develop software completely different from traditional ones which use an engineering process very similar to that used to build houses, bridges or cars.
Traditional methods bring to a set of stages: design, shaping, prototypical stage, development and testing. All these step need a lot of accuracy and a very hard work.
These traditional methods are to strict for developing a software, especially when it comes to design.
In the last decades, many planning had failed because it was used a traditional method which is not flexible enough to adapt to the real world. Traditional methods can’t cope with changing, this is the true. Traditional processes can’t follow the stream and are doomed to go over budget or over time.
On the other hand the “Agile” developing process has its added value in flexibility. In no cases the agile developing accuracy will be affected. This is something would be useful to say again and again as many people take “Cow-boy” or “Spaghetti Coding” for Agile approach. Whereas there is a huge difference between agile developing and the messy situation in which team leader and team members do whatever they have in mind.
Agile methods are so called because they are based on a working plan rapidly adaptable to changes. This means that, through the agile way, it’s possible to develop a software and improving it step by step while working on it.
The clients themselves would be able to check the plan while still running and so make proposals and suggestion. At the same time, the developing team gets to plan every stage very carefully, compare their opinions, face problems when occur, this way being able to test the project and make changes if required. This is all but improvising or “Cow-boy” and “Spaghetti Coding”. In fact Agile process is based on accuracy and flexibility.
The better known Agile methods are:
- Extreme Programming (XP)
- Scrum (http://www.controlchaos.com/)
- Adaptive Software Development (ASD) (http://www.adaptivesd.com/)
- Crystal Clear and other Crystal Methodologies (http://alistair.cockburn.us/crystal/wiki)
- DSDM (http://na.dsdm.org/)
- Feature Driven Development (http://www.featuredrivendevelopment.com/)
- Lean software development (http://www.poppendieck.com/)
Each of these has its relevant features and all can adapt to changes with the best result.

