To me, Agile is a 'development lifestyle' approach. It prefers *not* to have long design meetings or copious amounts of specifications done ahead of time, rather it prefers to get something lean done quickly, and to go from there. It prefers to have short iterations, in order to confirm (or deny) that the project's going in the right direction; it prefers not to have long chunks of time devoted to a big chunk of code, only to discover That's Not What We Want Anymore. It prefers to have developers chat informally and share information, rather than have weekly (or even daily!!!) meetings where people ramble on about where they're at.
Yes, I've been developing software for over 25 years -- so I've seen what works and what doesn't. The best project I ever worked on was my third job out of school; we went from starting work to having a working electromechanical prototype in 7.5 months. And here's how that happened:
- We were given a well-defined problem to solve;
- We were given sufficient funds to solve the problem; and
- We were left alone to get the job done.
It's really quite amazing how productive we were -- it's my guess it would have taken a larger team years to achieve as much. That's one of the high points in my career.
Alex / talexb / Toronto
"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds