นักพัฒนาความสัมพันธ์

Jia Yanmin: โอเพนซอร์สคืออะไร มาจากไหน จะไปไหน

2018-10-03
ความสัมพันธ์นักพัฒนา
th

บริษัทซอฟต์แวร์หรือสถาบันวิจัยในประเทศจำนวนมากมีความกระตือรือร้นกับโอเพนซอร์สเพียงแค่โค้ดฟรี และแทบไม่เคยมีส่วนร่วมอย่างลึกซึ้งในกิจกรรมของชุมชนโอเพนซอร์ส เราใช้โอเพนซอร์สมาก แต่มีส่วนร่วมน้อย โปรเจกต์โอเพนซอร์สที่มีอิทธิพลที่เริ่มต้นจากในประเทศ ถ้าไม่ใช่ไม่มีเลย ก็คงนับได้ พวกเราขี้เหนียวมาก แม้แต่กับโปรเจกต์โอเพนซอร์สที่กำลังใช้อยู่ ก็ไม่ยอม “เสีย” ทรัพยากรการพัฒนาและทดสอบใดๆ ผมมีโอกาสฟังบรรยายของ Richard Stallman ผู้นำทางจิตวิญญาณของซอฟต์แวร์เสรีถึงสองครั้ง เขาเน้นเป็นพิเศษว่า “Free is not free” เสรีไม่ใช่ฟรี เช่นเดียวกัน โอเพนซอร์สคือเสรี (Free) ไม่ใช่ฟรี (Free) บางที เมื่อทุกคนเพลิดเพลินกับงานเลี้ยงฟรีของโอเพนซอร์สโดยไม่มีข้อกังวล พวกเขาอาจลืมไปว่า พลังที่แท้จริงของโอเพนซอร์สคือเสรี ไม่ใช่ฟรี

โอเพนซอร์สคืออะไร?

พูดง่ายๆ โอเพนซอร์สประกอบด้วยสามด้าน:

ก่อนอื่น โอเพนซอร์สคือโปรเจกต์ (Project) ในฐานะโปรเจกต์ เพื่อดึงดูดผู้คนที่สนใจและกระตือรือร้นด้านเทคนิคและไม่ใช่เทคนิคให้มีส่วนร่วมมากขึ้น โอเพนซอร์สมักมีวิธีการจัดโปรเจกต์และกระบวนการพัฒนาที่ยืดหยุ่นและเป็นเอกลักษณ์ ซึ่งต่างจากบริษัทอย่างสิ้นเชิง แน่นอน โดยทั่วไป โปรเจกต์โอเพนซอร์สมักนำโดยบริษัทหนึ่งหรือหลายบริษัท แต่จะไม่กีดกันองค์กร บริษัท และนักพัฒนาอิสระอื่นๆ ทีมจัดการโปรเจกต์โอเพนซอร์สส่วนใหญ่ผลิตผ่านกระบวนการประชาธิปไตย

ประการที่สอง โอเพนซอร์สคือชุมชน (Community) ในฐานะชุมชน โอเพนซอร์สเป็นแพลตฟอร์มการสื่อสารที่ประกอบด้วย mailing list, forum, IRC และการประชุมต่างๆ สำหรับนักพัฒนา ผู้ทดสอบ ผู้บริจาค และผู้ใช้ Open ใน Open Source ไม่เพียงหมายถึงโค้ดที่เปิดเผย แต่ยังหมายถึงแพลตฟอร์มการสื่อสารที่เปิดกว้าง ตราบใดที่ยึดมั่นในหลักการเคารพซึ่งกันและกัน ปัญหาด้านเทคนิค การพัฒนา การทดสอบ การใช้งาน การจัดการ เกือบทั้งหมดสามารถเป็นหัวข้ออภิปราย ทุกคนร่วมกันคิด หาวิธีการ มีส่วนร่วมในโอเพนซอร์สจากทุกด้าน

