You can and should have a contract. No question. However, as a practical matter when it comes to issues, they're basically worthless.
A contract won't prevent anything (poor workmanship, not finishing the job on time, collateral damage during construction). The best it might do is make sure everyone is on the same page on what is expected (white appliances, not SS). It won't make resolving any issues easier - once the problem arises, the solution will have pros and cons and that won't be in the contract. You'll just have to work through it.
If you find yourself in court, you'll be lucky if the contractor even shows up. Sure the judge will appreciate your contract, but you'd probably win the judgement anyway - now go collect it (you won't).
Contractor is a relationship business. You either found a good contractor and you maintain a good relationship with them or you don't. The contract will not have much impact on that. The best thing you can do is be present and hope to catch things before they get too far. As is seen in this thread and in my experience, once something is done incorrectly, pointing to a contract is not going to resolve the issue. You're relationship and negotiation skills will carry the day.