I have been wanting to try Agile development for years, in fact I recently discovered this as a "goal" in my first 90 day deliverable in my current position. Being guided by a vendor, we now have our first foray in formal Agile development methodology, and the results so far have been above expectations.
The major benefits we've seen over waterfall methodology are (1) detailed daily progress (i.e. no surprises) (2) speed, and (3) quality. Our first project was a test-drive throw away, our next project will be put into production in a few months.
Attributes of the Agile methodology we are using, that we like, are:
- Dedicated Project room for team
- Test-driven development
- Thin slicing of functionality
- Fast, iterative development
- Estimating, tracking and predicting tools
- Programmer-centric (not Project Management centric)
- "Kaizen" – process reflection and improvement – i.e. http://www.projectkaizen.com/gang-of-seven/
The one attribute we are using but not yet sold on is Buddy programming. We see the benefits, but don't know enough to be 100% onboard.
The programmer-centric result comes as a surprise, but frankly has significant potential benefits for us, including more productive programmers. Will blog more on this another time.
(UPDATE: I sat in on my first Kaizen Agile retrospective meeting, and... WOW! Different does not begin to describe, but fun does!)