นี่คือรุ่น 3.0
สงวนสิขสิทธิ์ © 2543 Eric S. Raymond
สงวนสิขสิทธิ์ © 2545 Isriya Paireepairit (markpeak@gmail.com)
สงวนสิขสิทธิ์ © 2545 Arthit Suriyawongkul (arthit@gmail.com)
สงวนสิขสิทธิ์ © 2549 Theppitak Karoonboonyanan (thep@linux.thai.net)
สงวนสิขสิทธิ์ © 2549 Visanu Euarchukiati (viseua@inet.co.th)
$Date: 2008-10-03 08:27:38 $
บันทึกรุ่น | ||
---|---|---|
รุ่นที่ 1.57 | 11 September 2000 | esr |
New major section ``How Many Eyeballs Tame Complexity''. | ||
รุ่นที่ 1.52 | 28 August 2000 | esr |
MATLAB is a reinforcing parallel to Emacs. Corbatoó & Vyssotsky got it in 1965. | ||
รุ่นที่ 1.51 | 24 August 2000 | esr |
First DocBook version. Minor updates to Fall 2000 on the time-sensitive material. | ||
รุ่นที่ 1.49 | 5 May 2000 | esr |
Added the HBS note on deadlines and scheduling. | ||
รุ่นที่ 1.51 | 31 August 1999 | esr |
This the version that O'Reilly printed in the first edition of the book. | ||
รุ่นที่ 1.45 | 8 August 1999 | esr |
Added the endnotes on the Snafu Principle, (pre)historical examples of bazaar development, and originality in the bazaar. | ||
รุ่นที่ 1.44 | 29 July 1999 | esr |
Added the ``On Management and the Maginot Line'' section, some insights about the usefulness of bazaars for exploring design space, and substantially improved the Epilog. | ||
รุ่นที่ 1.40 | 20 Nov 1998 | esr |
Added a correction of Brooks based on the Halloween Documents. | ||
รุ่นที่ 1.39 | 28 July 1998 | esr |
I removed Paul Eggert's 'graph on GPL vs. bazaar in response to cogent aguments from RMS on | ||
รุ่นที่ 1.31 | February 10 1998 | esr |
Added ``Epilog: Netscape Embraces the Bazaar!'' | ||
รุ่นที่ 1.29 | February 9 1998 | esr |
Changed ``free software'' to ``open source''. | ||
รุ่นที่ 1.27 | 18 November 1997 | esr |
Added the Perl Conference anecdote. | ||
รุ่นที่ 1.20 | 7 July 1997 | esr |
Added the bibliography. | ||
รุ่นที่ 1.16 | 21 May 1997 | esr |
First official presentation at the Linux Kongress. |
บทคัดย่อ
ผมวิเคราะห์แยกแยะโครงการโอเพนซอร์สที่ประสบความสำเร็จโครงการหนึ่ง คือ fetchmail ซึ่งดำเนินการโดยเจตนาจะทดสอบทฤษฎีที่น่าประหลาดใจเกี่ยวกับวิศวกรรมซอฟต์แวร์ ที่ได้มาจากการพิจารณาความเป็นมาของลินุกซ์ ผมกล่าวถึงทฤษฎีเหล่านี้ในมุมมองของรูปแบบการพัฒนาสองแนวทางที่แตกต่างกันโดยสิ้นเชิง คือรูปแบบ ``มหาวิหาร'' ที่ใช้กันในโลกพาณิชย์เกือบทั้งหมด กับรูปแบบ ``ตลาดสด'' ของโลกลินุกซ์ ผมแสดงให้เห็นว่า รูปแบบเหล่านี้เกิดจากข้อสมมุติที่ขัดแย้งกัน เกี่ยวกับธรรมชาติของงานแก้บั๊กซอฟต์แวร์ จากนั้น ผมได้ให้ทัศนะพร้อมเหตุผลรองรับที่ได้จากประสบการณ์ของลินุกซ์สำหรับข้อเสนอที่ว่า ``ขอให้มีสายตาเฝ้ามองมากพอ บั๊กทั้งหมดก็เป็นเรื่องง่าย'' ผมเปรียบข้อเสนอดังกล่าวกับระบบซึ่งมีการแก้ไขตัวเองของตัวกระทำที่เห็นแก่ตัว และสรุปด้วยการสำรวจนัยของแนวคิดนี้สำหรับอนาคตของวงการซอฟต์แวร์
สารบัญ
ลินุกซ์คือผู้ล้มยักษ์ เมื่อ 5 ปีที่แล้ว (ปี 1991) ใครจะไปคิดว่าระบบปฏิบัติการระดับโลก จะก่อตัวขึ้นราวกับมีเวทมนตร์จากการแฮ็กเล่นๆ ในเวลาว่างของนักพัฒนานับพันจากทั่วโลกที่เชื่อมต่อกันด้วยเส้นใยบางๆ อย่างอินเทอร์เน็ตเท่านั้น
ผมคนหนึ่งล่ะ ที่ไม่เชื่อ ตอนที่ลินุกซ์เข้ามาอยู่ในความสนใจของผมเมื่อต้นปี 1993 นั้น ผมได้เข้ามาเกี่ยวข้องกับยูนิกซ์ และการพัฒนาแบบโอเพนซอร์สมาสิบปีแล้ว ผมยังเป็นหนึ่งในผู้สมทบงานให้ GNU เป็นคนแรกๆ ในช่วงกลางทศวรรษ 1980 ผมได้ปล่อยซอฟต์แวร์โอเพนซอร์สออกสู่อินเทอร์เน็ตแล้วหลายตัว โดยได้สร้างและร่วมสร้างโปรแกรมหลายโปรแกรม (nethack, โหมด VC และ GUD ของ Emacs, xlife และอื่นๆ) ซึ่งยังคงใช้กันอยู่แพร่หลายในทุกวันนี้ ผมคิดว่าตัวเองรู้ดีเรื่องการพัฒนาซอฟต์แวร์
แต่ลินุกซ์ได้ลบล้างสิ่งที่ผมเคยคิดว่ารู้ไปมาก ผมเคยพร่ำสอนเกี่ยวกับบัญญัติยูนิกซ์ เรื่องการเขียนโปรแกรมขนาดเล็ก การสร้างต้นแบบอย่างเร็ว และการเขียนโปรแกรมแบบวิวัฒนาการมาหลายปี แต่ผมยังเชื่ออีกด้วย ว่ามีความซับซ้อนวิกฤติระดับหนึ่ง ที่ถ้าเลยขั้นนี้ไป ก็ต้องใช้วิธีพัฒนาที่รวมศูนย์ มีทฤษฎีมากกว่านั้น ผมเชื่อว่าซอฟต์แวร์ที่สำคัญๆ (เช่น ระบบปฏิบัติการ และโปรแกรมขนาดใหญ่อย่าง Emacs) ควรจะถูกสร้างเหมือนสร้างมหาวิหาร (cathedral) โดยพ่อมดซอฟต์แวร์สักคน หรือผู้วิเศษกลุ่มเล็กๆ เป็นผู้ประดิษฐ์ขึ้นอย่างบรรจง ในดินแดนโดดเดี่ยวอันศักดิ์สิทธิ์ ไม่มีตัวทดสอบ (beta) ออกมาให้ลองก่อนเวอร์ชันจริง
วิธีการพัฒนาของไลนัส ทอร์วัลด์ เป็นเรื่องแปลกประหลาด วิธีของเขาคือ `ออกเนิ่นๆ ออกถี่ๆ มอบงานทุกส่วนให้คนอื่นเท่าที่จะทำได้ และเปิดกว้างถึงขั้นสำส่อน' นี่ไม่ใช่การสร้างมหาวิหารอย่างเงียบเชียบด้วยความเทิดทูนบูชา ชุมชนของลินุกซ์นั้น เหมือนกับตลาดสด (bazaar) ที่เอะอะอื้ออึงฟังไม่ได้ศัพท์ ซึ่งแต่ละคนมีวาระและวิธีการที่แตกต่างหลากหลาย (เห็นได้จากไซต์ FTP ของลินุกซ์ ที่ใครก็สามารถส่งผลงานของตัวเองเข้ามาได้) การจะเกิดระบบปฏิบัติการที่เสถียรและเป็นเอกภาพขึ้นได้จากสภาพดังกล่าว จึงดูเหมือนต้องเป็นผลจากปาฏิหาริย์เท่านั้น
ความจริงที่ว่าการพัฒนาแบบตลาดสดนี้ใช้งานได้ และได้ผลดีด้วยนั้น เป็นเรื่องน่าตกใจมาก ขณะที่ผมเรียนรู้ไปเรื่อยๆ นั้น ผมไม่เพียงทุ่มเทให้กับโครงการทั้งหลาย แต่ผมยังพยายามหาสาเหตุ ว่าทำไมโลกของลินุกซ์จึงไม่เพียงไม่แตกเป็นเสี่ยงๆ ด้วยความโกลาหล แต่ยังกลับแข็งแกร่งและมั่นคงขึ้นเรื่อยๆ ด้วยอัตราเร็วที่นักสร้างมหาวิหารแทบไม่สามารถจินตนาการถึงได้
กลางปี 1996 ผมคิดว่าผมเริ่มเข้าใจแล้ว ผมมีโอกาสอันยอดเยี่ยมที่จะทดสอบทฤษฎีของตัวเอง ในรูปแบบของโครงการโอเพนซอร์ส ซึ่งผมสามารถเจาะจงให้พัฒนาในแบบตลาดสดได้ ผมจึงลองทำดู และมันก็ประสบความสำเร็จดีทีเดียว
เรื่องราวต่อไปนี้เป็นเรื่องของโครงการดังกล่าว ผมจะใช้ตัวอย่างนี้เสนอคติสำหรับการพัฒนาแบบโอเพนซอร์สที่ได้ผล หลายอย่างไม่ใช่สิ่งที่ผมเพิ่งเรียนรู้เป็นครั้งแรกจากโลกของลินุกซ์ แต่เราจะเห็นว่าโลกของลินุกซ์ทำให้มันสำคัญขึ้นมาอย่างไร ถ้าผมคิดไม่ผิด คติเหล่านี้จะช่วยให้คุณเข้าใจมากขึ้น ว่าอะไรคือสิ่งที่ทำให้สังคมลินุกซ์กลายเป็นบ่อเกิดของซอฟต์แวร์ดีๆ และอาจช่วยทำให้คุณพัฒนาผลิตภาพของคุณเองให้มากขึ้นได้ด้วย