460 likes | 467 Views
Learn about the fundamentals of real-time system development using open source software. Explore the history of open source, motivations of developers, and the impact on social welfare.
E N D
Real-Time System Development 即時系統開發 Open Source 薛智文 cwhsueh@csie.ntu.edu.tw http://www.csie.ntu.edu.tw/~chsueh/ 98 Spring
Outline • Introduction • History of Open Source Software • Learning from hackers • GNU GPL and LGPL • The Open Source Definition • GPL FAQ /118
Categories of Free and Non-Free Software -http://www.gnu.org/philosophy/categories.html /118
What Is Copyleft? • Copyleft: Pragmatic Idealism • Copyleft is a general method for making a program free software and requiring all modified and extended versions of the program to be free software as well. • Copyleft says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. • Copyleft guarantees that every user has freedom. /118
Introduction (1) • The open source development model fundamentally changes the approaches and economics of traditional software development. • Open source software is developed by an internet-based community of programmers. • Participation is voluntary and participants do not receive directcompensation for their work. • The full source code is made available to the public. • Developers also devolve most property rights to the public, including the right • to use, • to redistribute • and to modify the software free of charge. /118
Introduction (2) • Proponents : a paradigmatic change • the economics of private goods built on the scarcity of resources are replaced by the economics of public goods where scarcity is not an issue. • Critics : • source software will always be relegated to niche areas, that it cannot compete with their commercial opponents in terms of product stability and reliability • open source projects lack the capability to innovate. /118
Questions • In the absence of direct compensations what is it that motivates the participants? • Is the image correct that open source developers are highly altruistic people who want to advance the good cause? • Are there other explanations? • What are the implications on socialwelfare? /118
Motivations of Participating in Open Source Projects • Understanding what drives open source developers to participate in open source projects is crucial for assessing the impact of open source software. • internal factors: • intrinsic motivation and altruism • external rewards: • future returns and personal needs • Survey administered to open source programmer /118
Sources of Motivations • Intrinsic motivation includes the desire of feeling competence and self-determination. • External rewards include factors such as direct or indirect monetary compensation, and other’s recognition as well. • Motivation is viewed as a function of : • ability of the individual over potential, • ability over ability reinforcement behavior. /118
Internal Factors • Motivations that are ultimately rooted within the individual himself. • Intrinsic motivation • Altruism • Community identification • Open source programmers are not motivated by monetary incentives but by their own hobbies and preferences instead. • they receive rewards from increasing the welfare of others. /118
Intrinsic Motivation (1) • Certain activities and behaviors that people like to perform naturally, e.g., playing games or collecting coins. • Arising from a person’s inborn need for feeling competent and self-determining in dealing with his environment. -Deci • That is why some of the intensity with which people pursue their hobbies. • The need for -Maslow • selfactualization • esteem needs • desire for a stable, firmly based, usually high evaluation of themselves • some includes the external desires for recognition, fame and reputation /118
Intrinsic Motivation (2) • Programmers are motivated by the feeling of competence, satisfaction and fulfillment that arises from writing programs. • “Innate desire to code, and code, and code until the day I die.” • Intrinsically motivated goals as autonomous goals have been suggested to be associated with most effortful behaviors comparing to controlled personal goals (nonintrinsically motivated goals), and will thus lead to higher possibility of goal attainment. /118
Problem of Intrinsic Motivation • If the open source movement were solely based on this motivation, a disadvantage over commercial development might result. • The motivation of the participants is not necessarily linked to the needs of the users. • if the community of users and the community of programmers are not identical, open source software would have an inherent problem of incorporating user needs. /118
Altruism • A person seeks to increase the welfare of others. • a personal disposition opposite to selfishness • doing something for another at some cost to oneself • Open source programmers provide something for others (writing programs that have open source codes) at their own costs (time, energy, opportunity costs). • Is widely regarded as being associated with positive norm and should have a positive influence on the level of participation in open source projects. /118
Community identification • Maslow’s needs of belonging and love. • Programmers may identify themselves as part of the open source community and align their goals with those of the community. • They may treat other members of the community as their kin and thus be willing to do something beneficial to others but not to themselves. • Also termed as “kin selection altruism” /118
External rewards • Mostly notcompensated for their contributions directly, but receive indirect rewards by increasing their marketability and skill base or selling related products and services. • Some, the fruits of the software. • Future rewards • Personal needs /118
Future rewards • Some open source programmers may view their participation as an investment from which they expect future returns. • Revenues from related products and services. • Human capital. • Self-marketing. • Peer recognition. /118
Revenues from related products and services • commercial consulting, training, distribution, support, and implementation services. • the open source community endorses such income-generating activities . • conflict: improving the open source software may reduce the potential for selling its related services or products such as maintenance and trouble-shooting etc. /118
Human Capital • Personal skills, capabilities and knowledgeare deemed as a special form of capital, human capital, by economists. • Open source programmers may also participate in open source projects to expand their skill base. • Human capital level can be increased by • education, training, learning, and practicing etc. leading to better job opportunities, higher salaries and more fulfilling jobs. • The ‘open’ source codes and freedom to choosetasks enable the open source programmers to select the learning experiences that meet their demand and interests. • Entry-level programmers like college students to participate in realistic projects at a very early stage. /118
Self-marketing • Working for open source software is an effective way to demonstrate their capability and skillfulness in programming. • Claims of competence in programming can be well reinforced by the achievements in open source projects. • Participating in open source projects therefore can be a good advertising channel to publicize one’s skillfulness and capabilities. • The larger the contribution of an individual to the open source projects, the more likely it is that the commercial software vendors will recognize the value of the individual, and the larger the incentive will be for this individual to apply his skills in a paid position. • It may help to lure the best programmers and most productive minds away from these projects into more profitable commercial development. /118
Peer Recognition • Derived from the desire for fameand esteem, which is associated with future returns. • Open source programmers receive rapid and constructivefeedback about the quality of their composition. • Feedback always has a positive effect – it shows the programmer that people are using their contribution. • Thus feedback is self-reinforcing: • It encourages the author to spend additional effort to perfect his code. /118
Personal Needs (1) • Many open source projects were initiated because a programmer had a personal need for some software. • PERL was created by Larry Wall when he needed to generate web pages programmatically. • These routines were later shared with other programmers, who also extended and refined the routines. • The similar development of the Apache in 1995. • Participants of open source projects may act rationally after their own self-interest. • There should be a limit to the amount of effort that a programmer may provides for free. • The interests of the users and developers are often aligned: • both are interested in improving the functionality; • both are willing to invest in improvements. /118
Personal Needs (2) • The more complex a product is, the less dependent it is on other modules of software, so the more likely its contribution be identified and communicated, and the more likely it is that a programmer will sell his software rather than provide it for free. • Eric Allmann, the founder of Sendmail, one of the most successful email server programs, has started a company that provides an add-on product to Sendmail to simplify its configuration and administration. /118
Personal Needs (3) • However, traditional software houses structure their license agreements in a way that prevents customers to invest in their software by making modifications and by sharing the improvements with others. • because of the fear of piracy, software houses have given up considerable potential investment opportunities that customers are willing to take. • A crucial oversight in the marketing and productevolution strategies of current software companies. /118
Empirical Analysis • 389 persons sent, 81 responses, 2 invalid, 21% • 95 % male /118
Learning from Hackers-The open-source movement can teach project managers a lot BY DENIS F. CIOFFI The George Washington University IEEE SPECTRUM • June 2001 /118
Learning from Hackers • 1999, Linux accounted for 27 percent of operating-system software for computer servers sold, up from 17 percent in 1998, — International Data Corp. • Linux is more than just a product — it’s a mindset. • On the surface, the distance between formal management and the open-source movement that created Linux is big. • Linux seemed to defy that management is essential to good products and services. • Managers can learn much from open-source practitioners, or hackers, from Eric Raymond’s 1997 manifesto “The Cathedral and the Bazaar” /118
Learning from Hackers • Open-source hackers are people who “solve problems and build things.” • Being skilled at using management tools is less important than having a good outlook—one that encourages cooperation, yet gives each worker the opportunity to be creative. • The New Hacker’s Dictionary defines management as follows: “Corporate power elites distinguished primarily by their distance from actual productive work and their chronic failure to manage.” /118
The Hacker Attitudes • The world is full of fascinating problems waiting to be solved. • Nobody should ever have to solve a problem twice. • Boredom and drudgery are evil. • Freedom is good. • Attitude is no substitute for competence. /118
Fascinating Problems • A project in the standard management definition refers to a temporary effort to create something new. • A process, by contrast, is work that is repeatable and well understood. • For each project to be truly new, then, completed projects need to be studied thoroughly, so that those aspects that are routine or repeatable can be turned into processes. • For engineers and scientists, the fascinating problems exist where processes have yet to be defined. • The more one reserves the word “project” for work that truly results in never-before-attained outcomes, the greater the opportunity for fascination, and the greater the possibility of attracting good minds. • In a mature organization, the term “fascinating project” should be redundant. /118
Never Solve a Problem Twice • How to dress? • At the close of every project, the manager needs to ask, What did we learn? And how can we do better? • The importance of fully documenting the results of each project becomes obvious. • A good hacker not only debugs code but also annotates it, so that others unfamiliar with the code may understand and use it. /118
Boredom is Evil • Some managers have great difficulty with the third hacker attitude, insisting that a certain amount of boredom and drudgery in work is unavoidable. • While the term “project” may be used to describe what they do, in reality the employees are solving essentially the same problem many times, finding little challenge and consuming much effort. • While boredom and drudgery exist, though, a good manager tries to reduce their occurrence, appreciates those who must contend with boring work, and looks for ways to minimize dull operations through automation. /118
Freedom is Good • Employees who are free to think and to act will share their ideas and point out mistakes as they occur; that in turn improves a company’s bottom line. • If you’re not willing to give workers freedom, why hire bright people in the first place? • Fundamental to freedom is valid (in the sense of modeling reality) information, which in turn requires honesty. • Does your organization maintain an environment that gives workers freedom and encourages communication, or does it reward silence, while hoping for excellence? /118
Competence Trumps Attitude • “zeal” or any other emotion does not excuse dishonesty and incompetence. • Freedom gives excellence its opportunity, but talent and hard work produce a successful result. /118
Suggestions (1) • The attitudes communicate their intentions well because of their simplicity, and their simplicity is their power. • Starting with the last one and working backward. • Attitude is no substitute for competence. • Freedom is good. • Boredom and drudgery are evil. • Nobody should ever have to solve a problem twice. • The world is full of fascinating problems waiting to be solved. /118
Suggestions (2) • As a reward for your competence, support of freedom, reduction of others’ drudgery, and appreciation that people should not waste their time and brainpower, you get to manage attacks on fascinating problems. • Manager: One who believes and practices the five hacker attitudes in executing fascinating /118