Software Intellectual Property protection: What you don’t know can hurt you
All too often, we have worked with clients on custom software development projects who didn’t fully understand the importance of software intellectual property (IP) protection. Now, obviously we are not lawyers. But we’ve learned a lot over the years that could help you avoid dangerous and costly situations.
Here are some of the lessons we’ve learned and best practices we’ve developed that will keep you on the right path.
Why software intellectual property protection is so important
When you pay someone (whether it be an individual or another company) to create a software application for you, you might assume that you are the owner, since you are paying for the development services. But, in reality, the creator of the application is legally the owner by default.
So unless you get something in writing ahead of time passing ownership over to your company, you may find yourself in a bad situation. Failure to secure ownership can impact your business in several ways:
- Small changes can cost a pretty penny—If someone outside your company owns the source code, every tiny change can translate into a high cost, since they have total control over the code.
- You can be held hostage—Many of our clients have come to us for help on a software development project, and when we ask where the source code is, they don’t know the answer. Worse yet, they also don’t know how they can get possession of the code. The client ends up paying the former developer or software development firm just to get access to the source code (even if it’s not working well), or they are forced to start from scratch. Your entire business may be at risk, if your application forms the basis of your company and revenue.
- It can hurt your business in the long run—You risk becoming dependent upon the company or individual who wrote the code. Breaking free from the relationship can be problematic, if not impossible. And, not owning your code can make it difficult to secure funding; investors could reasonably withhold funding unless or until you can gain possession of your application.
8 tips to avoid intellectual property issues in software development
Before we get into our eight tips, we need to define a few terms and break down the types of code involved in software development. There are four types of intellectual property rights relating to software development.
- Patents—Patents protect functional features, such as frames and configurations, and they prevent someone else from producing or marketing your unique product or service. Patents typically last for 20 years. It is possible to get a patent on software development, but usually only if the idea is unique.
- Trademarks—Trademarks protect your brand. You can trademark your name, images, domain, and anything related to the design of your product. Your trademark has to be registered in order to get protection. Protection lasts for ten years, after which it can be renewed.
- Copyrights—Copyrights protect written documents and artistic expressions, such as roadmaps and code. The copyright owner can reproduce or sell the work. A copyright lasts for 50 years beyond the life of the author.
- Trade secrets—A trade secret is something that gives the user a competitive advantage. The business has to prove the secret is valuable and that certain steps have been taken to keep the information a secret.
The code used in an application development project can generally be broken down into three categories:
- Custom code—Unique code written specifically for your software application. Naturally, you want IP rights to this code.
- Open-source code—Open-source code refers to libraries and frameworks that are publicly available for use. While you can’t gain ownership of this code, you should make sure that your developers are eligible to use it and are adhering to any terms and usage conditions.
- Pre-existing code—This is code the development vendor has already written and used on other projects. It is not likely that they will hand over IP rights to this code, since they will want to use it again in the future. However, you can usually pay a licensing fee to use this code as a portion of your software application to avoid any IP issues.
Now that we have covered the basics of what needs to be considered when dealing with software application IP, we have eight tips to share with you to help you protect your business.
Deal with patents, trademarks, and copyrights right away.
File for a patent if your software application has any distinct features that set it apart from the competition. Register your trademark (if applicable) before development even begins. The same applies to copyrights. This is the best way to protect your ideas and your brand.
Negotiate terms of usage for pre-existing code.
Some custom application development companies charge a fee for using pre-existing code, while others use it as a way to speed up development and reduce costs for clients. Whether you pay to use pre-existing code or not, you should still negotiate licensing terms for usage in the project contract. Make sure the licensing terms are general enough to make sure you can use your application as desired in the marketplace.
Obtain the required licenses for any open-source code being used and ensure all usage conditions and compliance requirements are met.
Your development firm may make recommendations regarding the third-party components that are best for your application, but ultimately, you must be the one to ensure no components are used that restrict you from using your end product as intended. Some third-party components may come with licensing restrictions that simply won’t work for your project.
When we work with clients, we spend time up front to lay out all of their goals, so we can steer them in the right direction. But we also recommend seeking legal counsel to review licensing requirements of third-party components in use.
Obtain full ownership of the unique source code.
Transfer of ownership should be documented in the contract for service before any work begins. You will then be the sole owner of this portion of the source code, and can do with it as you please. The contract should specify when the transfer of ownership of custom code takes place.
Typically, transfer occurs at the time of payment. If you’re working with a company that is following the Agile methodology, you will be receiving deliverables on a regular basis. Each invoice should cover work completed during a specific period of time. Once you have made payment, you will then own the deliverables completed during that invoice period.
Keep an inventory of the pre-existing, open-source, and custom code used to build your software application.
Better yet, ask your development firm to create and maintain this list and share it with you as part of the project requirements. The inventory should include who was involved in writing and creating the code.
Conduct IP audits on a regular basis.
An IP audit is a systematic review of the intellectual properties owned and used by your business. When you conduct audits on a regular basis, you can better assess and manage your company’s risk when it comes to intellectual property issues.
Know where the source code is being stored.
Is the code in the cloud? Do you know how to access it? Are there certain authorization restrictions? Who else has access to it?
When we work with clients, we place the code in a repository so clients can access it any time. Clients can download a copy whenever they want. We don’t play the game of “wait until your check clears,” as so many other firms do.
Place the burden of IP infringement on the development firm.
You are paying an outside company for their expertise and services. If they infringe upon a copyright or trademark, they should bear the burden. Most reputable firms will agree to these terms for any unique code they are writing. When it comes to third-party code, however, we suggest relying on legal counsel to ensure all licensing agreements are met.
While it may seem daunting to deal with these software intellectual property rights, it is an extremely important step to take before you begin work on any custom software development project. The appropriate steps can make all the difference in whether you actually own what you’re purchasing and are free to do with it as you desire. In other words, it is time well spent and can prevent a lot of headaches down the development road.