สุดท้าย โอเพนซอร์สคือผลิตภัณฑ์ (Product) หลายครั้ง ผลิตภัณฑ์ที่โอเพนซอร์สเผยแพร่ไม่สามารถตอบสนองความต้องการของผู้ใช้ได้ ดังนั้น ภายใต้เงื่อนไขที่ไม่ละเมิดสัญญาอนุญาต (License) ที่เกี่ยวข้อง บริษัทบางแห่งปรับแต่งมัน แล้วกลายเป็นผลิตภัณฑ์หรือโซลูชันของตัวเอง แน่นอน บริษัทบางแห่งก็จะสนับสนุนการพัฒนาโอเพนซอร์สกลับคืน นี่เป็นวงจรเชิงบวกแบบ win-win เกือบทุกโปรเจกต์โอเพนซอร์สมีผลิตภัณฑ์ที่เกี่ยวข้องเผยแพร่ ตัวอย่างเช่นนี้มีมากมาย การทำให้ Linux เป็นผลิตภัณฑ์เป็นตัวอย่างคลาสสิกที่สุด สามารถพูดได้ว่า ถ้าไม่มีการทำให้ Linux เป็นผลิตภัณฑ์ ก็จะไม่มีความเจริญรุ่งเรืองของโอเพนซอร์ส Linux ตัวอย่างอื่นๆ รวมถึงผลิตภัณฑ์ต่างๆ ที่ได้จาก Eclipse ในขณะที่การแตกแขนงและการเสื่อมถอยของ OpenOffice.org อาจเป็นเพราะการทำให้เป็นผลิตภัณฑ์ไม่มากพอหรือไม่ดีพอ

สิ่งสำคัญคือ โอเพนซอร์สเป็นโลกแห่งเสรี ผู้คนสามารถเข้าร่วมหรือออกจากชุมชนได้อย่างเสรี อภิปรายปัญหาต่างๆ ได้อย่างเสรี แสดงข้อเสนอแนะต่างๆ ได้อย่างเสรี นักพัฒนาสามารถเรียนรู้โค้ดและเทคโนโลยีโอเพนซอร์สได้อย่างเสรี ผู้ใช้สามารถใช้ผลิตภัณฑ์โอเพนซอร์สได้อย่างเสรี ด้วยโค้ดที่เปิดเผย ภายใต้เงื่อนไขที่ไม่ละเมิดสัญญาอนุญาตของโค้ดและผลิตภัณฑ์โอเพนซอร์ส สามารถเขียนใหม่ ลบ เพิ่มฟังก์ชันของผลิตภัณฑ์โอเพนซอร์สได้อย่างเสรี บริษัทและองค์กรก็สามารถใช้โค้ดและเทคโนโลยีโอเพนซอร์สได้อย่างเสรี ขายผลิตภัณฑ์โอเพนซอร์สได้อย่างเสรี ดังที่กล่าวข้างต้น โอเพนซอร์สส่งเสริมให้บริษัทมีส่วนร่วมในการทำให้เป็นผลิตภัณฑ์ ทุกคนเพื่อฉัน ฉันเพื่อทุกคน นี่อาจเป็นความหมายที่แท้จริงของเสรีภาพของโอเพนซอร์ส อย่างไรก็ตาม นี่สวยงามเกินไป สวยงามจนน่าเชื่อไม่ได้ กลับสู่ความเป็นจริง ไม่ว่าวิสัยทัศน์แห่งเสรีภาพจะน่าปรารถนาแค่ไหน ความสำเร็จหรือความล้มเหลวของโปรเจกต์/ชุมชนโอเพนซอร์สในท้ายที่สุดขึ้นอยู่กับจิตใจและขวัญกำลังใจของผู้คน ถ้าพลังแห่งเสรีภาพยังไม่สามารถปลุกระดมความกระตือรือร้นของผู้คนให้มีส่วนร่วมได้ แล้วเหตุผลและคุณค่าของการมีอยู่ของชุมชน/โปรเจกต์โอเพนซอร์สนี้ก็น่าสงสัยอย่างมาก

ในทางกลับกัน ที่สำคัญกว่านั้น บางคนเชื่อว่า โอเพนซอร์สเองก็เป็นโมเดลธุรกิจฟรี นี่เป็นความจริง เหมือนกับโมเดลธุรกิจฟรีที่บริษัทอินเทอร์เน็ตกำลังแสดงอย่างคึกคัก เช่น แม้เราไม่ได้จ่ายเงินสำหรับการค้นหา Google ทุกครั้ง แต่พฤติกรรมการค้นหาของเราจะเป็นส่วนหนึ่งของบิ๊กดาต้า และในท้ายที่สุดจะแปลงเป็นรายได้จากโฆษณาของ Google การมีผู้ใช้มากพอเป็นกุญแจสำคัญในการทำให้โมเดลธุรกิจนี้ประสบความสำเร็จ เช่นเดียวกัน ซอร์สโค้ดและผลิตภัณฑ์สุดท้ายของโปรเจกต์โอเพนซอร์สเป็นฟรี เปิดเผย สามารถใช้ได้อย่างเสรีแต่ไม่ใช่โดยพลการ โมเดลธุรกิจโอเพนซอร์สรวมถึงการระดมทุนผ่านมูลนิธิ เรียกเก็บค่าบริการสนับสนุนด้านเทคนิคจากผู้ใช้ นอกจากนี้ บริษัทหลายแห่งขณะทำให้โปรเจกต์โอเพนซอร์สเป็นผลิตภัณฑ์ ก็มีส่วนร่วมทรัพยากรการพัฒนาและการทดสอบโดยตรงให้กับโอเพนซอร์ส นี่จริงๆ แล้วเป็นพฤติกรรมการสนับสนุน แน่นอน ดังที่กล่าวข้างต้น ได้รับการสนับสนุนจากผู้ใช้ฟรีจำนวนมาก โมเดลธุรกิจโอเพนซอร์สนี้จึงจะสามารถประสบความสำเร็จได้

ประโยชน์ของการมีส่วนร่วมในโอเพนซอร์สขององค์กร

การมองเห็นแค่ประโยชน์ของโอเพนซอร์สที่ฟรี โดยไม่สนใจพลังแห่งเสรีภาพของโอเพนซอร์ส แม้แต่จากมุมมองเชิงประโยชน์ล้วนๆ ก็เป็นพฤติกรรมที่ขาดวิสัยทัศน์อย่างแน่นอน สำหรับบริษัทที่กำลังใช้โอเพนซอร์ส การมีส่วนร่วมอย่างแข็งขันในการสร้างชุมชนโอเพนซอร์สอย่างน้อยสามารถได้รับประโยชน์จากสองด้านต่อไปนี้:

ประการแรก ยิ่งมีส่วนร่วมกับโอเพนซอร์สมากเท่าไหร่ อิทธิพลก็ยิ่งมากขึ้น จึงสร้างผลกระทบทางโฆษณาที่ดี ผ่านโอเพนซอร์ส สามารถแสดงเทคโนโลยี ผลิตภัณฑ์ และโซลูชันของตัวเองได้ดีขึ้น และได้รับความไว้วางใจจากผู้ใช้

ประการที่สอง ถ้ามีความแข็งแกร่งเพียงพอ สามารถนำทิศทางการพัฒนาของโปรเจกต์โอเพนซอร์สได้ ก็สามารถรวบรวมทรัพยากรของชุมชนโอเพนซอร์สมาปรับปรุงผลิตภัณฑ์ของตัวเองได้ดีขึ้น สิ่งนี้นำประโยชน์มาสู่บริษัทอย่างไม่ต้องสงสัย สำหรับโปรแกรมเมอร์ ประโยชน์ที่ใหญ่ที่สุดของการมีส่วนร่วมในโอเพนซอร์สคือความรู้สึกบรรลุผลจากการมีส่วนร่วม เมื่อทำงานที่ IBM ผลิตภัณฑ์ที่ผมทำอยู่คือ Symphony เป็นชุดสำนักงานที่อิงตาม OpenOffice.org ตอนนั้น ผมพัฒนาอัลกอริทึมการจับคู่ฟอนต์สำรอง (rollback font) อย่างรวดเร็ว เมื่อผู้ใช้ระบุฟอนต์สำหรับข้อความที่ไม่มีอยู่ในระบบ อัลกอริทึมนี้สามารถหาฟอนต์ทดแทนที่เหมาะสมที่สุดจากระบบได้อย่างรวดเร็ว นี่สามารถเพิ่มความเร็วในการเรนเดอร์ข้อความได้มาก ปรับปรุงคุณภาพการแสดงข้อความ ผมส่งอัลกอริทึมนี้ให้ OpenOffice.org สำเร็จ ผมรู้ชัดเจนว่า ทุกครั้งที่ผู้ใช้ใช้ OpenOffice.org เปิดแก้ไขเอกสาร อัลกอริทึมนี้อาจทำงาน ความรู้สึกบรรลุผลก็เกิดขึ้น แน่นอน น่าเสียดายที่ OpenOffice.org แตกแขนง แต่ libreoffice.org ยังคงมีอยู่ต่อไป

