Agile or not, someone is going to ask the questions: "How much is this going to cost?", "How long is this going to take?", and "What am I going to get?". The real answers, respectively, are "As much as you're willing to spend," "As long as it takes," and "Whatever you tell us that you want," but few organizations are willing to tolerate this level of honesty and instead ask for "exact" answers. Striving for exact answers typically results in both time and money being wasted with little improvement in accuracy to show for it. I believe that it is time to admit that we can't predict the future accurately and cast off the shackles of traditional thinking.
Agilists will do just enough work to provide answers that are just as good, and just as inaccurate, as those provided by traditionalists. The difference is that we do an order of magnitude less work doing so and we're clear about the likelihood that they're inaccurate (which never seems to be news to our stakeholders, by the way). We want to get to the actual development effort where we regularly deliver high quality, working software that meets the changing needs of our stakeholders in a cost-effective manner. Isn't that what software development should really be about?