The Cathedral and the Bazaar Background by Eric S. Raymond � Eric Raymond, by 1993, had contributed to UNIX � . �� . ����� ���������� � and open source community for 10 years. Information Systems � Big s/w should be well-planned like a Cathedral. Engineering Laboratory (ISEL) Dept. of Computer Engineering � Linux development model is: Faculty of Engineering � Release early and often Chulalongkorn University � Delegate everything you can Yunyong.T@Chula.ac.th � Be very open @YunyongTeng � Linux community � a great babbling bazaar ����� ����� ��������������������� ��������������������� 12/13/09 1 12/13/09 2 Rule # 1 Rule # 2 � Every good work of s/w starts by scratching a � Great programmers know what to rewrite. developer's personal itch. � Constructive laziness. � Necessity is the mother of invention. � A is for results, not efforts. � Too often s/w developers spend their days � Linus Torvalds reused MINIX codes. grinding away for pay at programs they neither � UNIX has source-sharing tradition � code need or love. reuse. � Linux � average quality of s/w is high. � Linux world has terabytes of open sources. ����� ����� ��������������������� ��������������������� 12/13/09 3 12/13/09 4
Rule # 3 Rule 4 & 5 � Plan to throw away your s/w. � If you have the right attitude, interesting problems will find you. � You will not understand the problem until after � When you lose interest in a program, your last st time you implement a solution. the 1 duty to it is to hand it off to a competent � Be ready to start over at least once . successor. � � . ����� 's Law – 1-byte end-to-end ����� ����� ��������������������� ��������������������� 12/13/09 5 12/13/09 6 Rule # 6 Rule # 7 � Users as co-developers � � Release early & often & listen to users rapid code improvement and debugging � In 1991 Torvalds released new kernels more � UNIX & Linux � users are hackers too than once a day. � Encourage users to diagnose problems & � Torvalds did not invent rule#7 but push this suggest fixes UNIX development model to the limit to match Linux complexity. � Linux Torvalds: “I'm basically a very lazy person who likes to get credit for things other people � actually do.” Lazy like a fox. ����� ����� ��������������������� ��������������������� 12/13/09 7 12/13/09 8
����� ����� ��������������������� ��������������������� 12/13/09 9 12/13/09 10 Rule # 8 Analogy to BT � Given enough eyeballs, all bugs are shallow. � � Rule # 8 is similar to BitTorrent phenomenon Linus' Law. � Popular content is quickly delivered by the � Cathedral builders – few – long – arduous � aggregate bandwidth of all bitTorrent peers. disappointments � A large content is delivered by the Internet � Bazaar – many – short – bugs are shallow � more � The Linux kernel is developed by the Internet corrections ** positive attitude ** Bugs are natural – don't worry! Debugging is parallelizable. - Jeff Dutky ����� ����� ��������������������� ��������������������� 12/13/09 11 12/13/09 12
Rule # 9 � Smart data structures and dumb code work better. ����� ����� ��������������������� ��������������������� 12/13/09 13 12/13/09 14 Testing the Theory Rule # 10 � Release early & often (less then 10 days) � Treat beta testers as the most valuable resource � Add everyone to the beta list � High quality reports � Chatty announcement to beta list to encourage � Bug fixes participation � Thoughtful criticism � Ask opinion and praise beta testers � Fan mail � Feature suggestions popclient ����� ����� ��������������������� ��������������������� 12/13/09 15 12/13/09 16
Mature Bazaar-Style Project Rule # 11 � Beta list peaked at ~300 � Good ideas from others are better than your own. � People got off the list because the s/w is � If you are honest with how you owe others, working so well. others will think you are great, e.g. Linus of Linux and Larry Wall of Perl. ����� ����� ��������������������� ��������������������� 12/13/09 17 12/13/09 18 Rule # 12 Rule # 13 � Innovation comes from realizing that your � Perfection arises from nothing more to take concept of the problem was wrong away from the design � You are not asking the right question � Antoine de Saint-Exuprey (aviator & aircraft designer) � When your code is getting both better & simpler, then you know it is right. ����� ����� ��������������������� ��������������������� 12/13/09 19 12/13/09 20
Rule # 14 & 15 Initial Condition � Great tool has unexpected uses � Bazaar-style project – Project coordinator � Gateway s/w must disturb data stream as little � Plausible promise as possible. � Recognize good design ideas � Good people skills ����� ����� ��������������������� ��������������������� 12/13/09 21 12/13/09 22 Evolution of S/W in Bazaar No Internet � Fred Brooks's The Mythical Man-Month � Limited talent pools � Gerald Weinberg's The Psychology of Computer � UC Berkeley Programming � AT&T's Bell Lab � Egoless Programming � MIT's AI Lab � Code territory � UNIX can not do this: � Licenses � Trade secrets � No Internet ����� ����� ��������������������� ��������������������� 12/13/09 23 12/13/09 24
The Internet � Anarchist's paradise � Severe effort of many converging wills Linux was the first project to make a conscious � Principle of command vs. principle of and successful effort to use the entire world as its talent pool. understanding � Egoboo – pleasure from public recognition of voluntary work. ����� ����� ��������������������� ��������������������� 12/13/09 25 12/13/09 26 Future of Open Source Open source will win because commercial world cannot win an evolutionary arm race with open-source communities that can put orders of magnitude more skilled time into a problem. Open source s/w is developed by the Internet. � . �� . ����� ���������� � ����� ��������������������� 12/13/09 27
Recommend
More recommend