Agile project management methodologies and agile project management books give the impression that if you follow their recommendations and implement their practices your projects will be on-time and to budget. However, my own experience is that most projects, even if they are good examples of Agile project management practice, are still perceived by most of the people involved, and especially by customers and stakeholders, to be late and over budget.
Why should this be? Why does being late and over-budget feel so bad? What can we as developers, project managers and even customers do to make the situation better?