Q. How is Agile development different from traditional models?
Agile development can be applied to any kind of project, but it is specially suited to software development. This software development methodology is best explained by comparing it with the way in which a traditional project is planned:
All requirements are known and specified.
• All roles are assigned, specific to project phase or stage.
• The stages of the project, and their time-frames, are defined.
• The end product is expected to match the original specifications.
>> See also: Scope creep
The most common traditional software developments models are the Waterfall model and the V-Model. These are sequential, and in a sense, monolithic. In the former, the project goes from one stage to the next such that progress is made at each stage towards the end result. While the V-Model is similar, the post-coding stages make use of the knowledge and experience gained during pre-coding.
Problems with such approaches arise when all requirements cannot be known; when one stage of work might change the scope of another; when information must be exchanged between groups working on different stages; and so on. In software development, these broad issues are, more often than not, the norm.
With agile development, processes and productivity are optimized by tackling the project in a series of small steps. Each step in the series results in a functional piece of work. The work is reviewed, requirements are re-assessed, the overall direction of the project is realigned, if necessary, and work continues into the next step.