Table of contents
“Agile testing is a software development process in which key features are tested early and throughout the development process.”
“Agile software development is an umbrella term for an approach to developing computer software where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. In contrast to traditional approaches, which dictate a strict, predefined procedure, agile processes promote flexibility by allowing developers to vary their methods in relation to the situation”.
What is waterfall methodology? What if agile is better? This article takes a look at both of these popular approaches and tries to figure out what makes each one so compelling.
It is a sequential engineering process that starts with the phase of initiation and proceeds in a sequential manner towards the phase of closure. It is also called orderly development or conventional development. “Waterfall model is a linear sequential model where the phases are executed one after another. At the end of phase 1, there is a stage gate review where the decision is made whether the phase can be passed to next phase or not. If yes, then it goes to next phase otherwise back to initial phase.”
Agile methodology is considered an alternative to traditional software development processes, where requirements tend to be gathered up-front, often in a rigid format, that tend to force implementations into specific channels. The project plan will have no flexibility for changes once it is decided. The advantages of agile is that there is less documentation, quick delivery of product features, very good communication between teams which leads to better understand among them.
Pros of waterfall methodology
|– Ability to deal with big project sizes because the waterfall model gives you a lot of structure and focus on plan or schedule. You can figure out exactly what needs to be done in order to deliver the product by following the plan laid out for you.|
|– Ability to plan a project by a milestone system.|
|– Have a high level of predictability in the project. Because you will be working in the order of phases which has already been set out for you (and broke down into small tasks with milestones). So there is not much room for change. The only change that can be made is very small or something that is requested by the team or something that is requested by the customer.|
Cons of waterfall methodology
|– Missing requirement of customer: The biggest problem is the inability to deal with the change request. When the customer realizes they need to make some changes, it means that you need to go back and redo everything again. This will not be feasible for a lot of reasons.|
|– The quality of the product delivered might be very poor because there was no proper testing phase in waterfall model and also all the requirements were gathered upfront, so if any new requirement arises then its time to restart all process and deliver a new product. A lot of research goes into creating a good software solution and if that is wasted then it will not be economically viable.|
|– Because of the strict scheduling of phases and small task approach, there is little scope for innovation in a waterfall model. If the client wants to spend some extra time making a good product then that means that they have to do some extra work or they have to start from scratch again.|
|– It takes a lot of time and costly. For example, if we take a complex system we can call waterfall model and if we add more things, test and features and so on, the cost will increase exponentially.|
|– It is risky because you are committing to something that is not tested recursively. Once you put your money in there if it fails it is one big blow. So this is risky for the organization.|
|– A lot of time passes between the implementation and testing. Leaving for room for bugs and|
Advantages of Agile
|– Minimal documentation before starting the software cycle|
|– Overall flexibility – due to it’s highly iterative method.|
|– Shortens the time from requirements to market without compromising quality.|
“Agile processes can be used as a basis for more traditional methods of software development as well as for the creation of entirely new kinds of software. For example, agile practices can be used to plan and implement new software functionality based on empirical feedback about how customers use existing products and services, and more specifically on the results of customer surveys and focus groups. Agile processes can also be used for re-tooling (changing software already in place) to more effectively meet changing needs.”
An approach to project management that falls between the two extremes of traditional waterfall model and agile methodology, typically involving a hybrid of both.
Advantages of hybrid model:
There is no change management in the hybrid model. It is good for projects where there is some risk and need to wait for a month or so. You can test and experiment with the project and wait for any feedback from customer or your company then you can go for either agile or waterfall model.
Disadvantages of hybrid model
It takes a lot of time because each phase has to be worked upon separately and it takes time to get the product out of the stage gate. It takes time because each phase has to be approved. It is also costly because you have to do two models simultaneously instead of just one.
From the points given above, we can conclude that the waterfall model is good for simple tasks with little risk but agile is better for complex tasks which have more risk. Both are flexible but agile is more flexible comparatively. So if you are working on an IT department then you will consider the waterfall model because it’s easier to implement and keep stable. But if you are working on a project where the task is complex then you will go for agile because it has less risk associated with it.
Read this article for insights on the different types of automation testing.
To read more on waterfall methodology, check this Wikipedia article.