What is Agile Methodology in SDLC

What is Agile Methodology in SDLC

2019 / 10 / 22

Agile, SDLC

There are many phases in the Software Development Life Cycle. Starting with Requirement Phase, Designing, Coding, Testing and User Acceptance Testing.

But in SDLC, where does testing actually start? Earlier testing was considered as the last step before the installation of the system. This actually delays the delivery of the software. But WHY? Discovery of errors later in the SDLC, leads to more rework for the coders, as they have to add changes to mitigate the errors, then again testing is conducted, to check if changes have affected other features in the system.

Nowadays, testing usually starts at the beginning when the requirement gathering phase starts. QA’s are meant to do a complete analysis of the requirements, including the impact analysis.

What is Agile Methodology?

You must be wondering what is Agile Methodology. Agile, in simple terms means to accept change and implement it.

Agile Methodology is basically the combination of incremental and iterative process model where process adaptability and customer satisfaction by rapid delivery of the software are focal points.

The thumb rule behind Agile Methodology is to break the product into small incremental builds. These incremental builds are known as the story in SCRUM agile methodology. These builds are delivered in iterations to the customer. Where the duration of each iteration varies from one week to a month.

Every iteration involves teams working on various areas like:

  1. Planning
  2. Requirement Analysis
  3. Design
  4. Coding (Development)
  5. Testing
  6. User Acceptance Testing

At the end of each iteration, a working product is displayed to the customer and stakeholders. If there is any discrepancy, changes are prioritized. So, before proceeding to the next iteration, changes are first catered.

The most popular agile methods are SCRUM, Extreme Programming, Rational Unified Process, Crystal Clear, Adaptive Software Development, Dynamic Systems Development Method and many more. These are now collectively referred to as Agile Methodologies after the publication of the Agile Manifesto in 2001.

The basic principle of Agile Manifesto include:

  1. Individuals and interactions over processes and tools
  2. Working Software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan.

The iterative approach is taken and working software is delivered after each iteration. Each build is incremental in terms of features, so the final product will consist of all the features required by the customer.

What is the difference between Agile Methodology and Traditional SDLC Models?

S.No. Traditional Model Agile Model
1 The development process is phased, where phases are much longer than iterations. It is an iterative approach that is used in SDLC to deliver the product at a much faster rate.
2 Traditional Models have a fixed series of steps: Planning, Design, Coding, Testing, User Acceptance Testing. Thus Planning is done in the beginning only. After approval of the plan, if there are any changes, they can be catered at the end only. Agile Methodology is a much more flexible approach, as it can change the workflow based on any new request for change.
3 Customer involvement is only in the initial phases, where requirement gathering is done. After approval, the requirements are considered final and other phases are carried out accordingly. Since this is an incremental approach, customer involvement is during the entire lifecycle. After every increment is ready, it is shown to the customer, if it is approved it is delivered, else changes are noted and carried out in the next step.
4 The project plan is prepared before starting the system development. The project is delivered in small increments. When the module is prepared, a demonstration is given to the client. If accepted, the increment is delivered, and the next increment is started.
5 It believes in one time delivery of the product. It believes in increment delivery of the product.
6 In this, there is a concept sole- ownership, where ownership lies with the project manager. In this, there is a concept of shared ownership, i.e. every team member is equally responsible for individual contribution.
7 Traditional Models are considered more secure as they are plan oriented, well planned. Agile methodologies are considered less secure and unstructured as there is less planning.
8 Errors are discovered at the end when the whole project is tested. If any error is discovered or any changes need to be made, the whole project needs to be started from the beginning. Errors can be fixed during the project. As the project is delivered in increments, any discovered error can be catered immediately
9 Testing is done only at the end, after successful completion of the development phase. Each iteration involves a regression testing phase. Thus, testing is done during each iteration before demonstrating the iteration product to the customer.
10 Here testers and developers work together. Testers work independently from developers.

Pros of Agile Methodology

The advantages of Agile Methodology includes:

  1. Agile Methodology promotes teamwork and cross-training. It encourages the involvement of team members throughout the lifecycle.
  2. This gives flexibility to the developers.
  3. Easy to manage
  4. Agile methodology is suitable for flexible and fixed requirements.
  5. Since Agile Methodology is an incremental model so, functionality is delivered in increments to the customer.
  6. This is the best-suited model for environments where requirements keep changing.
  7. Enables concurrent development and delivery of the product in increments.

Cons of Agile Methodology

  1. This model is not designed for handling complex dependencies.
  2. An overall plan is a must, without which it can not proceed. An agile leader, agile PM Practice is a must.
  3. This method depends heavily on Customer interaction, customer feedback. If the customer is not clear in terms of requirements, it is very difficult to get started and proceed in the right direction.
  4. There is very little documentation in Agile methodology. Due to which transfer of technology to new team members is a challenging task.

In this blog post, we have tried to understand what is Agile Methodology, What makes Agile Methodology different from Traditional SDLC Models and last but not the least, Pros and Cons of Agile Methodology. Feel free to read and explore more on Agile Methodology.

Happy Reading!!!

You might also like