There is no such thing as agile software development. There is only smart development and inefficient development. Smart software development is fast. It understands what it is expected to do for the end user (that’s called the scope, folks); it is designed first (that’s a novel idea), preferably in a word doc, Visio, or an email; and it is then built according to design, always trimming the fat and not confusing the word “want” with “need.” Phased development in iterations is the only way to go. The whole process can be done informally so long as you ensure the above (3) steps take place. Then, rinse and repeat to improve the software.
Here’s an example. I just closed a deal via a 35-threaded Gmail conversation. I never once called the client. I asked what was expected and reformulated those expectations to ensure consistency. We will meet one time to “shake hands” and pick up a check. Nic and I will then design the interface document for their approval through email. We will then build the site according to design, and it will be a success due to (3) easy-to-follow steps. Fast, informal, and smart. That’s agile development.