Coder to Developer: Tools and Strategies for Delivering Your Software

 < Day Day Up > 


The first set of issues I want to consider are those that involve software you write for someone else under contract. Although most of us prefer to spend our time developing our own little programs for resale, the need to pay the bills often dictates taking consulting jobs of one sort or another. This means that you’re going to have to actually write a contract (or, perhaps more likely, review a contract that someone else has written). I’m not going to worry about things like insurance and delivery dates here. Instead, I want to focus on one of the key areas that is often neglected: making sure you protect your own intellectual property as you develop software for someone else.

Staking a Claim

When you agree to write a program for a client, you probably think you’re selling them the code that runs on their computers and nothing more. If the customer is running a chain of gas stations, say, you could be writing a database application that tracks hour-by-hour sales to make it easier to predict when to refill the tanks with minimum customer inconvenience. After a few months of work, you hand over a couple of CD-ROMs with the executable code and instructions for their network administrator to install the database. What could be simpler?

But in the absence of any contract, your customer’s point of view is unlikely to be the same as your naive developer’s ideas. Depending on how technically savvy your client is, what they think they can get away with, and how outrageous they feel your fee is, they might demand any or all of these things:

Generally, it’s in your interest to give the company as little of this as possible, and it’s in their interest to demand as much as they can get. This is why there are contracts.

Creating the Contract

What can you put in a contract? There’s a simple answer to that one: anything you like—well, anything that doesn’t break the laws of the appropriate jurisdictions or contravene public policy, anyhow. But that still leaves a pretty broad range of potential contract clauses. Of course, your clients will have their own ideas about what belongs in a contract, so you’ll likely need to negotiate somewhat to settle on a document that you can both sign.

Although you may find the entire thought of dealing with lawyers and negotiating contract details to be an annoying distraction from writing code, you must go through the process. Working without a contract is one of the best ways possible to set yourself up for a disaster. Without the contract negotiation, you and the customer may have vastly different ideas of what you’re being paid to do. Worse, it may come down to paying expensive lawyers (which they can probably afford better than you can) to settle whose ideas were right.

RULE

Don’t do contract work without a contract.

Here are some of the intellectual property issues that any well-written software consulting contract should include the following.

You may feel awkward raising some of these issues with your customers. You might even worry that you’ll lose the contract by seeming intransigent. But if the customer is reasonable, they’re expecting you to negotiate a contract. And if they’re not reasonable, wouldn’t you rather find out about that before starting the work than when you’re sitting across an arbitrator’s conference table or in a courtroom?

Tip

Pay your lawyer to draw up a boilerplate contract that you’re happy with, with a blank for the customer’s name. Then you can present this contract to your customer as your standard terms. Sometimes you’ll get lucky enough that they sign it without even negotiating. In any case, it’s a good place to start the negotiations.


 < Day Day Up > 

Категории