Benefits of agile software development
Incremental deployment: minimize time-to-market
Since agile processes deliver working software at the end of each iteration (typically around 1-4 weeks) and requirements are prioritized by business value, the organization might choose to release a version of the product as soon as a Minimum Marketable Feature (MMF) has been completed. This way the organization may start to perceive real benefits from the new product far before the development is completed.
Adapt to change
Agile processes are designed to accept and respond to business changes, such as actions done by competing organizations. By means of the dramatic reduction in the feedback cycle length, it possible to incorporate internal customers (i.e. product management; marketing and sales; etc.) and end users feedback into the development plan rapidly and without significant change in cost. Having an agile software development process in place usually represents a strong competitive advantage with respect to other companies using more traditional development methods.
Building quality in
The key of an incremental deployment strategy is to build an automated regression test harness and the discipline to follow best engineering practices such as: continuous integration; test driven development; code refactoring; coding standards; evolutionary design among others. Through the use of these practices the team is able to produce better code, easier to maintain and with less defects. On the other side, permanent collaboration with business representatives helps the team to deliver software that is aligned to the business needs.
Agile is a lightweight development process based in a just in time strategy. By eliminating extra processes and extra inventory, the product is developed faster and the cost of adapt to change is minimized. Through a continuous improvement process, the team is encourage to constantly evaluate and adapt the process and the product in order to maximize the value delivered to the customer.