I read an interesting editorial from Glyn Moody the other day on Stephen Kinsella asking the question whether or not copyright or patents were more damaging to innovation and creativity. In the end, Kinsella argues that copyrights were more dangerous. I think the question can best be seen with respect to software development in the following juxtaposition of two ideas. Economically, collaborative development of software using free and open source licenses as both community social contract and distribution license is possibly the best software re-use strategy we have invented to beat what I refer to as The Two Ugly Ratios of Software Development:
- The number of working lines of code the average developer writes in a day.
- The number of defects per thousand lines of code in delivered software.
Everything we’ve invented in the past five decades in software engineering discipline and programming systems is designed to beat these two ratios by developing more and better software faster using fewer lines of code. Collaborative well-developed and FOSS shared projects offer stable dynamic software building blocks of re-usable code. We can assemble these building blocks in new and powerful solutions because they’re peer-reviewed, proven solutions to hard programming problems. In some cases, they’re the simplest expression of a solution that can be developed, regardless of the complexity. Software engineers are taught that software re-use is good economics. And when the old adage of “small, fast, or cheap — pick two” is used, FOSS licensed components give you “fast” and “cheap” straight out of the box whether you’re software prototyping or building final product. But then lawyers get involved. Copyright as the way software needs to be protected may well have been the stupidest decision we ever made when we started considering ways that a company’s investment in this new thing called software needed to be protected. I’m not saying it wasn’t logical — copyright ideas were regularly extended through history and applied to new things to protect them. And the law gets stretched a little further and new edge cases are presented, argued and decided by people not trained in software development to the point that software copyright law is this enormous mess of stretched law and exceptional edges to it. When I first left the IT world for the land of independent software vendors, we still had to file a paper print-out of the program with the U.S. Copyright Office to ensure we were legally protected under the Copyright Act. It was already bad enough in the early 90s that you only had to file the first 17 or 19 pages. Programs were large enough and complex enough that the copyright office was apparently running out of filing cabinet space. Instead of rethinking the overall problem, they simply lowered the filing bar. Then copyright law was changed such that every expression you create from a letter to your mother to the next Great American Novel is automatically protected under copyright the second your metaphorical pen leaves the metaphorical page. Presumably that’s when employment agreements in the software industry changed to ensure the company owned everything you produced, and your own work on your own time became a cascading set of exceptions. But here’s the rub. Lawyers break copyright law all the time. They simply choose to ignore it as it’s very inconvenient for them and their practice of the law. As I pointed out in a post a while ago on how to talk to your lawyer about FOSS licensed software, lawyers never start a new contract or brief with a blank piece of paper. They use and re-use text all the time from other contracts because that text is peer-reviewed, proved to work, and in many cases the simplest expression of a solution that can be written, regardless of how complex the problem. But every one of those pieces of work is covered by copyright law the moment their pen leaves the page. I heard a story once (that may well be apocryphal) that a particular software company at one time put the copyright notice on their contracts and cross licenses. They were encouraged by their peers very quickly to stop such a silly practice. The entire legal profession would shutdown if they needed actually to create new and novel text to represent the same and similar ideas all the time. So lawyers regularly infringe one another because it is the most economical way to write better contracts faster. I imagine they sometimes even use text that they learned, saw, and copied from their previous law firm. But apparently we as software engineers need to behave less economically. While the lawyers debate how we as software developers might ensure beyond a shadow of non-zero legal probability that we are in compliance with every FOSS license and copyright notice, and build expensive systems to prove and protect the provenance of our creations, they do so in language they crib from one another. Just a bit of irony to start your Holiday Week.