I am a hardcore Agile guy! I love Scrum. I have been a Scrum ‘evangelist’ (whatever that means) and the Scrum go-to guy for years. Agile is the way forward. It’s the best process to manage your software projects. Heck, it’s the best way to manage any project.
Hold on. Any project? All scenarios? No exceptions?
One of my professors in graduate school told us that the art of effective teaching is in stimulating students’ brains – by continuously asking questions, soliciting feedback and making them think. A question of his would bring up a perfectly reasonable answer – only to be added on by another perfectly reasonable answer. Soon, answers to most of the questions posed by the professor started with “Well, It depends”.
“It depends!” Even with all the laughter that such answer had, we started to get the game. The world started to make more sense.
There can be two – or even more – perfectly palatable answers to questions of the form “What is the best way here?“. They are pivoted differently only by the context. They differ by what they depend on.
Scrum is great – but so can be Waterfall, Skunkworks, ALM and all those fancy others processes to manage projects. They have failed some places. But they have been successes too at others. That’s the reason you know about them in the first place. No one remembers ideas that died in the labs.
Scrum – or for that matter any Agile process – is great when you are dealing with a complex, uncertain and changing environment. That holds true for many new product development (Mike Cohn said you can use that to plan your wedding too). However, there can be ventures where it may make perfect sense to use something other than Scrum. There can be big projects, which are similar though not exact to ones done before, that can live by a Waterfall process. There can be a software project – like a new major feature addition on a very stable and trustworthy software that has been in market for a decade – which can easily be managed by a more ‘traditional’ process. Even, two product lines in the same organization can be using two different processes.
You can find similar battles going in open source and licensed software worlds (Dreaming in Code is an excellent real-world story for it). You will find diehards enthusiasts on either side who seem to have their life dedicated to one or the other. They believe their way is the only way the world should be. The battle is philosophical and ideological. Digging a bit deeper, you may find that neither is completely perfect nor evil. It depends on the context. It depends where you want to apply.
Nothing wrong in being passionate about something – as long as one realizes that most things in life are neither perfect nor pervasively applicable. A better understanding of the context may spare many miseries down the road. The line between passion and rigidity is very fine.
Every time you go out on the road, the traffic is different. You have to adjust and adapt. You cannot always drive at 80. You cannot always take the same route.