I have had the great pleasure of being a part of a PHP user group run by few local PHP programmers (organizers). As a PHP programmer hobbyist, I started to think of the myriad of technical legal issues that programmers and their employers have to unduly navigate.
The practice of law is not knowing what the law is, but what law to look for. In law school, we called it, “spotting the issues.” In GI Joe fashion, knowing is half the battle. Accordingly, the following is a quick legal guide for a software programmer (and those who employ or contract with them). Please let me know if I missed anything, but these are the unique legal issues to the industry that I have seen lately.
Intellectual Property
One of the biggest issues surrounding the technical art of programming is the intellectual property that is created from these works. To deal with this issue properly, you’ll need to understand the general differences between multiple types of intellectual property rights. To help you understand these basics check out this infographic our firm put out a couple of years ago.
Copyright
In a nutshell, copyright refers to the protection of the actual code – not in its function, but the work itself. Think of it as the copyright of a book: instead of chapters, paragraphs, and sentences, you have functions, objects and variables. Accordingly, copyright restricts the right to copy or use your code. This is the type of protection that prohibits software piracy or someone “stealing” your code and using it in their own. So, if your code has copyright protection like a book, who actually owns the copyright? You? Your employer? In programming language, here is your explanation:
//Default Copyright Holder
if (Creator==”Employee”) {
Ownership = “Employer”;
} else { //Creator is Independent Contractor
if (Agreement==”Work for Hire”) {
if (Work == “Nine limited categories of works”) { //Does not include web development
Ownership = “Employer”;
} else {
Ownership = “Creator”;
}
} else {
Ownership = “Creator”;
}
}
You should note that this is a commonly missed and misunderstood issue. The general rule is that the creator owns the creation. It is also generally understood that if an employer hires a creator to create, the creation is owned by the employer. This is only true in an employer-employee relationship unless the creator is an independent contractor. If the creator is an independent contractor, then the work must be specified in writing as a “work for hire” and be part of a work described in the Copyright Code–which of course has not been updated in the last few decades to include software and web coding. Therefore, copyrights must be otherwise assigned and specified in an agreement–often left out, even unintentionally by the parties. At this point, you may be asking yourself: what happens when you have multiple coders of different classifications? For example, a company may do most of the code in-house but front-end elements are outsourced.
Proper contract terms and discussions must create clear expectations in this regard in order to ensure rights are properly protected. If you are now wondering whether you actually own the code you wrote or the code you paid for, there is one saving grace in that lack of ownership does not necessarily mean you have no rights to the code. Often an implied, nonexclusive, irrevocable license can be argued where consideration is paid – which is just fancy language saying that if you sold or bought the code, even from an independent contractor without the proper terms and provisions, you still may have a right to use it; however, the big problem is that you may not have the rights to resell the code–a huge issue when it is time to exist and the buyer’s attorneys do their due diligence. Small snippets of code that is used from other sources may still be permissible. After all, there are only so many ways to authenticate login credentials. Just as a tweet is not copyrightable, similarly obvious or small snippets of code are also not copyrightable. The other exceptions to copyright infringement still apply to code. For example, there is a concept of fair use. Publishing segments of a code may be exempt from copyright infringement where it is done for the purpose of education (and other exceptions). Refer to the copyright office’s explanation of fair use for more details on the subject.
Software Patent
Compare copyright to a software patent, which refers more to the business process of the software and not necessarily the actual code. Patents are intended to promote the progress of science and useful arts by securing – for limited times -to authors and inventors the exclusive right to their respective writings and discoveries. An enforceable patent related to software is very powerful, but there are tremendous amount of limitations that goes beyond the scope of this article of which you should be made aware before diving into this rabbit hole of the law. Bottom line: note that patents do not protect ideas or obvious inventions, but something novel. Not everything is patentable and, if done right, it requires aggressive investment.
Ownership (founders)
The tech world may as well be synonymous with the start-up world. San Diego has a buzzing start-up community with its successes and its challenges, but a commonly minimized issue is dealing with intellectual property among founders pre- and post-entity formation. Here is a common scenario: a programmer and non-programmer come together on a start up idea and the programmer comes up with an alpha or beta version of their product. They prove their model after a few pivots and are ready to get serious and incorporate under an LLC.
The next question is who owns the intellectual property rights related to the software? The programmer? The LLC? What about the non-programmer? Without proper documentation it can really be a mess. In the scenario above, absent any other agreements, the programmer probably owns the code, but there may be some oral or other written agreement terms that the non-programmer may attempt to rely upon if their is some kind of dispute in the matter. After incorporation, the programmers still need some written contract terms to properly and cleanly assign the intellectual property rights to the right party – in most cases, the entity itself. Again, this is an issue that often comes up in exit due diligence.
Licenses
A software license is a legal instrument (usually by way of contract law, with or without printed material) governing the use or redistribution of software. They come in many different forms depending upon the intention of the use, but software licenses can be as simple as a grant for using the software on your personal PC to packaging and loading it up in your own application for redistribution. For example, programmers are probably familiar with the EULA (end user licensing agreement) that applies to most consumer or enterprise level applications. Think of licenses as the contract terms that govern the use of your intellectual property. After all, what’s the point of owning the application if you are unable to grant others to use it?
GNU Licenses
The GNU license is a standardized license which clarifies to users of the specified software that it is free to use and redistribute. The GNU puts it best in their preamble by stating:
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program–to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
Having a quick read through their license, though fun for a lawyer, is really educational from a programmer’s perspective. Even though it discusses how you are granting most rights available to the author to the users, it helps identify which of those rights programmers actually have from their software.
Trade Secrets
Trade secrets are something both the developer and the employer should be concerned about. In such an arrangement, there may be a large amount of confidential information that either party would want to remain secret but is shared out of necessity or convenience to the other party, including, customer data, business process, or methods; or developer strategies and methods. Proper confidentiality agreements will protect the respective party’s rights in this arena, but in order to be a protectable trade secret, the information must have an independent business value and be kept as a secret.
Domain Names and Trademarks
Trademarks are self-explanatory (at least no unique explanation is needed in the context of programming), but internet domains have their own unique approaches to trademark law in that laws have been passed to specifically prohibit domain squatting and case law has developed relating to trademark infringement from domain names themselves. This is such a prominent issue that ICANN has established a Uniform Domain-Name Dispute-Resolution Policy that addresses the circumstances in which ICANN will actually cancel, suspend, or event transfer domain names. There are event specific policies that have expedited administrative procedures for more abusive tactics like cybersquatting.
Terms and Conditions
The terms and conditions (T&S) section of your application is very similar to an EULA except that it may add additional terms similar to any contract agreemet. Many mobile stores like Apples’ AppsStore or Google’s Google Play will have their own standard T&S that you may modify to your liking. In fact, any website you visit that provides some kind of service or product usually has some kind of T&S. These T&S shrink wrap contracts are truly saviors for limiting liability for the application or website owner; however, do not just go putting whatever terms you want since no one ever reads them anyway. There are limits when it comes to unfair provisions for consumer users. Consumer protection laws have been passed to specifically address unfair contracts that consumers are often pulled into in electronic contracts. For example, arbitration clauses have only recently been enforced in the courts due the fact that some of these T&S are considered to be “adhesion contracts.”
API’s
Besides normal internet use, programmers run into terms and conditions when integrating third party services through an application programming interface (API). Each API usually (or should if you are writing your own) has its own terms and conditions that you should review way before planning for an integration with your application. Not only could you be liable for damages for breaching the terms and conditions but understand that these terms and conditions may often be changed unilaterally–especially free services. Just ask any startup that based their application on Twitter’s API when Twitter later pulled the rug out under a number of developers.
ADA
The American Disabilities Act (ADA) requires certain accommodation for employers. In-house software applications should generally be ADA compliant, but the ADA may be revised in the upcoming years to require some government websites to be accessible to those with disabilities, particularly the vision and hearing impaired. Accordingly, developers should be cognizant of some of the development standards that deal with these issues as your employers or clients may be looking for these types of requirements in their future projects.
Employment Law
Though not unique to programmers, it is such a common problem that it must be discussed. There are subtle but major differences between exempt employees, nonexempt employees, and independent contractors. I have discussed some of the subtle differences in other blog posts, but you should generally know that employers often try to classify their personnel as exempt employees or independent contractors due to the financial advantages of not having to pay an employee overtime or certain taxes. Accordingly, this often comes up as a contested issue.
Specifically in the area of programming, California has what is called the Computer Professional Exemption that designates those that meet the qualifications to be an exempt employee. These types of exemptions are intended to be for high level professionals that have a “more fair” bargaining position to negotiate and set his or her own rate of pay. Those nonexempt employees do not have such a luxury and so the many labor laws to protect labor force is extended to them. Employers often misapply this “Computer Professional Exemption” since the requirements are fairly strict. As of writing of this post exempt employees require to be paid approximately 83k + a year salary and more for this particular exemption, 50% of the programmer’s time should be spent on “analysis and design” of software as opposed to simply writing code. It’s not appropriate to leave the explanation of this exemption so simply as the actual statute is much more detailed and should be referred to before designating this exemption.
General Internet Law
When doing business electronically, there is a whole other list of legal issues you have to deal with that are specific to online business. Everything from electronic contracting, privacy laws, source code escrows, viruses and security, and electronic discovery are large issues in themselves.
Conclusion
The reality is that like any profession comes the law, but one enjoyable (for lawyers) aspect of the law relating to programmers is that for the last two decades legal scholars have been finding ways to apply old law to new technology, sometimes creating some unintended consequences. The legislature has made its attempts to adjust in these circumstances but programmers will continue to be the creators of great work product that will be subject to legal disputes.