I am a software or web developer or designer

Myths abound among software engineers and website designers about intellectual property, and it’s no wonder really. Software is to copyright law kind of like the surprise kid that got born to parents in their late forties. Congress knew it was possible when it passed the Copyright Act of 1976, but it’s not as though they had a nursery set up or anything. And to software, sometimes the whole idea of patent law can look like the schoolyard bully. And then there’s the whole school of thought that software should just be free to be used by anybody, and lots and lots of it is.

First, all work is protected by copyright from the moment it’s created, but in order to enforce copyright—i.e., sue someone for infringement—the work needs to be registered with the Library of Congress. Software code can (and sometimes should) be registered, but it’s a little more complicated than for other kinds of works.

For a lot of software projects, you’re going to give ownership of the code you create to your customers. If a company has hired you to develop software specifically to help it measure wear on tires, for example, they aren’t going to want you selling it to their competitors and they’ll want to own the software outright. There’s nothing wrong with selling copyright to the code, as long as the project is priced right, and then you can put the pesky problems of registering the copyright in the code off on someone else.

But then another sticky problem arises—some of the code in this tire-measuring application you wrote from scratch, but if it’s built on top of the Drupal CMS, then it’s got a lot of open source software included too. Open source isn’t anti-copyright; it just uses the copyright laws to say that you have to let other people use your code, instead of telling people that they can’t use it. That CMS is part of the library of code you use over and over again in various projects, and it doesn’t belong to you anyway—it belongs to everyone. We want to be sure you don’t promise to give ownership of code you don’t own, so we’ll work with you to put together licensing agreements that reflect the reality of your deal with your customer.