Since the introduction of personal computers, software has emerged as a driving force in the global economy and a major industry in its own right. During this time, the U.S. government has reversed its prior policy against software patents and is now issuing thousands of such patents each year, provoking heated controversy among programmers, lawyers, scholars, and software companies. This book is the first to step outside of the highly polarized debate and examine the current state of the law, its suitability to the realities of software development, and its implications for day-to-day software development. Written by a former lawyer and working software developer, Inventing Software provides a comprehensive overview of software patents, from the lofty perspectives of legal history and computing theory to the technical details and issues of actual patents. It is the only book to date to provide software developers with a practical guide for studying and appraising their competitors' patents and safeguarding the value of their own efforts. Though intended primarily for programmers and managers, attorneys and software company investors will find Inventing Software readable, useful, and illuminating.
I began this book with the goal of analyzing the ongoing debate within the programming community over the desirability and ultimate effect of software patents. As I delved deeper into the subject, however, I came to the conclusion that the particulars of the debate—which are not that interesting or enlightening—obscure a larger and more important story. Software development is a new kind of creative activity, one that defies the neat and mutually exclusive categorizations of intellectual effort as either artistic or scientific. This defiance is nicely mirrored in the inability of either copyrights or patents to provide an effective and sensible method for protecting innovative activity in software.