This is an excerpt from my upcoming corporate open source strategy book, being published by Pragmatic Bookshelf in 2021. All book excerpt content is early in the development process and therefore unedited; the errors are mine alone (and will be fixed before publishing 😉).
Intellectual property (IP) concepts play a huge role in software in general and free and open source software in particular. IP is a complex and nuanced body of law, but thankfully you don’t need to pass the bar to understand the fundamental concepts, starting with copyright and its relation to software.
As you’ve probably already guessed, software is one of those things that does fall under copyright. The source code and related files are the expression of the ideas of the creators. Therefore, whoever writes the code (or the entity for which they’re writing it) has copyright over their creation. However, as you’ve probably also guessed, the relationship between software and copyright falls firmly in the It’s Complicated camp.
According to copyright law, software counts as a literary work. It’s the written expression of an idea. Remember, though: only the expression falls under copyright, not the idea itself. Therefore you could write a piece of software that performs the function of an egg timer and you would have copyright over that software. However, I could see your software, think, “Gee, I could really use a digital egg timer!” and then implement the idea myself. Unless you somehow managed to receive a patent on egg timers, I would be entirely within my rights to create this new expression of an existing idea. You could sue me for copyright infringement anyway, but you’d need to prove that my program copies yours. Some of the criteria used to prove this include the structure and organisation of the original source code, so even if I were to have used a different programming language, if I use the same code structure (even coincidentally) then it can appear as if I copied your program. In the eyes of the court it may look like my program is an adaptation or a translation of yours, which would be a violation of copyright. See? Complicated.
Adding to that complication is the fact that while the source code for a program is copyrightable, the algorithms that the code implements are not. These fall into that practical-so-not-copyrightable bucket I mention above, where they hang out with scientific and mathematical formulae. In the process of writing your egg timer software, you may implement an algorithm that calculates the ideal egg-cooking time based upon the size and starting temperature of the egg, the starting temperature of the cooking water, the current height above sea level, and the desired hardness of the final boiled egg. Because this variable-based calculation is a formula, I’m free to implement it in my own egg timer…unless you patent it. Patents exist to claim ownership and provide protection for inventions and original ideas, and novel algorithms can qualify as such. We’ll cover patents more in a future chapter.
Just when you think we’ve reached the end of the complications for copyright and software, the matter of shared-authorship swaggers into the conversation. This complication weighs fairly heavily on FOSS projects, since nearly all of them are the work of multiple programmers and contributors. Generally speaking, each of those programmers and contributors retains copyright over their specific contribution to the software. Much like individual polyps come together to form a single beautiful tropical coral, individual copyrighted contributions form a single FOSS project. While usually the project can now be treated as a whole—just as we typically speak of the coral as a single entity—there are times when the rights of the individual copyright holders come into play. For example, relicensing of a project can require the input of all copyright holders, since the new license may change how their work can be used. Relatedly, should someone fail to comply with the chosen license of a project, any of the contributors whose copyright is involved in the infringement could take legal action against the violator.
While every business manager and software developer both can and should understand fundamentals such as these, never forget that there are a lot of edge cases in software copyright and some of those edges can be very sharp. Every company needs access to good intellectual property counsel and needs to make liberal use of it. Don’t tackle IP questions yourself. Leave these legal issues to the pros.
If your company would like help strategically navigating open source in a way that’ll make a positive difference to its bottom line, hire me.
The excerpt content is copyright © 2021 The Pragmatic Programmers, LLC and used with permission. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.
All other content of the post is Copyright VM Brasseur and licensed under CC BY-SA.