The meaning of Agile is swift or versatile. Agile model is a software development model which involves the continuous iteration of development and testing until the product meets the user requirements. The project is broken into small iterations, each iteration involves a team who work through a full software development life cycle that includes planning, requirements analysis, design, coding and testing before a working product is demonstrated to the client.

Phases of Agile Model

Agile model has the following phases-

Phases of Agile Model
Phases of Agile Model

Requirement Gathering

In this phase, all the requirements must be defined regarding the project. You should explain business opportunities and plan the time and effort needed to build the project.

Requirement Analysis

The process of gathering the software requirements from client, analyzing and documenting them is known as requirement analysis.

Design

The design phase deals with transforming the client's requirements into a software architecture.

Coding

In this phase, the developer does the actual coding and convert the software architecture into a source code.

Unit Testing

Each component is tested thoroughly and separately in this phase, once the coding is done and the modules are released. If any defects are found, it is assigned to the developer to get them fixed.

Acceptance Testing

Finally, the client checks the application whether it meets his/her requirement or not. If yes, it is accepted by the client.If not, it again undergoes the whole development process.

Advantages

Agile model involves rapid, continuous delivery of useful software to the customer and reduces the total development time of any project. Since the customer and the stakeholder both have a fair idea about the development of the software, so any change in the system can be addressed at any phase of development. This also involves less chances of errors as the development involves a direct interaction between them.

Disadvantages

As the development of software using agile model depends completely on the customer interaction, so the team may move in wrong direction if the customer is not clear or not able make the team understand what it wants. This model also includes lack of any formal documents, due to which it will be challenging for a new team to work upon the existing system and it also may lead to confusion and important decision taken may be misinterpreted by the team members at any moment of time.  

Conclusion

Like everything, agile model has its pros and cons and it entirely depends upon the developer which features are more likely to be focused based upon the customer's demonstration. If the customer has the clear idea about the system, then the developer can proceed using this model. If not, he may use some other models to develop the system.