Hi Stoyan! I agree with you: quoting is struggle.
We usually start with a workshop. With the long-course clients usually it's a design sprint, with less known partners we go with a two or three days condensed Sprint. It's more like an exploration than a product generation. We explain that it's good for them, since we will quote the work better, and we will understand in depth the project and the context.
We expect the client to pay for our time when we work for them, Sprint included.
The user story generation is done after the design phase, but we keep the budget in mind while designing.
In Belka we are a mix of designers and developers, so we usually know if a feature will be harder than a simpler path. Moreover we inform the client that the user stories can change during the development: usually from a better comprehension of the problem, or from a change of perspective, or from a client's input. If this is changes are outside the budget we can modify our backlog accordingly, and see what are the changes.
