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:
- Planning
- Requirement Analysis
- Design
- Coding (Development)
- Testing
- 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 principles of Agile Manifesto include:
- Individuals and interactions over processes and tools.
- Working Software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- 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?
Pros of Agile Methodology
The advantages of Agile Methodology includes:
- Agile Methodology promotes teamwork and cross-training. It encourages the involvement of team members throughout the lifecycle.
- This gives flexibility to the developers.
- Easy to manage
- Agile methodology is suitable for flexible and fixed requirements.
- Since Agile Methodology is an incremental model so, functionality is delivered in increments to the customer.
- This is the best-suited model for environments where requirements keep changing.
- Enables concurrent development and delivery of the product in increments.
Cons of Agile Methodology
- This model is not designed for handling complex dependencies.
- An overall plan is a must, without which it can not proceed. An agile leader, agile PM Practice is a must.
- 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.
- 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!!!