Thoughts on Agile Software Development

Agile development presents an alternative to document-driven and rigorous process oriented software development methods. Agile, contrary to what is often believed, values planning, documentation, processes and tools. Before you wonder if this isn't a contradiction, let me clarify.
While, agile does value all of the items stated above, an organization that practices agile development must be able to state what it values "more". When push comes to shove, something must give. The organization needs to be clear on what is important and what gives. In an agile context, greater value is placed on working software.
While Agile practices may be applied to a wide range of projects, they are best suited for projects involving change and complexity; projects that involve risk, uncertainty and change.

Organizations that intend to adopt agile development must realize that the benefits from agile, such as increased productivity, shorter time to release, better quality, ability to embrace change, accrue from working differently and not just by working quicker. So, unless your organization is willing to change the way it works, going agile may not prove to be all that it's supposed to be.