Software development inherently lends itself to the reuse and adaptation of existing materials. While in the early days of this young technology this may have primarily implied the reuse by an individual of their own code, the evolution of platforms such Bulletin Boards, then USENET, and finally the World Wide Web, have vastly extended the range of sources of third party content, and opportunities for sharing such code. Meanwhile, the field of software development itself has evolved so that it is virtually unknown to truly write a program from scratch, but rather to agglomerate modules at varying levels of abstraction from the underlying machine code.
Meanwhile, it must be borne in mind that software code automatically benefits from international copyright protection accruing to the author of the code, or if the author is an employee, to their employer. As such, anyone wishing to reuse code that does not belong to them, must do so in compliance with a license from the owner of the code. Modern software projects generally incorporate elements with many different licenses, and tracking these, and ensuring that the terms of each license is complied with is increasingly a management effort in its own right.
Third party commercial software is generally obtained via a more or less formal procurement process, with a payment being made in exchange for an explicit license. This scenario may be easier to keep track of, as requiring an explicit engagement on the part of the licensee. The situation is often less easily managed for non-commercial code such as code snippets from internet forums, "freeware" and in particular code made available under an Open Source license.
The Open Source movement began in 1983 with the founding of the GNU Project, and the resulting Free Software Foundation. This movement drove in particular the development of Copyright licenses whose purpose was not to prevent dissemination, but rather to support and encourage it, on specified terms considered to be consistent with these broader aims. The GNU project produced the GPL (General Public License), and as the Open Source Movement became more popular, other developers started their projects with a similar ethos, and made their code available on the same terms. While providing users with the right to access source code, to modify it and distribute it, the GPL license also imposes a number of obligations. These are complex and outside the scope of this article, however many felt that they were dissuasive in particular with respect to use in commercial projects. This lead to a proliferation of licenses which may be seen as varying on a scale of restrictiveness with The GPL series of licenses being amongst the most restrictive, and licenses such as the MIT or BSD licenses as being most permissive.
Regardless of their position on this scale, almost all open source licenses impose some constraints on entities wishing to use material that they govern. For example, the very permissive BSD license still requires that a copyright notice and a copy of the license itself be included in any distribution of the material among other requirements. This minimal requirement is common to most Open Source licenses, so that even if no more onerous requirements are present, any software release including open source material will typically comprise a step of compiling a notice file addressing these requirements for each open source module.
Meanwhile, each license has its own particularities, some of which can have serious implications for the rights of a user, for example imposing constraints on the terms under which their own code can be licensed to end users, their freedom to enforce patent rights, what materials they must make available to third parties on demand, and so on.
Failing to comply with any requirement of a license may invalidate the license itself, leaving an entity facing a legal liability to the copyright owner for copyright infringement, a possible obligation to recall and/or rewrite an infringing software product, or other liabilities.
Although Open Source Software brings its own special set of considerations, there are other important issues relating to third party copyrights in software development. Copyright protects images and text other than software code, under different rules to those pertaining to software code, and special care must be taken in ensuring the appropriate rights are obtained for such material, even if developed internally. Much material, including images and text, and also software code, is available on the internet without apparent restriction, but can nevertheless not be safely used in a commercial software product without obtaining and complying with a suitable license.
In view of at least these considerations, no commercial software product should be released without a thorough assessment of the products third party content, the applicable terms, and the steps necessary to fully comply therewith.