Agile Software Development

By Praveen V. Nair on April 30, 2009

Agile Software Development is said to be the methodology of today. The modern definition came up around 1990.  It is pretty much commonplace but still I would like to say something about it since it has started to be discussed a lot of late in the software industry.

Agile Software Development is a set of software development methodologies based on iterative development process. In this process, needs (requirements) and collaboration (from client to developer basically) work together. The Agile model is successful in most cases since the project management process is always monitored by the stakeholders. Also usually customers like this model much because there is possibility of applying changes while development. A set of best practices in software engineering is the base of agile methodology.

Well the concept of this method is still developing though its Agile Manifesto and is considered to be non ending. There are many Agile development methods. Most of such methods try to promote iterations, team work, collaboration and process adaptability thoughout the life of a project.

These methods break tasks into small increments with minimal planning. Iterations last usually between one to four weeks only. A full software development process is conducted for each iteration. (i.e., planning, requirement analysis, design, coding, testing etc.). Each iteration will be demonstrated to the respective people (eg: clients). The plus point of this process is that the customer can identify “is this what I need?” and the development team can reduce overheads by identifying the issues at the beginning itself. It is helpful for the customers (or customer representatives) to add changes quickly as the new change will not affect the whole development process like in the olden days.

Communication has a big role in this process. It forces face-to-face communication or videoconferencing (or similar technologies) sometimes even on a daily basis. Written documents are also important.

A simplified schematic for Agile Developments is:

image

To improve the quality of output, methods like Continuous Integration, TDD (Test Driven Development), Design Patterns, Code Refactoring etc. are also used.

Just like other methods, there are merits as well as demerits for the Agile method too. A detailed analysis of Agile Software Development is certainly out of the scope of this post. So I leave the topic open at this point.

Leave a Reply

Contact us!
SCROLL TO TOP