Despite maybe chaordic circumstances, most (all?) customers are very attached to having a good upfront price indication. Even as a convinced Agilist and Scrum Practitioner I still want to serve those customers.
My My.Fragility framework tries to align both views upon a well-defined (Agile) Project Life Cycle:
During a (timeboxed) Pre-game staging effort, an initial Product Backlog is created, estimated and given a total price/elapse time (following my Definition of Agile Planning). The Product Backlog and Release Plan (split up of elapse time into monthly Sprints) is included in all proposals and contracts. It is the formalization of a mutual understanding and trust of what is included and what is not.
During implementation, the full Scrum process is applied, but the number of Story Points is kept in balance with the estimated number. I.e. when changing or adding User Stories, the priority of a comparably sized effort (in Story Points) should be adapted. And, yes, this might result in not implementing the lower priority Stories. Unless impact on timing and budget is accepted.
Keep track of the changes (delta) in a Delta Backlog.
Play the Planning Game with the customer to maintain the balance:
- During a Sprint, refine next priority Stories and assess their estimates upon the actual knowledge
- Let the customer decide on the selection of Stories for the next Sprint. Intervene as little as possible. Assist
- Iterate until the selected #Story Points matches the available #Story Points
So, Agile techniques may well be used to deliver total results in a fixed timeframe, when adding the notion of Negotiable Scope.