Agile Model is combination of iterative and incremental process model with focus on customer satisfaction. It allows companies to develop a quality software in small and quick segments. In this post, we will discuss what is Agile Model Methodology, its core values, some popular Agile Model Methodologies (like Scrum, XP, DSDM & Lean), their advantages and disadvantages.
What is Agile Model Methodology
It is an umbrella term that describes a set of practices and principles for software development.
Agile Methodology promotes the continuous iteration of building and testing throughout the software development life cycle of the project.
Fig. 1 – Agile Software Development Model
In English Agile means, “to move quickly and easily”. The same is prime focus of Agile Model also.
In Agile model, the whole project is divided into small incremental builds. Each iteration lasts from one to three weeks. Every iteration works on various areas like:
- Planning
- Requirement Analysis
- Design
- Building
- Testing
Core Values of Agile Model
It focuses on four core values:
- Individuals and Interactions – In agile methodology, individual motivation and interactions play an important role.
- Working Software – A working software is needed to understand the requirements of the customer, documentation alone does not help.
- Customer Collaboration – In the agile methodology, the full requirements are not collected at the beginning, so continuous interaction with customer is very important to get hold of proper requirement.
- Responding to change – In agile model, continuous development of the project and quick response to change is possible.
Fig. 2– Agile Model Core Values
Popular Agile Model Methodologies
Each Agile model methodology is different from one another in following the specific approach, but they all share a common vision. They all focus on continuous planning, continuous debugging, continuous integration and complete delivery of the project and software.
Some of the popular agile model methodologies are:
- Scrum
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
- Lean Software Development
Fig. 3 – Agile Model Methodologies
Scrum – Agile Model Methodology
It is one of the most popular, light weight agile methodology with capability of controlling and managing all types of incremental projects. It helps in better organization of teams.
In this agile model methodology, “Scrum Master” is responsible for the team meetings and removing any roadblocks, if any. The “Product Owner” identifies and prioritize system functionality by working closely with the team in form of “Product Backlog”.
It is a repository/store where all the requirements are tracked and kept in order to be released successfully.
Fig. 4 – Scrum – Agile Model Methodology
Scrum Model Process flow
The process flow in Scrum Model is as follows:
- Each iteration of scrum is called as Sprint
- Product Backlog is a list where all the requirements are tracked
- At every sprint, product backlog items are selected and sent to sprint backlog
- Team works on the important sprint backlog, and checks for routine work
- In the end of sprint cycle, functional product is delivered
Extreme Programming (XP) – Agile Model Methodology
It is one of the most prominent Agile model software development methodologies. XP focuses in short development cycles and frequent releases resulting in low change in cost.
It emphasizes on continuous planning, continuous testing, customer involvement and frequent feedback to deliver working software at quick intervals, every 1-3 weeks.
Extreme Programming (XP) Model Values
The original XP model was based on four values. A new value (Respect) was added in the second addition of Extreme programming. So, the five values are:
- Communication
- Simplicity
- Feedback
- Courage
- Respect
Fig. 5 – Agile Development Model – Extreme Programming (XP)
Dynamic Systems Development Method (DSDM Agile Model)
It is a Rapid Application Development (RAD) approach to software development. The main focus of DSDM is active communicate early and continuously, frequent delivery, empowered teams and integration testing.
Techniques used in Dynamic Systems Development Method (DSDM)
Techniques used in DSDM are:
- Time Boxing
- MoSCoW Rules
M – Must have requirements
S – Should have it all possible
C – Could have but not critical
W -Won’t have this time, but later
- Prototyping
Dynamic Systems Development Method (DSDM) Phases
The DSDM Agile model methodology consists of seven phases:
- Pre-project phase
- Feasibility Study
- Business Study
- Functional Model Iteration
- Design Iteration
- Implementation
- Post-project phase
Fig. 6– Agile Development Model – DSDM
Lean Software Development Model
It is based on the principles that can be applied to the software development to increase speed of software development, to decrease programming effort and defect rates by one-third.
It focuses the team on delivering Value to the customer.
Principles of Lean Software Development Model
The main principles of Lean Software Development Model are as follows:
- Eliminating Waste
- Amplifying learning
- Late Decision Making
- Fast Delivery
- Team Empowerment
- Building Integrity
- View application as a whole
Fig. 7– Agile Development Model – Lean Principles
Advantages of Agile Model
The advantages of Agile Model includes:
- Focuses on Business Value – Agile understands what is important to the client’s business and delivers the features which benefit them with most business value.
- Transparency – In Agile model, the client is involved in whole project from iteration panning to frequent deliveries. So, they can see the work in progress software also.
- Increased Customer Satisfaction – As the client is involved in each step of the project, which gives an insight to the client and trust on the team’s ability to deliver a high-quality software.
- Predictable and early delivery – By using the time-boxed principle, new features are incorporated and delivered frequently with high level of predictability.
- Easy to Manage – Easy to manage as minimal planning is required.
- High quality – High-quality software is delivered frequently (weeks rather than months).
- Immediate response – Change requests are handled and responded immediately.
Disadvantages of Agile Model
The disadvantages of Agile Model includes:
- Lack of designing and documentation can create problems.
- The project can take a back seat if the customer representative is not clear, what they are looking for as a final outcome.
- High customer engagement and interaction required.
- New requirements may conflict with the existing system.
Also Read: Software Development Life Cycle (SDLC) – Importance, Various Phases & Explanation Barcode Number System – Types, Structure, How it works, Application, Advantage & Disadvantage Embedded System – Characteristics, Types, Advantages & Disadvantages Big Data – Categories, Attributes, Applications & Hadoop