with a team of mediocre developers, you're doing well to get acceptable results at an acceptable pace.
with a team of good developers, agile can be great if you do it well: the fastest way of getting high-quality stuff in users' hands.
if you've got at least one great developer (or a mix of experienced/inexperienced), agile's even better: the emphasis on shared ownership brings up the level of the team.
and of course it can be done really badly, and often is. if all your experiences are bad, i can see why you're cynical.
"with a team of mediocre developers, you're doing well to get acceptable results at an acceptable pace."
I totally agree. It's just not any fun. I also agree that shared ownership can bring up the overall level of the team, but I think it brings down the quality of work getting built by the "one great developer".
My experiences weren't bad, just boring. It seems like a good process for getting reasonably predictable outputs out of a variety of inputs (where the inputs are programmers).
I prefer to work in environments where there's a bit more specialization, more individual ownership (of components, certainly shared ownership of the 'whole'), and where developers are crafts(wo)men.
To me, the worst part about the growth of Agile is that I think fewer mediocre developers are becoming great ones.. because Agile ensures that no one learns to build something on their own. A quality that's in disappointingly short supply in certain areas (like my hometown of San Diego) where software development is rarely treated as a craft, and instead treated as an engineering effort.
with a team of good developers, agile can be great if you do it well: the fastest way of getting high-quality stuff in users' hands.
if you've got at least one great developer (or a mix of experienced/inexperienced), agile's even better: the emphasis on shared ownership brings up the level of the team.
and of course it can be done really badly, and often is. if all your experiences are bad, i can see why you're cynical.