Agile Model Used In Software Development
Tags: webdev, programming, softwareengineering, sre
Published: 2023-06-26 13:41:31

The agile model is the combination of the incremental and iterative model that focuses on product quality and adaptability and customer satisfaction by rapid delivery of working and fully functional software products. The agile process breaks the software product into small builds this build provides in iteration. Each iteration life cycle is two to three weeks, and every iteration involves the core functionalities of the system and a complete team working on these iterations in various areas.

- Planning
- Requirement Analysis
- Design
- Coding
- Unit Testing
- Acceptance Testing
- Agile Model Design
The agile model believes that every project needs to be handled differently and existing methods need to be checked that best suit software requirements. In agile development, each task is divided into chunks with a time frame for the successful delivery of a specific feature. An iterative approach is taken, and a working software build is delivered after each iteration each build is incremental and the final build is holding the features of the whole product according to the customer requirements.

## Agile Manifesto

### Individual and Interactions 
In agile development, self-organization and motivations are very important areas of interactions like co-location and pair programming.

### Working Software
The demos of the working software are the best way of communication in the software development with stakeholders of the software product instead of just describing the documentation with all stakeholders.

### Customer Collaborations
In software development, the requirements are very important for the development of the software product to gather complete, clear, and rich requirements for software to interact with customers.

### Responding to change
In software development responding to change is a challenge and the agile model is focused on quick changes in continuous development.

## Agile vs traditional development of SDLC

Agile is based on adaptive software development methods and whereas the other model follows the traditional approach based on the predictive approach.

### Predictive approach

In the Predictive approach development of the software product only depends on the requirements and analysis that’s done at the beginning of the software.

### Adaptive Approach

But in the Adaptive Approach to software development, there is no need for detailed planning is required. But we focus on clarity of the features that we want to develop there are feature development planning and product requirement changes dynamically. The product is tested repeatedly in the iteration so in the end quality product is produced.  

### Customer Interaction

Interaction in software development is the backbone of the agile methodology open communication and less documentation is the best and most typical feature of agile development.

### Applications

The agile model is widely used in the software development industry given below points explains the usage of the spiral model in the industry.

## Advantages of Agile Model

- A very realistic approach for software development.
- Promotes teamwork and cross-training. 
- Resource requirements are limited.
- The requirement can be gathered more accurately.
- Good software process model for the environment that changes steadily.
- Little or no planning is required.
- Easy to manage.
- Gives flexibility to developers.

## Dis-Advantages of Agile Model
- Not suitable for handling complex dependencies.
- More risk of sustainability, maintainability, and extensibility
- Depends heavily on customer interaction.
- Transfer of technology to a new team member or another team may be quite challenging due to a lack of documentation.
- Very minimum documentation is generated during the development of software.