What are some important and easily-overlooked points that should be in a programming-for-hire contract?
We recently had a learning experience as a client hiring a programming company: in the contract we signed, there was no mention of billing practices such as
- Minimum billable unit. A 5 minute phone call was billed as 1 hour.
- Division of work. If two contractors at the company worked on something in the same day they had their hours billed and rounded up separately.
- What kinds of things were billable. We were billed for them to "install Visio" even though we'd asked them to use it on our VPN-accessible terminal server).
We prefer learning from other people's experiences rather than our own, thus hope to get the community's ideas about other important points we might be missing.
I am interested in both sides of the coin as I have been and will again be a contract programmer myself, even though at this time I'm thinking of it more for my company's hiring needs. So points important for both the client and the contractor are welcome.