Joel on Software has a link today to a piece by Katie Lucas on a major shortcoming of the RUP (Rational Unified Process) methodology.
Katie writes:
"[I]t's pushed as a way of getting normal people to do something
normal people can't do. Normal people can't do OO design properly. I
don't mean that derogatively as such. I can't draw still life, I can't
run 100m races {Well, these days I can't walk 100m races, but even as
a kid I was crap at the 100m}. People have various different
talents. One of those talents is doing OO design and some people just
can't do it. No matter how much paperwork you surround it with."
and...
"Unfortunately, the outcome of RUP is that you end up with extremely
well documented TERRIBLE designs. Unless you have a good OO designer
to start with. In which case they'd have come up with a good design
anyway, but on less paper."
Amen.
I think this is generally true of all methodologies (and Katie alludes to such). There is not a software methodology out there - RUP, XP, Waterfall, MSF Agile, etc. - that can ensure success on it's own. Good software methodologies just cannot succeed consistently without good people. And good people can succeed regardless of the methodology used.
So why do we need methodologies?
2 reasons come to mind - Safety Nets and Synergy.
It's often said that any kind of team is only as strong as it's weakest link. Methodologies (good ones) lessen this effect by providing safety nets - checkpoints, deliverables, reviews, status reports. These help to keep projects from failing miserably (not that it can't still be done) and give team members the freedom to grow and make mistakes. They also help a team to recover from the individual failures and weaknesses discovered along the way.
The other thing that methodologies do is provide a framework for synergy - giving all team members a roadmap for what it will take to be successful, and providing mechanisms and culture by which a team of people with different skills and skill levels can combine to produce end results that are not simply determined by the lowest common denominator.
Does this mean that a group of average people can combine to produce above average work based on a methodology? Not likely. But methodologies make it possible for a group with a couple of superstars and a handful of average people to produce superstar results.
But in the end, you still need the superstars.