On 12-02-09 06:09 PM, Patricia Shanahan wrote:
First of all, I have seen a general pattern to software development
methodologies:
1. Some people come up with an approach to software development.
2. A lot of books get written, and complete, detailed systems combining
many ideas are produced.
3. The detailed systems, applied completely and unintelligently, do not
work well.
4. Some of the ideas, mixed with other ideas and selected to fit the
project and situation, turn out to be extremely useful, and become part
of the essential software project toolbox.
I've seen this pattern repeat several times, starting with "structured
programming" in the 1960's and 70's.
Given that background, I do not buy in to the idea of certification
tests on XP and SCRUM, or an "agile manifesto". I do think some of the
agile programming ideas are very useful in some situations.
Nicely put, I agree totally. And I'll add this: every new software
methodology posits a set of people that are somehow going to cooperate
much better with the new system than they ever did with any of the old
ones. When that fails to happen the complaint is inevitably "well, it's
not the methodology's fault if people don't apply it properly".
That's a truism. It's therefore very unhelpful. It's precisely why the
older methodologies didn't work so well either. Although each
methodology fails in its own ways.
You hit on the best approach: be aware of useful bits from all
methodologies. Learn your team (the entire team, including business)
quickly, and put pieces together. If anything actually is truly agile,
it's constructing and re-shaping the *methodology* as you go.
I believe that projects which succeed do so because of the team, and
that the team builds a custom methodology for the project. I also
believe that if the team isn't adequate there isn't a methodology on the
planet that can save the project.