Business-focused custom software

Go Back

Ask the Programmer: Why can’t I “own” my code?

question mark Ask the programmer is a feature designed to answer questions from non-geeks about hiring and working with programmers. If you have a question, please email me at avonelle@lovhaug.com.

Question: Why doesn’t your custom software contract grant my company ownership rights for the code. I’m paying for the software, shouldn’t I be the owner?

Answer: To start out, we need to have a common understanding of what is included in custom software. Most custom software is made up of several different things:

  • Controls, components, or libraries written by third parties and purchased by the developer
  • Controls, components, or libraries written by third parties and purchased by the customer
  • Controls, components, or libraries written by third parties and made available as open source
  • Controls, components, or libraries written by the developer and used in multiple projects
  • Code developed just for this project.

While all projects won’t include items from every group in the above list, most will include items from more than just the last group.

There are many benefits to using code provided by third parties. For example, last year I built an application that provides reports to users. If I had to build my own reporting engine, it would have substantially increased the time and effort required for me to create that software. Instead, I could take advantage of an existing component. That meant savings I was able to pass along to the customer.

I can’t grant “ownership” to something that isn’t mine. Any third party component or control (even an open source one) isn’t owned by me, so I don’t have any rights to do anything with that code other than what is spelled out in the license agreement.

And even for code developed just for this project, granting ownership to you would mean I could never use a snippet of that code in a future project. The idea of me using the same code in a project for another customer may seem scary, but it actually shouldn’t be. We’re not talking about re-using an entire application. Instead, we’re talking about small snippets of code.

For example, I might have a little code that calculates the distance between two cities. This code isn’t providing your company some kind of competitive advantage, and there is only a limited number of ways of writing code to do that. So I’m likely to use it in multiple projects. Giving you “ownership” would mean I could never provide that feature in another application.

This is why my custom software agreement provides me and my customer with a non-exclusive use license. They can use the software however they like (including taking the source code to another vendor for changes), and I can do the same. There are exceptions in how the software may be used, mainly involving competition. I can’t take the code and resell it to your competition without your permission, and you can’t use the code to compete with my services unless I’ve said it is okay.

Note: I’m not a lawyer. This isn’t legal advice. (How can you tell? I’m not charging you by the hour.)

  • Facebook
  • Twitter
  • Digg It!
  • StumbleUpon
  • Technorati
  • Del.icio.us
  • Reddit

Comments  1

  1. Mark W. Schumann 22 Dec

    For more clarity, I like to say I maintain copyright in the code. I might grant you all kinds of rights to do things with my code, but it's still my code. Copyright is a well-established concept and it covers most of what I want to say in such a contract. It allows me to avoid going into all kinds of detail about what "owning the code" means.
Post a comment!

Formatting options
   
 
 
 
 
   

Wanna Subscribe?
Here's the RSS Feed

What the critics are saying...

Avonelle is a talented expert in her field. She has blended well with our team and built applications that we are proud to deploy to our associates. Her talents helped us execute a vision expediently and with quality. If we could do it all over again, we wouldn’t change a thing.

Peter Edstrom @ Renewal by Andersen