When introducing agile to companies, I am occasionally challenged to offer proof that agile methods are better.
That can be tough.
How can one prove anything as subjective, and emotional, as software development.
On time, on budget!
You have traditional measures like time, money, and how accurately we followed the original project plan.
But that is a false comparison because agile and non agile projects perceive value differently.
Agile projects are not all about time, money, and accuracy with which original plans are followed.
In fact, accurately following the original plan violates one of agile’s core principles – that the plan is going to change.
If the plan didn’t, change an agilist might very well ask – what went wrong?
Rather than prove or claim agile is better, I have found it more effective to get people talking about projects that were really successful.
Common response are:
* a tight team
* good communication channels
* rapid decision making
* strong collaboration
* stakeholder involvement
* passion / hard work
* respect for co-workers
* feeling like you were making a difference
* urgency
* a real feeling of commitment
* pride of work
* fun
None of these characteristics are unique to any method. They are universal.
The reason I question traditional methods of project success is because I have never had someone come up to me and say our project was on time and on budget and then double pump their fists in the air.
Usually it is more along the lines of: “We chucked out the original plan, sat down with the customer, and focused on delivering exactly what they wanted with really fast turn around time between them and us. It was beautiful.”
And yet when you ask them why they aren’t doing that on their current project they shrug their shoulders?
We all know a software methodology doesn’t make or break a project. People do.
The unmistakable trait I see in successful projects that people loved to work on, is that they contain many principles, practices, and characteristics espoused by agile methods.
I can’t prove agile is the best way to develop software (that’s not possible). It’s just that when people tell me about their ideal project, it contains many agile elements.