Freelance Software Development: Contract Dos and Don'ts

The field of freelance software development, growing by leaps and bounds, offers the hard-working software professional unparalleled flexibility in managing his or her career. However, there are some special issues that a freelancer needs to keep in mind. Contract specifics are one of these. This article will look at the do's and don'ts of a freelance software development contract.

1: Services Rendered

You and your client both need to know exactly what tasks you'll be performing and what services will be delivered. Make sure the contract states in unambiguous language just what is expected from both sides. Clear expectations will eliminate any unfortunate "surprises" later on. Clear terms also help you pare your freelance software development project down to the essentials. You don't want to find out that your project has suddenly become three times bigger than you thought it was.

As part of the contract, try to establish a solid due date for your freelance software development project. The contract may also include the dates of periodic progress reports to the client.

2: Payment Terms

Making the amount and terms of your payment as concrete as possible is also a must on a freelance software development contract. Establish if you will be paid in a lump sum or increments. Try to set up actual dates for these payments. The client might request something ambiguous like "upon completion of the software project." Try to avoid this kind of language if possible. By setting up an actual date, you are confirming you are a professional and that you can have the project ready by then.

There may be some expenses incurred in freelance software development. See if you can get some coverage for these in the contract as well.

3: Penalty Terms

Both you and your client want to be protected in case one side does not deliver as promised. In case your payment is late or not delivered, the contract should specify a monetary penalty. This will help ensure that payment will be delivered as promised. Keep in mind, though, that this measure goes both ways: The client will likely have a clause penalizing you if services are not delivered on time. This is only fair.

4: Credit and Ownership

Although the software you are working on or developing will likely be the property of your client, you will still want to get credit for the work you've done and the ideas you've implemented. One of the trickiest parts of the contract will be establishing who gets that credit. You may want your contract to establish that you will be acknowledged as the developer of a specific programming code used in the client's software. Be very clear in the contract's language.

5: Confidentiality

Confidentiality is an important part of any freelancer's contract. You will want to make sure that your private information is not shared by the client without your knowledge. By the same token, the client wants to be sure you won't reveal any sensitive information about the company. A brief sentence in the contract guaranteeing the privacy of all parties should take care of this issue.