Agile Methodology: Waterfall Vs Agile
Software Development has continuously evolved in the past 2 decades. This evolution has seen a steady shift from Waterfall Methodology into Agile Methodology. We will go into real-world examples in this blog but first, let’s understand the basics!
What is a Waterfall Methodology?
Waterfall Methodology is a sequential mode of Software Development where the Project Stakeholders will:
- Analyse and conclude the requirements of the customer
- Design the required software and present the design to the customer
- Build the software
- Test the software
- Deploy or deliver the software for customer use
What is an Agile Methodology?
- Agile Methodology is a time-boxed, iterative model of Software development where the Development team and stakeholders work together across various ceremonies or meetings
- A Product Owner leads all discussions with the customer, to understand the expectations
- The Product Owner shares the Customer Expectations with the Scrum Team
- The Scrum Team consists of the Development Team + a servant leader called the Scrum Master
- The Scrum Team commits to a short term delivery cycle based on ‘What can be delivered’ and the Scrum Team also agrees to the priority of tasks with the Product Owner
- The Scrum Team then starts to Analyse, Design, Build, Test and Deploy small parts of the overall software/product in iterations called Sprints. A Sprint is generally around 2-4 weeks
- To summarize, every 2 weeks or so, the Scrum Team + the Product Owner give the customers and stakeholders a small piece of the software they are paying for. The customer can think about the requirements with each iteration and thereby get a product that is most up to date with changing markets.
Waterfall Vs Agile
Let us understand the key differences by applying Software Development principles to a real-world example – Let’s build your home interiors below and practically learn more about Waterfall Vs Agile.
Let's build your home using the Waterfall Methodology!
- For the first few weeks, the Architect will Analyse your living habits/ current lifestyle and understand your definition of comfortable living through initial conversations. You inform the architect that you would like your home in 6 months.
- The Architect will then start Designing what he/she believes to be the best home for your lifestyle! This will involve numerous conversations where you will chop and change your mind multiple times to suit your budget. Finalizing the design proves to be difficult for you as new ideas and desires start to pop up! For Example, You may have decided to have a fountain in your garden and a week later you go for dinner to a friends house and see a pond with fish in it! Your desires keep changing but the design has to be fixed.
- After a month or so, you sign off design and the Contractor starts building your new home. When it comes to the Master Bedroom, the initial design included a bedroom for 2 people but then… Congratulations! your first Baby is on the way, you now inform the Architect/Contractor that the Study tablespace needs to accommodate a larger bed. This change of requirement during the Build phase means that your home will not be ready in 6 months as planned.
- After 8 months, the build is completed and you visit your almost new home to check the Quality and Test that everything is okay! Does the toilet flush? Does the Oven work? For Example: At this stage, you may want more plug points in your Study Room, this could take 2 more weeks to complete due to electrical work that can cause damage to freshly painted walls.
- Finally, after a 5-month delay and 11 months after your first conversation with the Architect you deploy your family, shift all your items and move in to start a fresh life in your new home!
Let's build your home using Agile Methodology!
- In the first few interactions, a Product Owner will understand your living habits and expectations. There is a mutual understanding that you don’t know what your ‘Dream Home’ looks like and that your desires change with time. You, Your Stakeholders (Spouse) and the Product Owner then agree that a Minimal Home with basic necessities such as a Living Room, Bed Room, Kitchen and Bathroom is enough to start with and with time, you can add more features to create your dream home.
- The Product Owner conveys your short term expectations to a multi-skilled Scrum Team. The Scrum Team consists of a Carpenter, Plumber, Painter and a Contractor (The Scrum Master).
- In the first Sprint (iteration 1), the Scrum Team builds a section of the house that is completely ready to move into. This ‘Ready Section’ of the house is demoed to you and you provide valuable feedback. For Example: Between the Living room and the garden you may want a patio door to be installed, the conversations are all focused on getting the Living Room tailored to your lifestyle and this kind of added requirements are well accepted by the Scrum Team and subsequently prioritised by the Product Owner for the second sprint, this ceremony is called Sprint Planning.
- In the next Iteration (Sprint 2), the focus can be on your Garden. For Example, You may have originally decided to have a fountain in your garden and a week later you go for dinner to a friends house and see a pond with fish in it! You now want a Pond, which is completely fine! Your new requirement will be met with a smile! The Agile Methodology can be a Genie that keeps giving when compared to the Waterfall methodology!
- With each iteration you witness the Scrum Team creating your ‘Dream Home’, by showing you 1 valuable section after another. This realistic experience cannot be replaced by model kitchens and bedrooms at Shopping Malls! For Example: If in the future you want a tree-house for your new child, the opportunity of having a tree-house is completely open and possible by building your house through an iterative, Agile Methodology.