จริงๆ แล้ว สาเหตุสำคัญอย่างหนึ่งที่ขัดขวางโปรแกรมเมอร์ในประเทศจากการมีส่วนร่วมในโอเพนซอร์สไม่ใช่ข้อจำกัดด้านความสามารถทางเทคนิค แต่เป็นข้อจำกัดด้านระดับภาษาอังกฤษ เรียนภาษาอังกฤษมาหลายปี แม้ได้ใบรับรอง CET-4 หรือ CET-6 ก็จะพบว่าภาษาอังกฤษแบบใบ้ที่เรียนมานั้นใช้ไม่ได้เลย การสื่อสารไม่สะดวกเนื่องจากภาษาไม่ถนัดเป็นความยากลำบาก แต่น้อยกว่าอุปสรรคทางความคิดที่เกิดจากความกลัวต่อโลกภายนอกที่ไม่รู้จักและการเปลี่ยนแปลงที่ควบคุมไม่ได้มาก ผมไม่ได้ตั้งใจจะอภิปรายวิธีปรับปรุงระดับภาษาอังกฤษส่วนบุคคลที่นี่ แค่อยากเน้นว่า คนมีความมุ่งมั่นย่อมสำเร็จ โปรแกรมเมอร์ที่มีอนาคต ถ้าใจเปิดกว้างเพียงพอ มีความอยากรู้อยากเห็นและปรารถนาต่อสาขาที่ไม่รู้จัก ภาษาอังกฤษไม่ใช่ป้อมปราการที่ไม่สามารถพิชิตได้ ยิ่งกว่านั้น สิ่งที่โปรแกรมเมอร์ในประเทศกังวลมากที่สุดคือการฟังและการพูด ในขณะที่ส่วนใหญ่ ชุมชนโอเพนซอร์สสื่อสารผ่านอีเมลแบบเขียน

จะมีส่วนร่วมในโอเพนซอร์สอย่างไร

สุดท้าย จุดต่อไปนี้สำหรับเพื่อนที่มีความมุ่งมั่นในโอเพนซอร์สเป็นข้ออ้างอิง:

ประการแรก เกือบทุกชุมชนโอเพนซอร์สมีคู่มือเริ่มต้น (Getting Started Guide) สำหรับผู้เริ่มต้น อ่านอย่างละเอียดสามารถหลีกเลี่ยงการเดินทางที่ไม่จำเป็นได้

ประการที่สอง โต้ตอบกับชุมชนอย่างกล้าๆ ถ้ามีคำถามที่ไม่เข้าใจ อย่าคิดคนเดียว ถามออกไปได้เลย แม้จะง่ายแค่ไหน ก็จะมีคนที่กรุณามาตอบเสมอ และจะไม่มีใครหัวเราะคุณ แน่นอน เมื่อสื่อสาร ต้องเคารพซึ่งกันและกัน อีเมลต้องมีมารยาทพื้นฐาน ขอบคุณความช่วยเหลือของผู้อื่น ในขณะเดียวกัน ก็อย่าลืมช่วยเหลือผู้อื่น

ประการที่สาม การพัฒนาโอเพนซอร์สมีความเป็นอิสระแบบหลวมๆ บ้าง ไม่มีแผนที่เข้มงวดนัก ดังนั้น บางครั้ง อาจรู้สึกว่าคำขอของตัวเองไม่ได้รับการตอบสนองและตอบสนองอย่างรวดเร็ว สิ่งที่ต้องทราบคือ ไม่ใช่ทุก bug ที่ส่งไปจะได้รับการยอมรับ ไม่ใช่ทุกโค้ดที่ส่งไปจะได้รับการยอมรับ เมื่อเจอสถานการณ์แบบนี้ ต้องอธิบายเหตุผลให้ชัดเจน อย่าใช้อารมณ์

