It has come to my attention that there are two software development approaches hanging around the water cooler these days, one of which is inaptly yclept (I’ve been waiting most of my life to use that phrase!).
The first approach is called Waterfall and the other, called Agile, has a name that I think is all wrong. If Agile is the opposite of Waterfall, then I think it should be called Pond. Yes, Pond. To understand why, let’s first think about what a Waterfall project is like:
In this metaphor, the Waterfall project will be represented by the activity of riding a boat over a … do I see any hands? … no?… ok then, I’ll tell you … A waterfall.
So what is this ride down the waterfall like?
Well, it starts off very exciting. You get in the boat and head toward the waterfall. There’s never any question of where the waterfall is, you just go the way everybody else is pointing. It starts off kind of fast, but it’s a fun kind of fast and everybody in the boat is up for the challenge. Then, as the current gets going to about 40 miles an hour, you decide to change direction. Well, that doesn’t go so well, does it? Zooooop, and you’re over the falls just like that. Waterfalls are not about change.
On the way down (where we’re doing our project in this metaphor) there is lots of noise in the boat. People are screaming at one another but it doesn’t make any difference. Nobody is doing what they said they’d do back when the trip was planned, and nothing anybody tries makes a difference in the direction or stability of the boat. There is steam and a loud crashing noise coming from the bottom of the waterfall, but nobody can accurately see what’s below. Nobody is entirely sure what is going to happen, but everybody is positive that it is going to involve a lot of pain and maybe death.
sounds fun right?
Every now and then, a boat makes it through this journey and pops out into the river below. The people on these boats likely will suffer from Post Traumatic Stress Disorder but by gosh, they made it! Commendable considering most boats do not survive this journey.
Now let’s move over to the Pond approach:
A project in Pond is represented by taking a boat out onto the pond and getting to a different side of the pond from where you’re starting out. Did I say a different side? Whoa, that’s not very goal-oriented, is it? Well, yes and no.
The goal is expressed with just enough detail to enable us to achieve it and at the same time have room to be creative and take advantage of any opportunities that arise. I figure we’ll decide where we want to land when we get closer. We can certainly make a better decision at the last minute, and it’ll be based on the best information possible (For instance, I have a bad back and I don’t want to have my picnic someplace where there isn’t a convenient place to sit).
So we set out onto the placid water. Everybody is calm. Nobody is stressed. We go to a different side of the pond and take a look at the shore. In unison, we turn to the person called the Pond Owner (or PO, for short) who just shakes her head. So, we turn away and go searching again (when the PO says No, she means No). To keep us from getting tired, we stop rowing every now and then to just sit back and listen to the breeze. Maybe we have a conversation about where to look next, or maybe we just nap. Sometimes somebody will clean up the boat just to make it a little nicer.
Eventually, we find a place that everyone agrees looks nice and we pull the boat up on shore. Our project is complete in a way that we couldn’t have predicted exactly because we’ve never been on this particular pond before. We’re ready to set out again just as soon as we’re done with the picnic. In Pond, you always have a picnic at the end of the project.
So now you know why I think the opposite of Waterfall should be called Pond.
In case you’re wondering, I’m a Pond guy.