Agile Model in software engineering, agile model advantages, and disadvantages, when to use agile model
What is an agile model?
Agile model is a combination of both incremental and iterative model and promotes more involvement of customer during the software development. The agile basic purpose is to be rapid in all activities.
The software is divided into small components. Each component is developed and validated by the customer if there is any problem is software component then another iteration is performed on the component. Here iteration means that design, coding, and testing are performed again and again until accurate the development of accurate software component.
When the first component is ready and fulfills the customer requirements then another component of the same software is developed in increment 2. Similarly, different iterations of design, code, and test are possible for component 2 of the software in increment 2.
What are advantages of the agile model?
- Supports customer involvement and customer satisfaction
- Strong communication of software team with the customer.
- Focus on user and customer
- Rapid development
- Allows changes easily
- Cost saving
- Promotes team works
- Fast delivery
- Little planning required
What are disadvantages of the agile model?
- Not suitable for large projects
- Mainly depends on the customer, and most of the time customer is confuse and the customer is not clear about the requirements. In such a situation customer creates the problem for the software team.
- Lack of documentation is a problem if software team is changed and software needs to be maintained after some years.
- Senior and highly paid developers are required because they are the only persons who can take correct decisions by having an eye for a little documentation.
- Does not have a full support for documentation and design.
When to use agile model?
- When frequent changes are required
- When highly qualified and experienced team is available
- When a customer is ready to have a meeting with software team all the time.
- When project size is small.
What are different agile process models?
- Extreme Programming (XP)
- Agile Modeling (AM)
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development (FDD)
- Adaptive Software Development (ASD)