ประการที่สี่ คุณภาพโค้ดของโปรเจกต์โอเพนซอร์สบางโปรเจกต์ไม่น่าประทับใจนัก อาจเป็นเพราะโปรแกรมเมอร์ที่มีส่วนร่วมในการพัฒนามีคุณภาพไม่สม่ำเสมอ และการกำกับดูแลไม่เข้มงวด แต่ก็ไม่ใช่ทั้งหมดเป็นแบบนั้น ผมยังจำได้ว่ามักล้อเล่นว่า โค้ดบางฟังก์ชันของ OpenOffice.org ยาวจนมองไม่เห็นอีกด้านหนึ่ง ทฤษฎีบทความไม่สมบูรณ์ของ Gödel ชี้ให้เห็นว่า ระบบรูปนัยใดๆ ที่คล้ายกับระบบทฤษฎีจำนวนที่รัสเซลล์และไวต์เฮดให้ไว้ใน “หลักการทางคณิตศาสตร์” ไม่ว่าจะแข็งแกร่งแค่ไหน ก็ไม่สมบูรณ์ เสมอมีประพจน์ G ที่สร้างขึ้นอย่างดี ซึ่งไม่สามารถพิสูจน์ได้ว่าเป็นจริง และไม่สามารถพิสูจน์ได้ว่าเป็นเท็จ ดังนั้นระบบรูปนัยใดๆ ก็ไม่สามารถอธิบายคุณสมบัติทั้งหมดของทฤษฎีจำนวนและแม้กระทั่งคณิตศาสตร์ได้อย่างสมบูรณ์ นี่แน่นอนไม่ใช่ข้อสรุปที่สมบูรณ์แบบ แต่ในทางกลับกัน นี่หมายความว่าการค้นพบความจริงทางคณิตศาสตร์ยังคงต้องอาศัยภูมิปัญญาที่สร้างสรรค์ของนักคณิตศาสตร์ อาจกล่าวได้ว่าสูญเสียที่นี่ ได้ที่นั่น พูดใหญ่ๆ ชีวิตมักมีความน่าเสียดาย ความทุกข์ ความไร้สาระ การจากลา ความรำคาญ ความเปล่าประโยชน์ ความกังวล ความลังเล ความเศร้า ความผิดหวังในความรัก ความสามัญ ความทะเยอทะยานแต่ขาดความสามารถ มีความสามารถแต่ไม่ได้รับโอกาส ภาพลวงตาของความงามและความมั่งคั่ง ความทุกข์ทรมานของคนต่ำต้อย ฯลฯ ในทางกลับกัน ด้านไม่ดีพอดีที่ทำให้ด้านดีมีคุณค่ามากขึ้น มีเพียงสิ่งที่ไม่สมบูรณ์เท่านั้นที่ทำให้สมบูรณ์ นี่คือวงจรปรัชญา โปรแกรมคอมพิวเตอร์โอเพนซอร์สที่พัฒนาโดยความพยายามร่วมกันของคนจำนวนมากก็เช่นกัน ดังนั้น ทุกอย่างต้องอดทนบ้าง และดำเนินต่อไปพร้อมเก็บไว้

ประการที่ห้า ในทางทฤษฎี ถ้าต้องการใช้ฟังก์ชันซอฟต์แวร์ ตราบใดที่อยู่ในขอบเขตที่คำนวณได้ตามวิทยานิพนธ์เชิร์ช-ทัวริง สามารถแสดงด้วยภาษาโปรแกรมคอมพิวเตอร์ได้ ในจุดนี้ ไม่ว่าอัลกอริทึมและโปรแกรมจะชาญฉลาดแค่ไหน จริงๆ แล้วไม่มีช่องว่างทางเทคนิคที่ลึกล้ำและข้ามไม่ได้ สามารถพูดได้ว่า เทคโนโลยีเป็นเรื่องง่ายเสมอ สิ่งที่ตัวเองทำได้ คนอื่นก็ทำได้เช่นกัน และในทางกลับกัน แต่ศิลปะนั้นไม่มีที่สิ้นสุด ถ้าต้องการบรรลุระดับการวาดภาพเหมือน Escher หรือระดับดนตรีเหมือน Bach ทำไม่ได้ก็คือทำไม่ได้ แน่นอน การเขียนโปรแกรมคอมพิวเตอร์ก็สามารถมองว่าเป็นศิลปะ เช่นเดียวกับทักษะที่นำเสนอในหนังสือชื่อดังของ Donald Ervin Knuth “The Art of Computer Programming” ดังนั้น คุณภาพของโปรแกรมและประสิทธิภาพของอัลกอริทึมมีระดับสูงต่ำจริงๆ โดยสรุป ไม่ว่าจะเป็นบริษัทหรือบุคคล ไม่จำเป็นต้องเก็บทุกอย่างเป็นสมบัติล้ำค้า เหมือนสูตรวิชาการต่อสู้หรือสูตรยาแผนโบราณที่สืบทอดกันมา ปกป้องอย่างเข้มงวด คิดว่าทำเช่นนี้แล้วจะมีในขณะที่คนอื่นไม่สามารถมีได้ นั่นเป็นความผิดพลาดอย่างใหญ่หลวง ดังนั้น ในหลายกรณี การมีส่วนร่วมกับโอเพนซอร์สจะไม่ทำลายความสามารถในการแข่งขันของบริษัท ในทางกลับกัน จะเสริมความสามารถในการแข่งขันของบริษัท

ประการที่หก ตรงกันข้ามกับประการที่ห้า ในฐานะโปรแกรมเมอร์อิสระ ต้องเข้าใจนโยบายเรื่องทรัพย์สินทางปัญญาของบริษัทที่คุณทำงานอยู่อย่างเพียงพอ อย่าส่งโค้ดที่เป็นทรัพย์สินทางปัญญาของบริษัทไปยังชุมชนโอเพนซอร์ส

(หมายเหตุ: บทความนี้มีการปรับโครงสร้างย่อหน้า)

โปรดระบุแหล่งที่มา: ความสัมพันธ์นักพัฒนา »


Similar Posts

Content icon
Content