Waterfall Vs Agile
More often than not, lots of people who are working on one of these frameworks, don’t have a good understanding of these two models. Mostly they support the method they are familiar with without knowing the goodness of the other. So, I decided to simplify these two methods so that everyone (not just IT personnel) can understand and appreciate the pros and cons and how it can be better used.
The waterfall model was originated initially from the manufacturing and construction industries. It’s famously called ‘Big Design Up Front’ (BDUF) on those industries where the design must be finalised before they start developing the product. Let’s say, a car company is going to produce a new model of the car. Before they set up, the production assembly line in the factory to start the mass production the design must be completed to the last-minute detail. They don’t have the leverage to change the designs in the middle of the production. Otherwise, the cost and time to make that change are going to be immense.
Let’s take a look at another familiar example from the construction industry. As most of you either would have gone through this process by yourself or are at least have heard others going through. You are going to build a house, what generally happens, the builder works with you to complete the structural design and get you to sign-off before starting the building process. What if, you ask him to alter the room size or the location in the middle of the building. So, the point here is, it is necessary that Big Design Up Front on those industries.
Adaptation by the software industries:
Now, we will come to the software industries. You may be wondering how this model was adopted from the other sectors. I had the same curiosity as you, and through my extensive research, what I found was really fascinating.
In 1970, Winston W. Royce published a scientific article where he explained how this model works. He didn’t call this model a waterfall, but that name came later. As far as we can confirm, this is the first time it was well documented.
Almost a decade later, in 1985, The US defence department was first starting the software developments to support their operations, and they picked up this model to govern their project developments. Later other NATO (US allies) followed the same, and it kind of became the military standard. So, the rest became history. The general opinion that if the defence department uses then it must be reasonable, and it’s kind of became the standard/benchmark for all other private software companies.
How does it work?
Now, we will see how it works in software development. As it involves, sequential and linear development, it later called a waterfall. It is also referred often by other names such as phase gated development and Software Development Life Cycle (SDLC).
It has four distinct phases, as illustrated in the below picture. Before it moves to the next phase, the previous phase must have been completed and signed-off. Otherwise, as we have seen in the car and house examples earlier, the cost and the time to make the changes will be significant.
Let’s say you are a business owner and you need a software product for your company. So, you are approaching a software company to develop according to your need. What typically happens here is they assign a Business Analyst who will work with the client, which is you or someone from your company, to document the requirements, it’s called Business Requirement Document (BRD). It will include all the details like scope, assumptions, and risks. And then they will ask you to sign-off the contract with an estimated cost and time to deliver.
Then it will go to the next step, which is design. A group of solution architects, designers, pick up the BRD and produce more documents, those are called Solution Architecture Design (SAD) etc. Then these documents will be forwarded to the programmers, and they start writing the program to build the desired software. It will then be moved to testers, who test the product before it is available for the customers/users to consume.
Agile: Agile story is equally fascinating as well. Brace your seat-belt to read the rest.
Although many alternative methods were pursued pre-waterfall model, In the 1990s, many software development methods evolved in reaction to the popular heavyweight method. They are Rapid application development (RAD – 1991), Unified Process (UP – 1994) Dynamic Systems development method (DSDM – 1994), Scrum (1995), Xtreme Programming (XP – 1995) and Feature-driven development (FDD – 1997). These are along with 40+ methods introduced in the past two decades now collectively referred to as Agile software development methods. It is an exciting story, how the Agile word first originated, and all the alternative methods came under that umbrella.
In 2001, seventeen software developers met at a resort in Snowbird, Utah, the USA to discuss these lightweight development methods. They are not just ordinary software developers. These are the people who developed alternative methods, such as Ken Beck, who developed XP, Jeff Sutherland, and Ken Schwaber, who created Scrum. Based on their combined experience of developing software and helping others to do, they came up with the document called ‘Agile Manifesto”. They all agreed it is the best way to improve software development. As a result of following these, It eventually delights the customer, so do the business. It comes up with four values and 12 principles.
refer to the below link for the values and principles
In a nutshell, it preaches, the software development should be more fluid rather than just following the set of process, tools, plans and contract documents.
How does it work?
Agile is an iterative and incremental model as opposed to the linear and sequential Waterfall. It adaptively develops software. It embraces the change until the last minute (to a certain degree).
As shown in the below illustration, the requirements are broken into small deliverable chunks and completing end to end product development of that small portion, rather than completing the entire phase of the whole product.
For example, we will take the same instance of the software product development we have gone through to understand the waterfall model earlier.
If that software were to be developed by an agile model, then all the requirements would have ended in the backlog, which is a holding place for the desired known scope. The Agile team (depends on the model used, but typically comprises the cross-skilled Dev team, Course Owner, Scrum Master or Agile coach) pick up a piece of the requirement that can be delivered in a short period, about 1-4 weeks (it is called, sprint or iteration). They complete the entire product development life cycle such as requirements, design, implementation, and verification and then release a workable piece software to the end customer within that iteration. This cycle continues until everything in the backlog delivered. This will allow the organisation to get faster feedback from the customers as they have started using the product incrementally and change the direction of the product based on that at any point in time.
The advocate of Waterfall often argues that Agile methods are not for big organisations and complex projects. This argument was somewhat valid until the Scaled agile frameworks such as Disciplined Agile (DA), Large Scale Agile (Less) and Scaled Agile Framework (SAFe) emerged in the early 2000s. Especially, SAFe has been widely adopted by the top 100 organisations around the world, which has delivered solutions to implement Agile to the entire company rather than just the IT department to bring the business and organisational agility.
I hope the above explanation of both models makes sense to you. Now the question arises as to, which one is the best?
My take is that Waterfall (Conventional model) has been widely used by the software industry for more than four decades and delivered many successful results while some failed. The same goes with Agile methods as well.
But due to the world we currently live in, experts say it is a VUCA world (Volatile, Uncertain, complex, and Ambiguous) the market and customer behaviour has been continuously changing in recent years. Especially, globalisation, availability of the internet to the majority of the people around the world due to the telecom revolutions and to add to that recent Pandemic is presenting different challenges to the business all over the world.
As the customer expectation is continually changing, and highly likely before the Waterfall delivers its product after going through all the phases, the customer and market may want totally different product than when the project started.
On the other hand, Agile’s adaptive mechanism, which continuously delivers the product to the customer, and those fast feedback loops are going to be vital for the organisation to change the direction swiftly to guarantee success.
In summary, Let’s assume Waterfall is a Luxury sedan, and Agile is an All-Terrain Vehicle (ATV). If you think your sector is travelling on a paved road throughout the journey, then definitely sedan is going to be a more efficient and comfortable option. If your industry needs to move through the variety of the terrains such as paved road, desert, mountains with lots of ups and downs, then your only option is choosing the ATV, which is Agile.
Contact us on LinkedIn: Lead Agile Solutions