It can be hard to tell the difference between agile and non-agile when managing projects. I have a visual way of accomplishing this. It is not exhaustive or the be all end all, but it is a good start.
Think of each piece of work that a person does on a project as a horizontal bar, which represents time working on it. The top horizontal bar is the work being done first, the next one down is the work being done second, etc.
Let’s look at a basic outline of a new website project. Here, we have a non-agile way of managing the project, with non-agile being traditionally called “waterfall”:
And here, we have an agile way of managing the project:
You can see an obvious difference with the way the bars are placed. Now, here’s what the difference means.
We can differentiate between waterfall and agile projects using vertical slices. In the waterfall picture, each place where the bars intersect is a hand-off point. Once the wireframing is done, it then gets handed off to the designer. Once the designing is done, it gets handed off to the developer for coding, etc. Here is an illustration of those hand-off points:
In the agile picture, the horizontal bars frequently run parallel to each other, and the starting and ending points never intersect with each other. This represents working collaboratively without a single person doing the “start -> finish -> hand-off” cycle.
Now, let’s see what happens when we take vertical slices of each set of horizontal bars. We’ll start with waterfall. How many sets of bars do you get with each slice?
Yes, one set of bars. You could get clever and have a vertical slice straddle a hand-off point and get two sets of bars. Still, your slice will have only two half bars instead of two whole bars.
Now, let’s look at the agile vertical slices:
At any given point, you can have one, two, three, or even four full bars in your slice.
The multiple full bars represent a cross-functional team (the functions being wireframing, designing, coding, and testing) working together collaboratively on the project. When they work together, they reduce the amount of errors and waste as well as the time it takes to finish the project. The result of this is:
- The website gets out to the market more quickly
- The market gives the team feedback on the website
- The feedback guides the team on the next iteration of the website, and then they again work collaboratively to get the next version quickly out to the market
- The feedback loop continues
I hope this gives clarity about the difference between agile and non-agile projects. This is not to say that waterfall is bad for everything and agile is good for everything. Just an illustration of how agile can be more beneficial for technology-related projects, include website and software development.
As always, questions and comments are welcome. I did the illustrations using Illustrator, and I certainly understand if you’re not clamoring for me to show off my work in an art gallery!