โอเพนซอร์สไม่ได้หมายถึงคอมมูนิตี้แบบเปิดเสมอไป
(blog.feld.me)- ซอฟต์แวร์โอเพนซอร์สสามารถเผยแพร่ได้ตั้งแต่ก่อนยุค (D)VCS ผ่านหน้า HTML, ไฟล์ txt, tarball บน FTP และมีเพียงอีเมลสำหรับติดต่อเท่านั้น โดยยังเป็นโอเพนซอร์สได้แม้ไม่มีคอมมูนิตี้สาธารณะ
- การมี mailing list หรือช่อง IRC ถือว่าโชคดีแล้ว แต่ pull request, issue, wiki, core team และ Code of Conduct ไม่เคยเป็นเงื่อนไขจำเป็นของโอเพนซอร์ส
- Sourceforge ทำให้การพัฒนาแบบเปิดทำได้ง่ายขึ้นด้วยการให้บริการ CVS/SVN และ mailing list แบบแทบไม่เสียค่าใช้จ่าย และหลังจากนั้น git ก็ชนะการแข่งขันของ DVCS จนโลกค่อย ๆ มาบรรจบที่ GitHub
- หลังยุค GitHub การดูแลโอเพนซอร์สได้กลายเป็นเหมือน งานที่ไม่ได้รับค่าจ้าง ซึ่งต้องแบกรับทั้ง issue, pull request ที่อยู่นอกขอบเขต, คำบ่นและคำเรียกร้อง ตลอดจนการดูแลกลุ่มแชต จนนำไปสู่ภาวะหมดไฟและการสูญเสียการควบคุม
- โปรเจกต์ไม่ได้จำเป็นต้องพัฒนาแบบสาธารณะเสมอไป สามารถปิด issue tracker และ pull request หรือใช้ bare git server แล้วดูแล โอเพนซอร์ส กับกลุ่มเล็ก ๆ ที่ไว้ใจได้ หรือทำคนเดียวก็ได้
ภาระของการดูแลรักษาหลังยุค GitHub
- GitHub ทำให้การดูแลโอเพนซอร์สรู้สึกเหมือน งานที่ไม่ได้รับค่าจ้าง สำหรับผู้ดูแลโครงการ
- หลังจากต้องจัดการตั๋วงาน การประชุมกับผู้มีส่วนได้ส่วนเสีย โร้ดแมป การเมืองในองค์กร สิ่งรบกวน เดดไลน์ เมตริก KPI ความต้องการที่เปลี่ยนไป standup, one-on-one, Agile และ Waterfall ในที่ทำงานแล้ว พอกลับถึงบ้านก็ยังมีการแจ้งเตือนจากโอเพนซอร์สรออยู่
- issue สะสมมากขึ้น มี pull request เข้ามาเพื่อออกแบบซอฟต์แวร์ใหม่ไปในทิศทางที่อยู่นอกขอบเขตของโปรเจกต์ และคำบ่นกับคำขอเพิ่มขึ้นเรื่อย ๆ
- เมื่อมีกลุ่มแชตและ “คอมมูนิตี้” ผู้ดูแลก็ต้องรับภาระเพิ่มในการจัดการคนที่ใจร้อนและต้องคุยแบบตัวต่อตัว
- ผลลัพธ์คือโอเพนซอร์สกลายเป็นเหมือน อาชีพที่สอง ผู้ดูแลเกิดภาวะหมดไฟ และอาจถึงขั้นสูญเสียการควบคุมกับทิศทางของโปรเจกต์ตัวเอง
กลับไปสู่การดูแลแบบเรียบง่ายอีกครั้ง
- บางโปรเจกต์ใหญ่และซับซ้อนเกินกว่าจะไม่ต้องมีการบริหารทีม แต่กรณีแบบนั้นเป็นข้อยกเว้น ไม่ใช่เรื่องปกติ
- ถ้ารู้สึกโกรธที่คนหน้าใหม่และบอต AI เข้ามาแย่งความสนใจ คุณก็สามารถกลับไปใช้วิธีแบบเดิมได้
- สามารถปิด issue tracker และ pull request หรือจะเปิด bare git server ไว้เพื่อเผยแพร่โค้ดก็ได้
- จะทำงานกับกลุ่มเล็ก ๆ ที่รู้จักและไว้ใจจริง ๆ หรือจะทำโปรเจกต์คนเดียวทั้งหมดก็ได้
- ไม่มีความจำเป็นต้องยอมให้คนแปลกหน้าเข้ามารุกล้ำพื้นที่ของตัวเอง และ Code of Conduct หรือกฎเกณฑ์เกี่ยวกับ LLM ที่ทำไปเพื่อภาพลักษณ์ก็ไม่ใช่สิ่งจำเป็น
- โอเพนซอร์สไม่จำเป็นต้อง พัฒนาแบบสาธารณะ เสมอไปเพื่อที่จะยังเป็น “โอเพนซอร์ส”
- ใช้เครื่องมือที่ต้องการ สร้างสิ่งที่คุณชอบ และจะปล่อย code drop ตอนตีสองของคืนคริสต์มาสก็ได้ โดยไม่จำเป็นต้องถูกลากเข้าไปสู่รูปแบบการดูแลที่เหมือนเอาศูนย์บ่มเพาะเทคโนโลยีกับสถานรับเลี้ยงเด็กมาผสมกัน
1 ความคิดเห็น
ความคิดเห็นจาก Lobste.rs
เพราะความคิดแบบนี้ เลยสร้าง https://casuallymaintained.tech/ ขึ้นมา และชอบมันมาก
ตัวอย่างที่มีชื่อเสียงที่สุดคือ SQLite ซึ่งปฏิเสธการมีส่วนร่วมจากภายนอก
เมื่อคิดว่ามันถูกใช้แม้กระทั่งใน แอปพลิเคชันภารกิจสำคัญ อย่างเครื่องบินของ Airbus นี่ก็เป็นนโยบายที่สมเหตุสมผล
SQLite เป็นโอเพนซอร์ส จึงคัดลอกได้มากเท่าที่ต้องการและใช้งานได้โดยไม่มีข้อจำกัด แต่ไม่ใช่โครงการแบบเปิดรับการมีส่วนร่วมสาธารณะ (open-contribution)
เพื่อคงให้ SQLite อยู่ใน public domain และป้องกันไม่ให้มีการปะปนกับโค้ดแบบกรรมสิทธิ์หรือโค้ดที่มีไลเซนส์ จึงไม่รับแพตช์จากผู้ที่ไม่ได้ยื่นคำแถลงว่ายกการมีส่วนร่วมนั้นให้เป็น public domain
เป็นมุมมองที่ค่อนข้างสดใหม่
บางทีผู้เขียนอาจพูดถูก และเราอาจคาดหวังจากผู้ดูแลมากเกินไป
สิ่งที่พังอาจไม่ใช่โอเพนซอร์สทั้งหมด แต่อาจเป็น ภาวะเงินเฟ้อของความคาดหวัง ว่าโอเพนซอร์สควรต้องให้อะไรบ้าง
องค์ประกอบเชิงสังคมของ GitHub ก็อาจมีส่วน ยิ่งมีดาวและผู้ใช้ทั่วไปมากขึ้น ก็ยิ่งมีแรงกดดันให้ต้องทำให้คนใหม่ๆ ที่เข้ามาดูโปรเจกต์พอใจ
โดยเฉพาะเมื่อความสนใจและความต้องการของชุมชนไม่สอดคล้องกับวิสัยทัศน์ตั้งต้นของคนสร้าง
บทความที่เกี่ยวข้อง: Git without a Forge: https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/git-no-forge/
เป็นแนวทางที่แข็งแรงดี และอยากให้คนจำนวนมากขึ้นใช้เป็นค่าเริ่มต้น
การ สร้างชุมชน หรือการรับภาระรับผิดชอบบางอย่างควรเป็นการกระทำที่ตั้งใจและเป็นข้อยกเว้น
ส่วนที่บอกว่า code of conduct และนโยบาย LLM เป็นการทำไว้โชว์ๆ ดูจะห่างจากประเด็นไปนิด แต่ก็เข้าใจได้เพราะเป็นหัวข้ออ่อนไหว
แต่ถ้าเอาไปแปะไว้ในรีโปของคนเดียวที่ไม่มีทั้งผู้ใช้และชุมชน และก็ไม่ได้คิดจะสร้างในอนาคต มันก็กลายเป็นการทำไว้โชว์
สำหรับรีโปที่ใช้คนเดียว ไม่จำเป็นต้องมี code of conduct สำหรับตัวเอง
คงจะดีมากถ้าการถกเถียงนี้มีแรงส่งและนำไปสู่ฉันทามติที่ใช้ได้จริง
มีหลายวิธีในการสร้างซอฟต์แวร์และมีส่วนร่วมอย่างมีสุขภาวะ
เพียงแต่บางวิธีเข้ากันไม่ได้ หรือไม่ตรงกับมาตรฐานสูงของโอเพนซอร์ส หรือมีต้นทุนด้านการมองเห็นและความนิยม หรือต้องใช้อุปกรณ์คนละแบบ เช่น ไลเซนส์, การโฮสต์เอง, หรือการไม่รับ code contribution
อยากให้เราช่วยกันหาทางที่ดีซึ่งให้ ความสนุกและความยุติธรรม มาอยู่ข้างหน้าในซอฟต์แวร์ชุมชน
สภาพที่บทความเสนอคือสภาพตามธรรมชาติของทุกโครงการโอเพนซอร์สส่วนตัวที่คนไม่ดังเพิ่งสร้างขึ้นมา
พวกเราทุกคนต่างก็มีโปรเจกต์จำนวนไม่น้อยที่ดำเนินไปในลักษณะนั้น
ปัญหาคือผู้คนไม่รู้ว่าตัวเองอยากได้อะไรจากโปรเจกต์ หรือคิดว่าการดูแลโปรเจกต์ดังๆ คงเท่ดีโดยไม่ได้ชั่งต้นทุนให้ดีพอ
เลยเริ่มเกิด การแสวงหาความสนใจ ไม่ว่าจะตั้งใจหรือไม่ก็ตาม
คำพูดที่ว่า “GitHub ทำให้โอเพนซอร์สทั้งหมดกลายเป็นงานไร้ค่าจ้างสำหรับผู้ดูแล” จะจริงก็ต่อเมื่อคุณยอมให้มันเป็นแบบนั้น
หากตัดคำสัญญาเรื่องชื่อเสียงลอยๆ ออกไป ในสถานการณ์ส่วนใหญ่ GitHub แทบไม่มีคานงัดอะไรที่จะบังคับให้คุณทำสิ่งที่แต่เดิมก็ไม่อยากทำ
เห็นด้วยเลย
เมื่อก่อนเคยมีโปรเจกต์ที่ดังอยู่บ้าง และต้องเครียดกับการจัดการบั๊กรายงานและ pull request สำหรับฟีเจอร์ที่ไม่ได้ต้องการ
ถ้าตอนนั้นได้อ่านบทความแบบนี้ก็คงดี
เพิ่มเติมคือ https://gist.github.com/richhickey/1563cddea1002958f96e7ba9519972d9 ก็น่าอ่าน
สำหรับโปรเจกต์เล็กๆ ฉันเห็นด้วยกับบทความนี้อย่างมาก
แม้แต่โปรเจกต์ใหญ่กว่า หลายอันที่ประสบความสำเร็จที่สุดก็มักไม่ได้เริ่มจากการเป็นชุมชนเปิดตั้งแต่แรก
หลายโปรเจกต์ที่ชอบเริ่มพัฒนาในองค์กรขนาดใหญ่ และแก่นสำคัญคือซอฟต์แวร์นั้นถูก ใช้งานจริงอย่างหนักภายในองค์กร
ดังนั้นผู้ดูแลก็ได้รับค่าตอบแทนอยู่แล้ว
ไม่ว่าจะเป็นโปรเจกต์ส่วนตัวหรือทีมภายใน ซอฟต์แวร์ที่สร้างขึ้นเพื่อแก้ปัญหาในชีวิตประจำวันของนักพัฒนาเอง ดูจะประสบความสำเร็จมากกว่าและเอาเปรียบน้อยกว่าซอฟต์แวร์ที่ทำขึ้นเพื่อชื่อเสียงหรือการต่อยอดเชิงธุรกิจ