Go to previous article – Functional Testing and basic steps to apply
Which testing method will you choose? Agile Vs Waterfall?
Developers are blessed (or cursed) with two completely different development methods– agile and waterfall, and in reality it is not even only these 2 methods since you can choose to mix part of these approaches and so work on any place in the spectrum that connects between them.
Agile Vs Waterfall – Both methods have their pros and cons, but ultimately it is up to the developer to determine which method (or what combination of them) is right for their project.
This means the developer should have a clear understanding of both methods and how to use them.
So, what exactly is the difference between agile and waterfall? Agile Vs Waterfall
Agile: What is It?
Agile takes a team centered approach to development; it involves all members of a cross-functional agile team to make sure the quality and business value expected by the customer is delivered at certain intervals.
Most practices see testing as a phase or a separate process from development, but not in agile. Testing is a vital and integral part of development that promotes continuous repetition.
Agile involves using “sprints” instead of having a set time schedule. Each sprint is assigned a certain duration and various tasks to be completed during that sprint. This makes agile a fast paced, rapid delivery method.
- Since agile developers complete work in small pieces, it leaves the customer more opportunities to make changes to the project earlier on.
- Once a sprint has ended, the customer can make changes and add updates to keep the project up to date with the technological industry.
- The customer works closely with the project team which builds a strong bond and sense of ownership for the customer.
- The cost is typically predictable as each sprint is planned for a fixed duration.
- Agile is a very customer involved process, and sometimes clients may not have the time, dedication, or energy to be very involved during development. This can cause problems along the way.
- Team work is vital to the success of the project, so having a team that is not dedicated to the project could ultimately end it.
- Some items set for delivery at the end of a sprint may not be completed within that time frame. This can cause additional sprints thus adding additional costs.
Waterfall: What is It?
Waterfall is a more traditional approach to software development. This process follows a specific sequence of eight steps, each one being completed to ensure the developers can move on to the next stage of the project.
The eight steps follow a pattern similar to this: gather requirements, initiate design, code/test, system test, UAT, resolve issues, deliver the product, maintenance.
Since each step must be completed before moving on, this means that developers cannot go back to a previous step to make changes.
- Since changes in one step may require other changes in previous steps that involve large costs to the organization this forces the keeping of a meticulous record.
- There is a clear idea of what the end product will be since the design and plan is agreed upon before the project starts.
- The scope of the project is planned in advance, so the cost, progress, and time frame is easily measured.
- The presence of the customer is not required after the initial phase.
- There is no more for improvement as every step builds upon each other; developers cannot go back to make changes.
- If the initial requirements are faulty in any way, the entire project may have to be scrapped.
- If the client’s needs/demands change halfway through the project, this will impact the delivery date and the budget in a negative manner.
Base on the information above we believe that you now can choose between the two – Agile Vs Waterfall.
Try to use the best of both and to combine them as best as you can see.
Read more about Agile Testing Strategy
And about Agile Management – Shifting to Agile testing