Application can launch with-in short span. Product/project owner/s can get quick benefits (if initial response is very high). Based on the response owner can take a call for further development.
After beta version release, it's easy to add other feature very easily (in terms of integration point of view).
We can priorities the requirement, base on the customer need, market demand and complexity of the project.
You can start the project with less no of documentation. It may vary project to project.
Initial price may be high because of the initial set-up but over the period the price may comedown.
As a nature/method of the Agile(rapid development) maintaining cost may increase after production. May be because of poor design/code quality/testing/wrong-communication etc.
If team Size is more than 10 people then it's very difficult to track the task daily through stand-up and scrum meetings etc.
In terms of distributed team - slow down the communication speed, knowledge sharing.
Meeting - Some time meeting takes more time than expect, there are stand-up, scrum, planning, estimation, if any problem/query in development etc. Email
Email - Because of the frequent changes it's very difficult to track all the changes/discussion (though we can manage through tools)
If project is complex and cann't be split into smaller and more or less independent sub-projects
Because of the complexity it require RND but customer are not in a position to invest on that part then ot's very difficult for the developer to develop also project might get delay/more defects after production.
Project manager should have at least basic understanding of the technology as well as work flow of the project so that commitment should not go wrong.
Customer should be experienced and provide the feed back so that product/project can be change easily with-in time but some time it get delay. Customer should have enough time for the change requests and prioritization
If the company follows the CMMi level standards then as a part of process project should have to maintain the documentation as well as have to follow process in this case it will be a extra stack to the team.