Stephan van Hulst wrote:Hi Darcy!
My experience with Agile development is that every company has their own way of doing it, and usually even every team within a company. Now, this is not necessarily a bad thing and I also don't think there is "one true Agile way".
My response?
THERE IS ONLY ONE TRUE AGILE WAY.
Just joking. Kinda...
I mean, the Agile Manifesto defines what it means to be Agile. So following the principles and values defined in that document is sorta the only way to be Agile.
However, the manifesto starts off with an escape clause:
We are uncovering better ways of developing software by doing it and helping others do it.
The Agile Paradox
So the Agile manifesto itself insists that the way to be Agile is constantly evolving was we continually evolve and uncover better ways and approaches.
So there's only one way to do Agile, which is by exploring many different ways to do Agile. Nice paradox, eh?
For Scrum, the emphasis is heavily on team based product development. The big problem I see with Scrum is a group of 4 or 5 developers who don't want to be a team, but instead just want to work on things they are assigned.
Scrum is a bad fit for a situation like that. So you either force the team mentality (not Agile), or you pursue a different approach that hopefully uncovers a better way to develop software (more Agile).
Scrum vs Kanban vs ...
In this case, sometimes a Kanban flow where individuals limit work in progress (WIP) and work on individual tasks might work better. If the team is still responsive, continuously delivers software to the client and keeps things simple, then they're still being Agile.
So yes, there are lots of approaches to being Agile, because there are many different product development domains and there is no single way to predict how a group of motivated individuals in a team will interact. All we can do is be Agile and uncover the best way to get the most out of the teams we put together.
By the way, I asked a similar question to the CEO of Scrum dot org and he explained how you can often bring different frameworks and processes, like Scrum and Kanban, together and get the most out of your teams.