Question 3 - How do you avoid an Agile project being open ended? Surely if the requirements are defined as you go along there is a risk that you will never finish?
All projects tend to have a defined budget and a limited amount of resource. Generally the business case for a project will have already defined the high level features of an application and these will be defined and scoped at a very early stage using the MoSCoW (Must Should Could Would) methodology.
In a project with constrained resource and budget the emphasis will be to deliver all of the Musts, and then focus in order on the Should haves, the Could haves and the Would like to haves. The benefit of using Agile is that you are much more likely to get more of the features at the lower priority end of the spectrum that if you were using a waterfall methodology.
The product owners do need to take responsibility though for communicating at each incremental release what is and isn’t included. It is human nature that the requirements that you have identified are more important than other people’s and the absence of someone’s pet requirement can be emotional.
However a project cannot be open ended and in general, unless budgets are unlimited, not all of the Would like to haves will be delivered.