Agile Model is one of the widely used software development process models. Agile Model is iterative and incremental. Software development phases overlap each other in the agile model.
Agile Model is mainly focused on,
- Collaboration
- Interaction
- Customer Satisfaction
- Speedy product delivery
- Respond to Change
In Agile Model, software is built as an incremental build through iterative cycles.
For instance, ABC client is approaching XYZ company with a list of three major requirements. After discussion, requirements are prioritized based on the features requested by the ABC client.
Prioritized requirements list is discussed with the software team and they start to work on the first requirement in the iteration one. Each iteration lasts about one to three weeks. During that time frame, the requirement is analyzed, designed, developed, tested and presented to the client for their feedback.
If the client has no issues, they continue to work on the second requirement in the next iteration and the software will have incremental builds. If the client has suggested some changes or feedbacks, revision or alteration for the first requirement takes place while working on the second requirement. The client may also add more requirements to the list if they wanted to.
During the iteration two, the second requirement is analyzed, designed, developed, tested and presented to the client for their feedback. And the process continues until the final software build has all the requirements requested by the client. Agile process is incremental and iterative throughout the software development.
Agile Manifesto principles are,
- Individuals and Interaction – Individuals self-organization and motivation are as important as interactions like pair-programming and co-location.
- Working Software – Instead of depending on documentation, working software can be used to demo to the client their feedback and acceptance.
- Customer Collaboration – In Agile, Requirements will not be clear at the start of the project, so continuous collaboration with the client is very important to successfully deliver the working software product.
- Responding to change – Agile is focused on responding and adapting to the changes quickly for continuous development of the software.
Read: Waterfall Model
- Scrum
- Kanban
- Crystal Clear
- Extreme Programming (XP)
- Adaptive Software Development (ASD)
- Feature Driven Development (FDD)
- Iterative and Incremental Model
- Suitable for changing requirements
- Promotes Collaboration
- Minimal planning is required
- Less documentation
- Flexibility and Adaptability
- Easy to manage
Disadvantages of Agile Model
- Challenging
- More risk due to dependencies
- Complex due to lack of documentation
- Strict product delivery timelines
- Leader is required to manage all the work
- Hard to estimate the work at the beginning
Keep your friends informed by sharing!
Here are some hand-picked articles that you should read next 🙂
- Software Development Life Cycle
- Software Testing Life Cycle
- Verification Vs Validation
- Quality Assurance Vs Quality Control
In my next post, will learn about Software testing types.