There is no final ‘definition of Agile’, no silver bullet / fits all approach. ‘Agile’ is not even one tangible method, but holds the common principles to a number of methods, that are as such stated in the Agile Manifesto.
I try to address this topic with the presentation of key characteristics. For both ‘Agile’ and traditional methods. That seems to be very recognizable.
Key characteristics of traditional methods:
- Plan-Ceremony driven;
- Single pass waterfall (sequential model);
- Success = compliancy with predictive plan, i.e. end = original set destination;
- Progress = ‘deliverables’ (specs/design/code/reviews/signatures);
- Resisting/blocking ‘change’.
Key characteristics of Agile methods:
- Change-People driven;
- Iterative-incremental process;
- Success = delivered Business Value;
- Progress = frequent delivery of working software;
- ‘Embrace change’. Even encourage change!
It is quite possible to get organized upon these general principles, and find a way through it and successfully build software. It is however a lot faster and more productive to select an existing, tangible process. Start by implementing it ‘from the book’ to get a firm grip on it. In a next step, it can still be optimized upon specific circumstances.
And, while you’re at it, have a good look at Scrum. It is the most spread Agile method worldwide, has lots of communities with well-documented cases, is technology-independent and there are great coaches to assist a Scrum transition. A good starting pointing might be Scrum.org…
From a management point of view, you could add “Command & Control” & “Servant-Leadership”. I don’t need to state which one is agile ;-)
Olivier, very good point indeed. An important differentiator as well. Hope to meet you some time @ Capgemini!