Agile development and lessons learnt

Agile development offers a lightweight framework for helping teams to maintain a focus on the rapid delivery of business value. Teams are able to continuously align the delivered software with desired business needs, easily adapting to changing requirements throughout the process.
What are the challenges/ limitations (if any) for agile development?