Agile model is a type of Incremental model which results in small incremental releases with each release building on previous functionality.
- Iterative approach is taken and working software build is delivered after each iterations.
- The tasks are divided to time boxes (small time frames) to deliver specific features for a release.
- Each release is thoroughly tested to ensure software quality is maintained.
- Used for time critical applications.
- Each build is incremental in terms of features; the final build holds all the features required by the customer.
- Extreme Programming (XP) is currently the most well known agile development life cycle model.
Here is a graphical illustration of the Agile Model:
Fig: The Agile model of Software development lifecycle
Advantages of Agile model
- Customer satisfaction by rapid, continuous delivery of useful software.
- People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
- Working software is delivered frequently (weeks rather than months).
- Face-to-face conversation is the best form of communication.
- Close cooperation between business people and developers.
- Continuous attention to technical excellence and good design.
- Regular adaptation to changing circumstances.
- Even late changes in requirements are welcomed
Disadvantages of Agile model
- In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
- There is lack of emphasis on necessary designing and documentation.
- The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
- Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
When to use Agile model
- When new changes are needed to be implemented. New changes can be implemented at very little cost because of the frequency of new increments that are produced.
- To implement a new feature the developers need to lose only the work of a few days, or even only hours, to roll back and implement it.
356 total views, 1 views today
A Soon-to-be Computer Engineer by profession, he has profound devotion to add Data Scientist as a prefix to his name. He’s been to the nooks of the web (at least of the surface web) and planning to add some real figures in his pocket!