Presentation on Agile Methodology


Agile software development (also called “agile”) isn’t a set of tools or a single methodology, but a philosophy put to paper in 2001 with an initial 17 signatories. Agile was a significant departure from the heavyweight document-driven software development methodologies—such as waterfall—in general use at the time. While the publication of the “Manifesto for Agile Software Development” didn’t start the move to agile methods, which had been going on for some time, it did signal industry acceptance of agile philosophy. A recent survey conducted by Dr. Dobb’s Journal shows 41 percent of development projects have now adopted agile methodology, and agile techniques are being used on 65 percent of such projects.

Agile vs. waterfall: practical differences in methodology
The first software development methodologies were hardly methodologies at all, but a free-for-all as organizations struggled to profit from new computer-related technologies. As the industry learned more about developing software, certain techniques for managing and predicting the cost of software development projects came into use. The methodology that has dominated software development projects for decades is called “waterfall.” Winston Royce coined the term in 1970 to describe a serial method for managing software projects through the five stages shown below

Agile vs Waterfall


Adoption of waterfall has helped drive down the failure rate of software development projects, but even with rigorous project management and processes, a full 70 percent of software projects using this methodology fail to meet their objectives. To put this in perspective, waterfall software projects have less than half the success rate (66 percent) of going over Niagara Falls in a barrel.
     One of the most important differences between the agile and waterfall approaches is that waterfall features distinct phases with checkpoints and deliverables at each phase, while agile methods have iterations rather than phases. The output of each iteration is working code that can be used to evaluate and respond to changing and evolving user requirements. 
Waterfall assumes that it is possible to have perfect understanding of the requirements from the start. But in software development, stakeholders often don’t know what they want and can’t articulate their requirements. With waterfall, development rarely delivers what the customer wants even if it is what the customer asked for.

    Agile methodologies embrace iterations. Small teams work together with stakeholders to define quick prototypes, proof of concepts, or other visual means to describe the problem to be solved. The team defines the requirements for the iteration, develops the code, and defines and runs integrated test scripts, and the users verify the results. Verification occurs much earlier in the development process than it would with waterfall, allowing stakeholders to fine-tune requirements while they’re still relatively easy to change.
  Link to the presentation, Click here


No comments:

Post a Comment