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?
- 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 large.
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)
Work on high quality and immediate requirements.
Simplicity: Don’t try to add new innovations, just and just try to complete the task as soon as possible with simple steps.
Scrum and Sprint
Scrum is an agile project management 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.
The scrum team with the consent of the product owner prepares the product backlog.
A Sprint is an agile project management framework(methodology) that strictly follows the time to complete the project.
The sprint team prepares the spring backlog according to the scrum backlog.
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. The team Manager or sometimes the CEO of the software house prepares 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. The team Manager or sometimes the CEO of the software house sets the sprint’s goal for the team. The scrum team picks the user stories from the product backlog fulfilling those goals.
Example of Product backlog/scrum backlog and spring backlog
Feature Driven Development (FDD)
FDD is an agile methodology to focus on the designing & building of software features.
The five steps are:
- Develop an overall model
- Build a features list
- Plan by feature
- Design by feature
- Build by feature
Example of FDD
FDD is possible for product features or for small task features.
For example, “View all open tasks”, “Online Payment of University fee”, or “killing the enemy in the game.”