The Agile Software methodology is an iterative software development process that many product and service oriented companies take to achieve a faster turn-around and incorporate customer feedback at early stages of development. In the traditional waterfall model the tendency was to gather the requirements at the beginning in as comprehensive a manner as possible and then get down to the subsequent design, coding, testing and release stages. This was indeed a rigid process and any recommended changes would comparatively be an expensive affair.
Especially with regards to software, the end customers tend to conceptualize their requirement and have a lot of add-ons or deletions to suggest as they begin to see the product take shape. So in the agile process, the idea is to incorporate the customer into the process and reduce cost of change.
Each company formulates their sprint lengths or iterations that range from a minimum of 1-4 weeks. At the end of each sprint there is a potentially shippable upgraded version of the product which can be demonstrated to the client and even implemented for use until further upgrades/releases.
One other advantage with the process is that the close cooperation between the vendor and the customer can lead to higher levels of project success and higher customer satisfaction.
Considering the flip side – some of the cons of this process is –
that the customer may not be able to spend requisite time with the vendor in the development stage.
the development process can risk being placed on hold until there is a feedback received from the end user.
the process risks being a long drawn one with lack of clarity on the requirements which can lead to continuous incremental changes expected from the end-user.