Open In App

Agile Development Models – Software Engineering

In earlier days, the Iterative Waterfall Model was very popular for completing a project. But nowadays, developers face various problems while using it to develop software. The main difficulties included handling customer change requests during project development and the high cost and time required to incorporate these changes. To overcome these drawbacks of the Waterfall Model, in the mid-1990s the Agile Software Development model was proposed.

The Agile Model was primarily designed to help a project adapt quickly to change requests. So, the main aim of the Agile model is to facilitate quick project completion. To accomplish this task, agility is required. Agility is achieved by fitting the process to the project and removing activities that may not be essential for a specific project. Also, anything that is a waste of time and effort is avoided. 



The Agile Model refers to a group of development processes. These processes share some basic characteristics but do have certain subtle differences among themselves.

Agile SDLC Models/Methods

All Agile Software Development Methodology discussed above share the same core values and principles, but they may differ in their implementation and specific practices. Agile development requires a high degree of collaboration and communication among team members, as well as a willingness to adapt to changing requirements and feedback from customers.



In the Agile model, the requirements are decomposed into many small parts that can be incrementally developed. The Agile model adopts Iterative development. Each incremental part is developed over an iteration. Each iteration is intended to be small and easily manageable and can be completed within a couple of weeks only. At a time one iteration is planned, developed, and deployed to the customers. Long-term plans are not made. 

Steps in the Agile Model

The agile model is a combination of iterative and incremental process models. The steps involve in agile SDLC models are: 

Steps in Agile Model

1. Requirement Gathering:- In this step, the development team must gather the requirements, by interaction with the customer. development team should plan the time and effort needed to build the project. Based on this information you can evaluate technical and economical feasibility.

2. Design the Requirements:- In this step, the development team will use user-flow-diagram or high-level UML diagrams to show the working of the new features and show how they will apply to the existing software. Wireframing and designing user interfaces are done in this phase.

3. Construction / Iteration:- In this step, development team members start working on their project, which aims to deploy a working product.

4. Testing / Quality Assurance:- Testing involves Unit Testing, Integration Testing, and System Testing. A brief introduction of these three tests is as follows:

5. Unit Testing:- Unit testing is the process of checking small pieces of code to ensure that the individual parts of a program work properly on their own. Unit testing is used to test individual blocks (units) of code.

5. Deployment:- In this step, the development team will deploy the working project to end users.

6. Feedback:- This is the last step of the Agile Model. In this, the team receives feedback about the product and works on correcting bugs based on feedback provided by the customer.

The time required to complete an iteration is known as a Time Box. Time-box refers to the maximum amount of time needed to deliver an iteration to customers. So, the end date for an iteration does not change. However, the development team can decide to reduce the delivered functionality during a Time-box if necessary to deliver it on time. The Agile model’s central principle is delivering an increment to the customer after each Time-box. 

Principles of the Agile Model

Characteristics of the Agile Process

When To Use the Agile Model?

Advantages of the Agile Model

Disadvantages of the Agile Model

Questions For Practice

1. Which of the following is not a key issue stressed by an agile philosophy of software engineering? [UGC NET CS 2017]

(A) The importance of self-organizing teams as well as communication and collaboration between team members and customers

(B) Recognition that change represents an opportunity

(C) Emphasis on rapid delivery of software that satisfies the customer

(D) Having a separate testing phase after a build phase

Solution: Correct Answer is (D).

2. ​Which of the following is not one of the principles of the agile software development method? [UGC NET CS 2018]

(A) Following the plan

(B) Embrace change

(C) Customer involvement

(D) Incremental delivery

Solution: Correct Answer is (A).

FAQs On Agile Model

Q.1: What is Product Backlog in Agile?

Answer:

Product Backlog simply refers to the list of features, and tasks that are to be developed in Software Product. These things are continuously monitored and managed by the Product Owner.

Q.2: Is it possible to use Agile Model for large and complex Projects?

Answer:

Yes, it is possible to use for Large and Complex Projects, but we need to change some adaptations for using it like we have to add some frameworks like SAFE (Scaled Agile Framework) and LeSS (Large-Scale Scrum) to use large and complex projects.

Q.3: What is Sprint Review in Agile Model?

Answer:

Sprint Review is simply a type of meeting that is held at the end of each sprint in the Agile Model. In this meeting, the development team details the work done to the stakeholder and Product Owner.

Related Posts:


Article Tags :