Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. It is an iterative, team-based approach to development, and the tasks are divided into time boxes (small time frames) called “sprints.” to deliver specific features for a release. Each sprint has a defined duration (usually in weeks) with a running list of deliverables, planned at the start of the sprint. Deliverables are prioritized by business value as determined by the customer. If all scheduled work for the sprint cannot be completed, work is reprioritized, and the information is used for future sprint planning.
An iterative approach is taken, and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.
AGILE MANIFESTO PRINCIPLES
Individuals and interactions
In Agile development, self-organization and motivation are essential, as are interactions like co-location and pair programming.
Demo working software is considered the best means of communication with the customers to understand their requirements, instead of just depending on documentation.
As the requirements cannot be entirely gathered at the beginning of the project due to various factors; continuous customer interaction is significant to get proper product requirements.
Responding to change
Agile Development is focused on quick responses to change and continuous development.
Agile methods are being widely accepted in the software world recently. However, this approach may not always be suitable for all products. Here are some pros and cons of the Agile model.
- Is a very realistic approach to software development.
- It promotes teamwork and cross-training.
- Functionality can be developed rapidly and demonstrated.
- Resource requirements are minimum.
- Suitable for fixed or changing requirements
- It delivers early partial working solutions.
- It is an Excellent model for environments that change steadily.
- Minimal rules, documentation readily employed.
- It enables concurrent development and delivery within an overall planned context.
- Little or no planning required.
- Easy to manage.
- It gives flexibility to developers.
- It is not suitable for handling sophisticated dependencies.
- More risk of sustainability, maintainability, and extensibility.
- An overall plan, an active leader, and an agile PM practice is a must without which it will not work.
- Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
- Depends heavily on customer interaction, so if the customer is not clear, the team can be driven in the wrong direction.
- There is a very high individual dependency since there is minimal documentation generated.
- Transfer of technology to new team members may be quite challenging due to lack of documentation.
The agile is a perfect choice for your Software Development IF:
- Customer’s availability is throughout the project.
- The Scope of Project is not very well defined.
- There isn’t a clear vision of what the final product should look like.
- The quick production is more important than the quality of the product.
- The product is intended for an industry with fast-changing standards, like software development.
- You have skilled developers available, who are adaptable and able to think independently.