Linus's Law
Encyclopedia
There are two statements named Linus's Law: one by Eric S. Raymond
concerning software bug
detection by a community, and the other by Linus Torvalds
about the motivations of programmers.
, named in honor of Linus Torvalds
and formulated by Raymond in his essay and book "The Cathedral and the Bazaar
" (1999). The law states that "given enough eyeballs, all bug
s are shallow"; or more formally: "Given a large enough beta-tester and co-developer
base, almost every problem will be characterized quickly and the fix will be obvious to someone." Presenting the code to multiple developers with the purpose of reaching consensus about its acceptance is a simple form of software reviewing. Researchers and practitioners have repeatedly shown the effectiveness of the reviewing process in finding bugs and security issues, and also that reviews may be more efficient than testing.
In Facts and Fallacies about Software Engineering, Robert Glass refers to Linus' Law as a "mantra" of the Open source
movement, but calls it a fallacy, stating that research has found that the number of bugs found decreases with too many inspectors, and that no research supports the Law as stated. Interestingly, closed-source practitioners tacitly support the law's notion, by promoting stringent, independent code analysis during a software project's development.
of the book The Hacker Ethic and the Spirit of the Information Age (2001) Torvalds introduces his "Linus's Law", which is that every motivation that makes a man do something can be classified under "survival", "social life" and "entertainment." As a result, he writes, progress is defined as reaching a higher category: not doing a thing merely for survival, but for social reasons, and then, even better, just for fun.
Eric S. Raymond
Eric Steven Raymond , often referred to as ESR, is an American computer programmer, author and open source software advocate. After the 1997 publication of The Cathedral and the Bazaar, Raymond was for a number of years frequently quoted as an unofficial spokesman for the open source movement...
concerning software bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...
detection by a community, and the other by Linus Torvalds
Linus Torvalds
Linus Benedict Torvalds is a Finnish software engineer and hacker, best known for having initiated the development of the open source Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator...
about the motivations of programmers.
By Eric Raymond
Linus's Law as described by Raymond is a claim about software developmentSoftware development
Software development is the development of a software product...
, named in honor of Linus Torvalds
Linus Torvalds
Linus Benedict Torvalds is a Finnish software engineer and hacker, best known for having initiated the development of the open source Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator...
and formulated by Raymond in his essay and book "The Cathedral and the Bazaar
The Cathedral and the Bazaar
The Cathedral and the Bazaar is an essay by Eric S. Raymond on software engineering methods, based on his observations of the Linux kernel development process and his experiences managing an open source project, fetchmail. It examines the struggle between top-down and bottom-up design...
" (1999). The law states that "given enough eyeballs, all bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...
s are shallow"; or more formally: "Given a large enough beta-tester and co-developer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...
base, almost every problem will be characterized quickly and the fix will be obvious to someone." Presenting the code to multiple developers with the purpose of reaching consensus about its acceptance is a simple form of software reviewing. Researchers and practitioners have repeatedly shown the effectiveness of the reviewing process in finding bugs and security issues, and also that reviews may be more efficient than testing.
In Facts and Fallacies about Software Engineering, Robert Glass refers to Linus' Law as a "mantra" of the Open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
movement, but calls it a fallacy, stating that research has found that the number of bugs found decreases with too many inspectors, and that no research supports the Law as stated. Interestingly, closed-source practitioners tacitly support the law's notion, by promoting stringent, independent code analysis during a software project's development.
By Linus Torvalds
In the prologuePrologue
A prologue is an opening to a story that establishes the setting and gives background details, often some earlier story that ties into the main one, and other miscellaneous information. The Greek prologos included the modern meaning of prologue, but was of wider significance...
of the book The Hacker Ethic and the Spirit of the Information Age (2001) Torvalds introduces his "Linus's Law", which is that every motivation that makes a man do something can be classified under "survival", "social life" and "entertainment." As a result, he writes, progress is defined as reaching a higher category: not doing a thing merely for survival, but for social reasons, and then, even better, just for fun.
See also
- List of eponymous laws
- Collaborative software development modelCollaborative software development modelThe Collaborative software development model is a style of software development whose focus is on public availability and communication, usually via the Internet.The software development model began widespread adoption with the Linux kernel in 1991....
- CrowdsourcingCrowdsourcingCrowdsourcing is the act of sourcing tasks traditionally performed by specific individuals to a group of people or community through an open call....
- Software peer reviewSoftware peer reviewIn software development, peer review is a type of software review in which a work product is examined by its author and one or more colleagues, in order to evaluate its technical content and quality.-Purpose:...
- Wisdom of the crowdWisdom of the crowdThe wisdom of the crowd refers to the process of taking into account the collective opinion of a group of individuals rather than a single expert to answer a question. This process, while not new to the information age, has been pushed into the mainstream spotlight by social information sites such...
- Maslow's hierarchy of needsMaslow's hierarchy of needsMaslow's hierarchy of needs is a theory in psychology, proposed by Abraham Maslow in his 1943 paper A Theory of Human Motivation. Maslow subsequently extended the idea to include his observations of humans' innate curiosity...