A friend is negotiating a contract to develop a piece of software. It's to be a fixed-price contract, and it will be a lot of work (in the tens of thousands of lines of code). I've never charged in this way, so I don't know how to advise him. How do you choose a price for a fixed-price contract? Obviously you can choose an hourly rate, and multiply by an estimate of hours, but estimates have risk, especially with a project as large as this.