A very smart attorney I know paid $7,000 for a roof repair, only to have the roof leak the next time it rained. The contractor stalled, made excuses, but never did a thing about it. Anyone can have these kinds of problems when having repairs or improvements done, but to make it less likely, avoid the folowing mistakes when hiring a contractor.
1. Not knowing what you want. If you don't know what you want, you might not like what you get. Also, if you change your mind and change the job halfway through, the contract - and price - have changed (Hint: it won't get cheaper). Know clearly what you want done.
2. Not getting everything in writing. You don't want to hear, "I didn't say I was going to include the gutters."
3. Not having dates in the contract. Did you want it finished this year? You better have it in the contract.
4. Paying too much up front. A deposit may be a reasonable request when the contract is signed, and money for materials prior to the start date. Never pay in full before the job is finished.
5. Hiring unlicensed contractors. Actually, this can be okay, if you know what you are doing (and he does). The license doesn't mean you get expertise, but it does mean you get leverage. A contractor will right his wrongs to avoid losing that license.
6. Hiring the first one in the phone book. Ask friends who had work done, or the owner of a hardware store. Find a recommendation based on a similar job to yours.
7. Thinking there will be no problems. Weather delays, employees quitting, and more will happen. Having problems is okay, but it's not okay if the contractor can't work out the issues to your satisfaction.
8. Expecting neatness. Believe it or not, it is sometimes efficient to leave things laying where they'll next be used. There will be messes, so prepare accordingly. Cover things if it will be a dusty job, for example. Also be clear in the contract that the jobsite will be cleaned up at the end of the job.
9. Not having penalties in the contract. This is important on large jobs. It's one thing to say "Work to be completed by May 2nd," but better to add, "$100 per day to be deducted from the contract price for each day the job is unfinished beyond May 2nd." That's what I call a motivational clause.
10. Thinking contracts will prevent problems. They help, but unreasonable people on either side of a contract can ignore them, or use "literal readings" to make things even worse. Find someone you can work with, and keep your eyes open.