Have you ever wondered what the difference is between Agile and Waterfall when it comes to software development? As a consultant, sometimes I need to explain the concepts to our clients, so they understand how the development process would be different when adopting these approaches. As we embark on the holidays, let’s look at how Agile and Waterfall affect your Thanksgiving dinner planning.
Waterfall Scenario -
With the Waterfall approach you design it, plan it, produce it and you are done. There is no going back; there is nothing in between. There are no iterations, just get to the finish line. So how would Thanksgiving be like if you use the Waterfall approach in planning?
You have been planning the formal Thanksgiving dinner for more than two months. You are going to execute your plan in the final couple days as you have bought the best turkey, freshest cranberries, and get all the ingredients ready for your casserole. Then Uncle Arthur calls you and says that his doctor says that he can’t eat turkey. What do you do at this point? Waterfall process is do-or-die. If someone throws a wrench in the works, you have to go back to the drawing board. In this instance, you know if uncle Arthur can't eat turkey he might have to bring his own meal.
Or you have invited everyone over for Thanksgiving dinner because you are an amazing cook. You need two turkeys because all your family is coming. However, there are no turkeys in the grocery stores. Nobody has any turkey because of a turkey shortage due to avian flu. If you are planning Thanksgiving dinner with Waterfall approach, that’s the point when you have to cancel the dinner because there are no turkeys.
My point is that the Waterfall approach is a plan once and execute, if something goes wrong, you have to turn back and start all over again. Think of it as a true waterfall. You’ve got water cascading down these multiple steps. The water can't go back up and there's no way to push that water back up. It's not possible.
So what about the Agile approach?
What does it mean to be Agile for developers? You'll notice that at C/D/H we have “sprints.” What we've done in an Agile approach is break it down into many software development cycles. Within each cycle, we have the same steps that you saw in the Waterfall approach, but we do it multiple times. What this affords us to do, especially if your sprints are one or two weeks long, is to continuously evaluate the product. Each sprint has a product that goes out and is usable by the client or the audience. With the Agile approach you break it up into multiple chunks, have multiple deliveries and somewhere along the line you produce the product that fits all the requirements end the process.
Agile Scenario -
If Uncle Arthur says he can't have turkey, let’s revamp. Let's get a ham instead. We'll reconfigure all of our side dishes to complement a ham dinner and then move on to have a grand glorious Thanksgiving dinner.
You might have heard that Agile is a methodology, but it's really not. Agile is just a concept, an approach or a framework that allows agility and flexibility for you in the development process.
No matter which approach you take to plan your Thanksgiving, have a great holiday with your family.