2019 / 10 / 22
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.
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:
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:
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.
|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.|
The advantages of Agile Methodology includes:
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.