I always give client a choice, if he make a wrong one - means I probably don't want to work with him - I set the price very high.
While not every one has this comfort, it is important to give a choice and not be pushy, say what are advantages and hope client will do the right choice ;)
I also explain the process (we use Scrum) and a lot of clients really like idea.
Common arguments we use:
Agile as competitive advantage. This is good for clients that are loosing the market or those on very competitive markets):
- Time to market - you can make first release before others will finish specification and contract
- Being flexible - you get user feedback, can respond to it and give new features in 2-3 weeks not months, you can react to market change, competitors new products etc
- Reduced risk - with agile you can step out of the project in any moment
Agile as money saver. This is good for scrooges.
- For money that you would pay to lawyers for creating contracts and to analysts for creating specification you can already buy a couple of sprints
- Most of projects fail, if you are going to fail with agile you will know after few sprints not after a year, you will lose some money but less then if project fails after a year.
- In IT projects there is always risk involved. I have to estimate, if I overestimate - you paid too much, if I underestimate - project is a problem, so I'll look for ways to push it out - eg. reduce quality (via @paulklipp)
Control & Communication & Transparency. This is good for people who like to control details.
- at every moment client can check what is progress on the project and what is estimated time of delivery
- communication - your clients understands choices, can modify requirements to boost business value, reduce time to market - client is in control of details, team can give him suggestions like - this will speed up, this will make it more usable, client can make wise choices on the run, he don't need to predict every detail
Quality:
Clients don't understands what quality means. Quality can be understood various ways. Like nice design or low number of defects. Very rarely what client thinks (unless technical one) is code quality, which most often has no value to the clients. Talk rather about being flexible.
Google use it, MS use it, Yahoo use it, your client's favorite company use it. Business people like brands :)
Don't just throw this into his face. Ask him what are his expectations, listen and choice those which fits.