Without a contract in place, important details are often overlooked. The client may have confusion over what is supposed to be delivered and when, leading to misunderstandings and costly disputes with clients. Having a court decide the terms of the deal for you is very risky and can lead to high amounts of damages, thereby endangering your company and you.
As a software developer, you probably already know that so much can go wrong during a project. For example, you may build a beautiful website but it breaks upon launch. A contract will protect you in case something goes wrong.