I was sitting in a Drive through waiting in the queue and listening to an Agile Podcast and my mind wandered, which isn’t good.
My thoughts led me to thinking – can Waterfall be Agile? The answer I came up with was yes and no.
Heresy you say, waterfall is not Agile! Why do I think that Waterfall could be agile? Well, Agile is a mindset. It is thinking that things can be better. It is always looking for ways to improve the current situation. Improvement in the ways we work, reducing the waste preventing work to be done sooner, reducing the amount of work done, inspecting what you are doing and adapting to try to make things better in both flow and quality. It is taking care of the people doing the work. Making sure that they have enough information do do the work. Marking sure they have the skills and/or ability to do the work. Looking for and searching for problems. If there are no problems, then stressing the system to see what breaks and then fixing the issues that arise. It is looking at the system as a whole. This mindset can be applied just as well to Waterfall as it can be in Agile. The biggest problem with Waterfall that I see is that this type of thinking isn’t applied. I have been in waterfall projects, where the process is followed blindly. People grumble about the issues, but nothing is done about them, or at the end of the project, a meeting is called to look at ways to improve the next time. The suggestions are gathered, documented and filed away. Those suggestions are not brought up again for the next project. So, the same mistakes are made over again. This behaviour is very common, it is probably one of the main reasons why people hate Waterfall. You are stuck in a bad situation and nothing changes to get out of it.
When a company that has this culture takes on Agile, the same behaviours can still remain, which may be a reason why so many developers also hate Agile.
Now, assuming that you do have the right mindset, you do look at your issues and you do try to solve them, and you still do Waterfall, this is where I start to think that Waterfall cannot be Agile. Its quite obvious, the feedback cycle between leaning of a requirement and then learning if that requirement actually solves a problem or gives value is quite long. It can be months or years before something developed is actually used in anger. The ability to learn and change is much longer. It is just the nature of the Waterfall process. It does not mean though that you cannot add learning.
Now, my thinking is that if you apply the Agile Mindset to a Waterfall process using the something like Lean or Kanban, and by Kanban I don’t mean just putting cards up on the wall, but by trying to improve the flow of those cards, you will eventually become agile. Not Agile with a capital “A”, but agile in the sense of being nimble, being able to change with minimal fallout such as unfinished work, wasted money, reduced late night calls, not being required to do death marches and so forth. That is, if you have that goal in mind. Who knows, you may end up developing your own Agile methodology.