My company works in the field of public infrastructure in Europe, specifically as a software provider and operator. All of our development work is currently outhoused, to two main suppliers relevant for this question. Our company background is in the (semi) public sector, so some development methods take a little longer to get here.
One of our suppliers has recently undergone a merger with a larger IT company and as a result, is now embracing agile development methods more deeply. Thus far, we have been working with detailed specification sheets and lump-sum payments for our systems, but from my (limited) understanding of agile development methods this is not really feasible with the model. Additionally, we made the experience that projects run over budget anyway, so the meticulous planning beforehand seems a bit like crystal-balling, with the same amount of relevance to the future ahead.
We have had a discussion with our suppliers about this, of course, and they told us very neat sounding things including how we will monitor the total expenditures during the project as it goes on and which knobs we can turn as it progresses in order to control the cost. They also mentioned that instead of developing large, unwieldy specification sheets we should formulate our requirements where possible as User Stories ["As an X I want to be able to do Y in order to achieve Z", in all brevity]
Our other supplier mentioned today that they have trouble estimating the amount of work beforehand, and discussing a similar model to above, they were enthusiastic about it, however they have relatively little experience with agile development methods thanks to their background being in the public sector as well. They mentioned that agile models mean "You can't say at the beginning what the final product will look like." and "You cannot say with reasonable certainty how much a specific product or feature will cost.", which are usually dealbreakers for their clients.
From my understanding, however, not being able to say what the final product looks like is allievated by the fact that as the project progresses, the client (us, in this case) is kept in the loop and able to bring input into the project, to shape it the way they wish it to be or how they 'meant' it to be. Because to be frank, I do not know how each system should look as I specify it either, and I doubt many of their other clients do. About the cost, as explained above, I have come to understand that while an estimate ahead of time is not possible, controling the cost is by e.g. reducing features, simplifying parts etc.
Questions: Is my above understanding of the differences between agile development and traditional waterfall models correct, in terms of planning a project?
How can I, as a customer, best support agile development by my suppliers? Any recommended reading would be helpful.
Is there something we should ask for or insist on, like a maximum amount of manhours per month that we're willing to pay, a minimum amount of features/functionalities, or something like that?
P.S. If this is the wrong Stack to ask the question feel free to move it.
EDIT: For clarity, the first company proposed going with a Kanban model, perhaps borrowing some aspects from a Scrum approach.