Agile Model in software engineering, agile model advantages, and disadvantages, when to use the agile model.
What is an agile model?
The agile model is a combination of both incremental and iterative models and promotes more involvement of customers during 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 in the 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 components.
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 the advantages of the agile model?
- Supports customer involvement and customer satisfaction
- Strong communication of the software team with the customer.
- Focus on user and customer
- Rapid development
- Allows changes easily
- Promotes team works
- Fast delivery
- Little planning required
What are the disadvantages of the agile model?
- Not suitable for large projects
- It mainly depends on the customer, and most of the time the customer is confused and the customer is not clear about the requirements. In such a situation the customer creates a problem for the software team.
- Lack of documentation is a problem if the 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.
- It does not have full support for documentation and design.
When to use the agile model?
- When frequent changes are required
- When a highly qualified and experienced team is available
- When a customer is ready to have a meeting with a software team all the time.
- When project size is small.
What are the different agile methodologies?
- Extreme Programming (XP)
- Agile Modeling (AM)
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development (FDD)
- Adaptive Software Development (ASD)
Scrum and Sprint
Scrum is an agile project management framework(methodology), so it is used for software projects that need to be completed within 1 to 4 weeks. The scrum team guides the sprint team members to complete the project according to customer needs.
A Sprint is an agile project management framework(methodology) that strictly follows time to complete the project.
Product backlog VS Sprint backlog
The product backlog can be an information table indicating the priority list of all the requirements given by the user. Team Manager or some times the CEO of the software house prepare the product backlog. He prioritizes the requirements based on the customer’s feedback or by keeping in view his personal experience. The functional requirements are represented with user stories.
The sprint backlog is the subset of the product backlog. Team Manager or some times the CEO of the software house set the sprint’s goal for the team. The scrum team picks the user stories from product backlog fulfilling those goals.